# Bootstrapping a node without internet access

**URL:** <https://discourse.chef.io/t/bootstrapping-a-node-without-internet-access/5066>\
**Category:** Chef Infra (archive)\
**Created:** [February 24, 2014, 4:16pm UTC](https://discourse.chef.io/t/bootstrapping-a-node-without-internet-access/5066 "2014-02-24T16:16:20Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kenneth\_Barry](https://avatars.discourse-cdn.com/v4/letter/k/3da27b/32.png) [@Kenneth\_Barry](https://discourse.chef.io/u/Kenneth_Barry)\
**Post date:** [February 24, 2014, 4:16pm UTC](https://discourse.chef.io/t/bootstrapping-a-node-without-internet-access/5066/1 "2014-02-24T16:16:20Z")

</div>

I see reference to this in the documentation, but am unclear how it might  
be accomplished. Anyone with a link to a tutorial or guide on how this is  
to be accomplished?

---

<div class="post-metadata">

**Author:** ![JOHN\_HASTY](https://avatars.discourse-cdn.com/v4/letter/j/0ea827/32.png) [@JOHN\_HASTY](https://discourse.chef.io/u/JOHN_HASTY)\
**Post date:** [February 24, 2014, 5:17pm UTC](https://discourse.chef.io/t/bootstrapping-a-node-without-internet-access/5066/2 "2014-02-24T17:17:58Z")

</div>

I have been dealing with this issue as well. Here are some of the things I  
have been working on:

1. Created an internal web server to allow wget of Chef RPM and  
installation script and then install locally.

2. We have our own internal yum repository for Red Hat.

3. In the process of building our own gem server and configure gem to use  
it instead of rubygems. Still having problems with this, but it is lack of  
time rather than a technical issue.

We had tried to chase down all the IPs that could be used to fetch these  
resources. But it seems to be an ever changing list.

Using an internal source also ensures consistency of the versions of  
software installed. I had found that the zk gem, for example, had changed  
and was incompatible with other components.

JOHN HASTY  
Software as a Service - DevOps  
Software Group

Phone: 1-512-804-9968 IBM  
E-mail: [jahasty@us.ibm.com](mailto:jahasty@us.ibm.com)  
2407 S Congress Ave Ste E-350  
Austin, TX 78704  
United States

From: Kenneth Barry [kbarry-x@tunein.com](mailto:kbarry-x@tunein.com)  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com),  
Date: 02/24/2014 10:16 AM  
Subject: [chef] Bootstrapping a node without internet access.

I see reference to this in the documentation, but am unclear how it might  
be accomplished. Anyone with a link to a tutorial or guide on how this is  
to be accomplished?

---

<div class="post-metadata">

**Author:** ![Lamont\_Granquist\_OLD](https://avatars.discourse-cdn.com/v4/letter/l/7feea3/32.png) [@Lamont\_Granquist\_OLD](https://discourse.chef.io/u/Lamont_Granquist_OLD)\
**Post date:** [February 24, 2014, 7:25pm UTC](https://discourse.chef.io/t/bootstrapping-a-node-without-internet-access/5066/3 "2014-02-24T19:25:10Z")

</div>

On 2/24/14 8:16 AM, Kenneth Barry wrote:

> I see reference to this in the documentation, but am unclear how it  
> might be accomplished. Anyone with a link to a tutorial or guide on  
> how this is to be accomplished?  
> if you've got your own internal kickstart server and yum repo then you  
> could simply download the chef client RPMs and put them in your repo and  
> then have your ks.cfg install and configure the client. you don't  
> necessarily need to use bootstrap.

if all your servers are uniform (you only use RHEL6 or Ubuntu 12.04 or  
whatever) then you don't really need all the machinery of install.sh  
which has its own mini-ohai and then uses a webservice to find the  
latest chef client to install. you can pin the distros that you use and  
pin the chef-client versions that you use and write your own simplified  
bootstrap scripts that just wget/curl the package you like and then  
install and bootstrap it. if you have your chef-client packages  
accessible somewhere that both your public and private clouds can find  
it (or a list of URLs that you can plow through until you get one that  
doesn't error because of firewalls) then you can have one knife  
bootstrap script that works across all your clouds, but without needing  
install.sh

i wouldn't try porting install.sh directly to your internal  
infrastructure since it relies on the omnitruck API. its been mentioned  
that we should ship omnitruck with enterprise chef (nee private chef)  
along with some scripts to sync our packages from S3 down to a repo  
sitting on the internal EC server, but that's never bubbled up to the  
top of things to do.

---

<div class="post-metadata">

**Author:** ![Kenneth\_Barry](https://avatars.discourse-cdn.com/v4/letter/k/3da27b/32.png) [@Kenneth\_Barry](https://discourse.chef.io/u/Kenneth_Barry)\
**Post date:** [February 24, 2014, 8:28pm UTC](https://discourse.chef.io/t/bootstrapping-a-node-without-internet-access/5066/4 "2014-02-24T20:28:14Z")

</div>

I'll keep this in mind re: our Linux stuff, but we are also about 60%  
Win....

On Mon, Feb 24, 2014 at 11:25 AM, Lamont Granquist [lamont@opscode.com](mailto:lamont@opscode.com)wrote:

> On 2/24/14 8:16 AM, Kenneth Barry wrote:
> 
> > I see reference to this in the documentation, but am unclear how it  
> > might be accomplished. Anyone with a link to a tutorial or guide on how  
> > this is to be accomplished?
> 
> if you've got your own internal kickstart server and yum repo then you  
> could simply download the chef client RPMs and put them in your repo and  
> then have your ks.cfg install and configure the client. you don't  
> necessarily need to use bootstrap.
> 
> if all your servers are uniform (you only use RHEL6 or Ubuntu 12.04 or  
> whatever) then you don't really need all the machinery of install.sh which  
> has its own mini-ohai and then uses a webservice to find the latest chef  
> client to install. you can pin the distros that you use and pin the  
> chef-client versions that you use and write your own simplified bootstrap  
> scripts that just wget/curl the package you like and then install and  
> bootstrap it. if you have your chef-client packages accessible somewhere  
> that both your public and private clouds can find it (or a list of URLs  
> that you can plow through until you get one that doesn't error because of  
> firewalls) then you can have one knife bootstrap script that works across  
> all your clouds, but without needing install.sh
> 
> i wouldn't try porting install.sh directly to your internal infrastructure  
> since it relies on the omnitruck API. its been mentioned that we should  
> ship omnitruck with enterprise chef (nee private chef) along with some  
> scripts to sync our packages from S3 down to a repo sitting on the internal  
> EC server, but that's never bubbled up to the top of things to do.

---

<div class="post-metadata">

**Author:** ![David\_Petzel](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/david_petzel/32/38_2.png) [@David\_Petzel](https://discourse.chef.io/u/David_Petzel)\
**Post date:** [February 24, 2014, 8:38pm UTC](https://discourse.chef.io/t/bootstrapping-a-node-without-internet-access/5066/5 "2014-02-24T20:38:48Z")

</div>

We rolled a series of custom bootstrap templates to handle this use case on  
our end. We have a mirror of the opscode packages on an HTTP endpoint, and  
we have our custom bootstrap templates pull from there rather than the  
internet. We are also heavily windows biased at the current time.

On Mon, Feb 24, 2014 at 3:28 PM, Kenneth Barry [kbarry-x@tunein.com](mailto:kbarry-x@tunein.com) wrote:

> I'll keep this in mind re: our Linux stuff, but we are also about 60%  
> Win....
> 
> >

---

<div class="post-metadata">

**Author:** ![Matt\_Ray\_GETCHEF](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/matt_ray_getchef/32/180_2.png) [@Matt\_Ray\_GETCHEF](https://discourse.chef.io/u/Matt_Ray_GETCHEF)\
**Post date:** [February 24, 2014, 8:44pm UTC](https://discourse.chef.io/t/bootstrapping-a-node-without-internet-access/5066/6 "2014-02-24T20:44:35Z")

</div>

The pxe\_dust cookbook has a pair of recipes for mirroring installers  
and creating a local bootstrap template to your mirror.

> **[GitHub - jjasghar/pxe\_dust-cookbook: Development repository for Chef Cookbook...](https://github.com/jjasghar/pxe_dust-cookbook)**
>
> Development repository for Chef Cookbook pxe\_dust. Contribute to jjasghar/pxe\_dust-cookbook development by creating an account on GitHub.

Thanks,  
Matt Ray  
Cloud Integrations Product Lead :: Chef  
512.731.2218 :: [matt@getchef.com](mailto:matt@getchef.com)  
mattray :: GitHub :: IRC :: Twitter

On Mon, Feb 24, 2014 at 12:38 PM, David Petzel [davidpetzel@gmail.com](mailto:davidpetzel@gmail.com) wrote:

> We rolled a series of custom bootstrap templates to handle this use case on  
> our end. We have a mirror of the opscode packages on an HTTP endpoint, and  
> we have our custom bootstrap templates pull from there rather than the  
> internet. We are also heavily windows biased at the current time.
> 
> On Mon, Feb 24, 2014 at 3:28 PM, Kenneth Barry [kbarry-x@tunein.com](mailto:kbarry-x@tunein.com) wrote:
> 
> > I'll keep this in mind re: our Linux stuff, but we are also about 60%  
> > Win....
> > 
> > >

---

<div class="post-metadata">

**Author:** ![Lamont\_Granquist\_OLD](https://avatars.discourse-cdn.com/v4/letter/l/7feea3/32.png) [@Lamont\_Granquist\_OLD](https://discourse.chef.io/u/Lamont_Granquist_OLD)\
**Post date:** [February 24, 2014, 9:35pm UTC](https://discourse.chef.io/t/bootstrapping-a-node-without-internet-access/5066/7 "2014-02-24T21:35:58Z")

</div>

On 2/24/14 12:28 PM, Kenneth Barry wrote:

> I'll keep this in mind re: our Linux stuff, but we are also about 60%  
> Win....

Can you bake in the chef-client MSI into whatever you're using to  
provision your O/S images (WDS?).

---

<div class="post-metadata">

**Author:** ![Durfee\_Bernie\_GE\_Glo](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/durfee_bernie_ge_glo/32/97_2.png) [@Durfee\_Bernie\_GE\_Glo](https://discourse.chef.io/u/Durfee_Bernie_GE_Glo)\
**Post date:** [February 26, 2014, 2:32pm UTC](https://discourse.chef.io/t/bootstrapping-a-node-without-internet-access/5066/8 "2014-02-26T14:32:35Z")

</div>

Mind sharing those template? How did you go about mirroring the OpsCode packages?

Thanks,  
Bernie

From: David Petzel [[mailto:davidpetzel@gmail.com](mailto:davidpetzel@gmail.com)]  
Sent: Monday, February 24, 2014 3:39 PM  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: Re: Re: Bootstrapping a node without internet access.

We rolled a series of custom bootstrap templates to handle this use case on our end. We have a mirror of the opscode packages on an HTTP endpoint, and we have our custom bootstrap templates pull from there rather than the internet. We are also heavily windows biased at the current time.

On Mon, Feb 24, 2014 at 3:28 PM, Kenneth Barry \<[kbarry-x@tunein.com](mailto:kbarry-x@tunein.com)[mailto:kbarry-x@tunein.com](mailto:kbarry-x@tunein.com)\> wrote:  
I’ll keep this in mind re: our Linux stuff, but we are also about 60% Win…
