# Installing Chef-client on existing servers

**URL:** <https://discourse.chef.io/t/installing-chef-client-on-existing-servers/3037>\
**Category:** Chef Infra (archive)\
**Created:** [August 20, 2012, 3:47pm UTC](https://discourse.chef.io/t/installing-chef-client-on-existing-servers/3037 "2012-08-20T15:47:32Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gavin\_Williams](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/gavin_williams/32/675_2.png) [@Gavin\_Williams](https://discourse.chef.io/u/Gavin_Williams)\
**Post date:** [August 20, 2012, 3:47pm UTC](https://discourse.chef.io/t/installing-chef-client-on-existing-servers/3037/1 "2012-08-20T15:47:32Z")

</div>

Hi there,

I’m starting to evaluate how we’d go about rolling out chef-client to all of our existing servers with the minimum amount of hassle…

I started with ‘knife bootstrap [x.x.co.uk](http://x.x.co.uk) -d chef-full’, however instantly failed with:  
[x.x.co.uk](http://x.x.co.uk) --15:09:28-- [http://opscode.com/chef/install.sh](http://opscode.com/chef/install.sh)  
[x.x.co.uk](http://x.x.co.uk) Resolving [opscode.com](http://opscode.com)…  
[x.x.co.uk](http://x.x.co.uk) failed: Temporary failure in name resolution.

My understanding of the process soo far is that the bootstrap process is attempting to download the [install.sh](http://install.sh) script from [opscode.com](http://opscode.com)… However the majority of servers don’t have open internet access or DNS setup…  
So looks like I’ve hit an instant brick wall… ☹

From my understanding of the process, the above install script computes a rpm filename (chef-full-{version}.{machine}.rpm) and URL ([http://s3.amazonaws.com/opscode-full-stack/$platform-$platform\_version-$machine/$filename](http://s3.amazonaws.com/opscode-full-stack/%24platform-%24platform_version-%24machine/%24filename)) then downloads the file and rpm installs it…  
Could I simply create a local yum repo with this RPM file present, and then create a custom bootstrap script which ssh’s into the relevant server, adds a host file entry for the yum repo server, creates the required yum repos.d file, and then installs the above rpm using yum?  
Is that possible using bootstrap?  
Any big gotcha’s with doing it that way? Other than having to maintain the versions in our local yum repo?

Thank-you in advance for any responses.

Regards  
Gavin

---

<div class="post-metadata">

**Author:** ![Ranjib\_Dey](https://avatars.discourse-cdn.com/v4/letter/r/8e8cbc/32.png) [@Ranjib\_Dey](https://discourse.chef.io/u/Ranjib_Dey)\
**Post date:** [August 20, 2012, 4:20pm UTC](https://discourse.chef.io/t/installing-chef-client-on-existing-servers/3037/2 "2012-08-20T16:20:01Z")

</div>

On Mon, Aug 20, 2012 at 9:17 PM, Gavin Williams \<[gavin.williams@weareact.com](mailto:gavin.williams@weareact.com)

> wrote:

> Hi there, \*\*\*\*
> 
> I’m starting to evaluate how we’d go about rolling out chef-client to all  
> of our existing servers with the minimum amount of hassle… \*\*\*\*
> 
> * * *
> 
> I started with ‘knife bootstrap [x.x.co.uk](http://x.x.co.uk) -d chef-full’, however  
> instantly failed with:\*\*\*\*
> 
> _[x.x.co.uk](http://x.x.co.uk) --15:09:28-- [http://opscode.com/chef/install.sh](http://opscode.com/chef/install.sh)_
> 
> _[x.x.co.uk](http://x.x.co.uk) Resolving [opscode.com](http://opscode.com)..._
> 
> _[x.x.co.uk](http://x.x.co.uk) failed: Temporary failure in name resolution._\*\*\*\*
> 
> * * *
> 
> My understanding of the process soo far is that the bootstrap process is  
> attempting to download the install.sh script from [opscode.com](http://opscode.com)… However  
> the majority of servers don’t have open internet access or DNS setup… \*\*\*\*
> 
> So looks like I’ve hit an instant brick wall… L \*\*\*\*
> 
> * * *
> 
> From my understanding of the process, the above install script computes a  
> rpm filename (_chef-full-${version}.${machine}.rpm_)\* _and URL (_  
> [http://s3.amazonaws.com/opscode-full-stack/$platform-$platform\_version-$machine/$filename](http://s3.amazonaws.com/opscode-full-stack/$platform-$platform_version-$machine/$filename)  
> \*) then downloads the file and rpm installs it… \*\*\*\*
> 
> Could I simply create a local yum repo with this RPM file present, and  
> then create a custom bootstrap script which ssh’s into the relevant server,  
> adds a host file entry for the yum repo server, creates the required yum  
> repos.d file, and then installs the above rpm using yum? \*\*\*\*
> 
> Is that possible using bootstrap? \*\*\*\*
> 
> Any big gotcha’s with doing it that way? Other than having to maintain the  
> versions in our local yum repo? \*\*\*\*
> 
> * * *
> 
> Thank-you in advance for any responses. \*\*\*\*
> 
> * * *
> 
> Regards\*\*\*\*
> 
> Gavin \*\*\*\*
> 
> * * *

---

<div class="post-metadata">

**Author:** ![Ranjib\_Dey](https://avatars.discourse-cdn.com/v4/letter/r/8e8cbc/32.png) [@Ranjib\_Dey](https://discourse.chef.io/u/Ranjib_Dey)\
**Post date:** [August 20, 2012, 4:21pm UTC](https://discourse.chef.io/t/installing-chef-client-on-existing-servers/3037/3 "2012-08-20T16:21:56Z")

</div>

sorry for the blank mail.

Yes you can grab the omnibus installer corresponding to your platform and  
use it locally. since omnibus bundle all its dependencies (above glibc) ,  
you can directly curl/wget it from a local http server also , instead of a  
full blown rpm/dpkg repo.

On Mon, Aug 20, 2012 at 9:50 PM, Ranjib Dey [ranjibd@thoughtworks.com](mailto:ranjibd@thoughtworks.com)wrote:

> On Mon, Aug 20, 2012 at 9:17 PM, Gavin Williams \<  
> [gavin.williams@weareact.com](mailto:gavin.williams@weareact.com)\> wrote:
> 
> > Hi there, \*\*\*\*
> > 
> > I’m starting to evaluate how we’d go about rolling out chef-client to all  
> > of our existing servers with the minimum amount of hassle… \*\*\*\*
> > 
> > * * *
> > 
> > I started with ‘knife bootstrap [x.x.co.uk](http://x.x.co.uk) -d chef-full’, however  
> > instantly failed with:\*\*\*\*
> > 
> > _[x.x.co.uk](http://x.x.co.uk) --15:09:28-- [http://opscode.com/chef/install.sh](http://opscode.com/chef/install.sh)_
> > 
> > _[x.x.co.uk](http://x.x.co.uk) Resolving [opscode.com](http://opscode.com)..._
> > 
> > _[x.x.co.uk](http://x.x.co.uk) failed: Temporary failure in name resolution._\*\*\*\*
> > 
> > * * *
> > 
> > My understanding of the process soo far is that the bootstrap process is  
> > attempting to download the install.sh script from [opscode.com](http://opscode.com)… However  
> > the majority of servers don’t have open internet access or DNS setup… \*\*\*  
> > \*
> > 
> > So looks like I’ve hit an instant brick wall… L \*\*\*\*
> > 
> > * * *
> > 
> > From my understanding of the process, the above install script computes a  
> > rpm filename (_chef-full-${version}.${machine}.rpm_)\* _and URL (_  
> > [http://s3.amazonaws.com/opscode-full-stack/$platform-$platform\_version-$machine/$filename](http://s3.amazonaws.com/opscode-full-stack/$platform-$platform_version-$machine/$filename)  
> > \*) then downloads the file and rpm installs it… \*\*\*\*
> > 
> > Could I simply create a local yum repo with this RPM file present, and  
> > then create a custom bootstrap script which ssh’s into the relevant server,  
> > adds a host file entry for the yum repo server, creates the required yum  
> > repos.d file, and then installs the above rpm using yum? \*\*\*\*
> > 
> > Is that possible using bootstrap? \*\*\*\*
> > 
> > Any big gotcha’s with doing it that way? Other than having to maintain  
> > the versions in our local yum repo? \*\*\*\*
> > 
> > * * *
> > 
> > Thank-you in advance for any responses. \*\*\*\*
> > 
> > * * *
> > 
> > Regards\*\*\*\*
> > 
> > Gavin \*\*\*\*
> > 
> > * * *

---

<div class="post-metadata">

**Author:** ![Gavin\_Williams](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/gavin_williams/32/675_2.png) [@Gavin\_Williams](https://discourse.chef.io/u/Gavin_Williams)\
**Post date:** [August 20, 2012, 4:26pm UTC](https://discourse.chef.io/t/installing-chef-client-on-existing-servers/3037/4 "2012-08-20T16:26:39Z")

</div>

Ranjib

Cheers for confirming… Sounds like that might be the way for me to go then…

Cheers  
Gav

From: Ranjib Dey [[mailto:ranjibd@thoughtworks.com](mailto:ranjibd@thoughtworks.com)]  
Sent: 20 August 2012 17:22  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: Installing Chef-client on existing servers…

sorry for the blank mail.

Yes you can grab the omnibus installer corresponding to your platform and use it locally. since omnibus bundle all its dependencies (above glibc) , you can directly curl/wget it from a local http server also , instead of a full blown rpm/dpkg repo.

On Mon, Aug 20, 2012 at 9:50 PM, Ranjib Dey \<[ranjibd@thoughtworks.com](mailto:ranjibd@thoughtworks.com)[mailto:ranjibd@thoughtworks.com](mailto:ranjibd@thoughtworks.com)\> wrote:

On Mon, Aug 20, 2012 at 9:17 PM, Gavin Williams \<[gavin.williams@weareact.com](mailto:gavin.williams@weareact.com)[mailto:gavin.williams@weareact.com](mailto:gavin.williams@weareact.com)\> wrote:  
Hi there,

I’m starting to evaluate how we’d go about rolling out chef-client to all of our existing servers with the minimum amount of hassle…

I started with ‘knife bootstrap [x.x.co.uk](http://x.x.co.uk)[http://x.x.co.uk](http://x.x.co.uk) -d chef-full’, however instantly failed with:  
[x.x.co.uk](http://x.x.co.uk)[http://x.x.co.uk](http://x.x.co.uk) --15:09:28-- [http://opscode.com/chef/install.sh](http://opscode.com/chef/install.sh)  
[x.x.co.uk](http://x.x.co.uk)[http://x.x.co.uk](http://x.x.co.uk) Resolving [opscode.com](http://opscode.com)…  
[x.x.co.uk](http://x.x.co.uk)[http://x.x.co.uk](http://x.x.co.uk) failed: Temporary failure in name resolution.

My understanding of the process soo far is that the bootstrap process is attempting to download the [install.sh](http://install.sh) script from [opscode.com](http://opscode.com)[http://opscode.com](http://opscode.com)… However the majority of servers don’t have open internet access or DNS setup…  
So looks like I’ve hit an instant brick wall… ☹

From my understanding of the process, the above install script computes a rpm filename (chef-full-{version}.{machine}.rpm) and URL ([http://s3.amazonaws.com/opscode-full-stack/$platform-$platform\_version-$machine/$filename](http://s3.amazonaws.com/opscode-full-stack/%24platform-%24platform_version-%24machine/%24filename)) then downloads the file and rpm installs it…  
Could I simply create a local yum repo with this RPM file present, and then create a custom bootstrap script which ssh’s into the relevant server, adds a host file entry for the yum repo server, creates the required yum repos.d file, and then installs the above rpm using yum?  
Is that possible using bootstrap?  
Any big gotcha’s with doing it that way? Other than having to maintain the versions in our local yum repo?

Thank-you in advance for any responses.

Regards  
Gavin

* * *

This e-mail has been scanned for all viruses.

* * *

---

<div class="post-metadata">

**Author:** ![Mat\_Davies](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/mat_davies/32/446_2.png) [@Mat\_Davies](https://discourse.chef.io/u/Mat_Davies)\
**Post date:** [August 20, 2012, 4:45pm UTC](https://discourse.chef.io/t/installing-chef-client-on-existing-servers/3037/5 "2012-08-20T16:45:07Z")

</div>

On 20 August 2012 17:26, Gavin Williams [gavin.williams@weareact.com](mailto:gavin.williams@weareact.com) wrote:

> Ranjib\*\*\*\*
> 
> * * *
> 
> Cheers for confirming… Sounds like that might be the way for me to go  
> then… \*\*\*\*
> 
> * * *
> 
> Cheers\*\*\*\*
> 
> Gav

if you allow access to a proxied access to the internet rather than direct,  
the bootstrap can support that with the --bootstrap-proxy option

> * * *
> 
> * * *
> 
> _From:_ Ranjib Dey [[mailto:ranjibd@thoughtworks.com](mailto:ranjibd@thoughtworks.com)]  
> _Sent:_ 20 August 2012 17:22  
> _To:_ [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> _Subject:_ [chef] Re: Installing Chef-client on existing servers...\*\*\*\*
> 
> * * *
> 
> sorry for the blank mail.\*\*\*\*
> 
> * * *
> 
> Yes you can grab the omnibus installer corresponding to your platform and  
> use it locally. since omnibus bundle all its dependencies (above glibc) ,  
> you can directly curl/wget it from a local http server also , instead of a  
> full blown rpm/dpkg repo.\*\*\*\*
> 
> * * *
> 
> * * *
> 
> On Mon, Aug 20, 2012 at 9:50 PM, Ranjib Dey [ranjibd@thoughtworks.com](mailto:ranjibd@thoughtworks.com)  
> wrote:\*\*\*\*
> 
> * * *
> 
> On Mon, Aug 20, 2012 at 9:17 PM, Gavin Williams \<  
> [gavin.williams@weareact.com](mailto:gavin.williams@weareact.com)\> wrote:\*\*\*\*
> 
> Hi there, \*\*\*\*
> 
> I’m starting to evaluate how we’d go about rolling out chef-client to all  
> of our existing servers with the minimum amount of hassle… \*\*\*\*
> 
> * * *
> 
> I started with ‘knife bootstrap [x.x.co.uk](http://x.x.co.uk) -d chef-full’, however  
> instantly failed with:\*\*\*\*
> 
> _[x.x.co.uk](http://x.x.co.uk) --15:09:28-- [http://opscode.com/chef/install.sh](http://opscode.com/chef/install.sh)_\*\*\*\*
> 
> _[x.x.co.uk](http://x.x.co.uk) Resolving [opscode.com](http://opscode.com)..._\*\*\*\*
> 
> _[x.x.co.uk](http://x.x.co.uk) failed: Temporary failure in name resolution._\*\*\*\*
> 
> * * *
> 
> My understanding of the process soo far is that the bootstrap process is  
> attempting to download the install.sh script from [opscode.com](http://opscode.com)… However  
> the majority of servers don’t have open internet access or DNS setup… \*\*\*\*
> 
> So looks like I’ve hit an instant brick wall… L \*\*\*\*
> 
> * * *
> 
> From my understanding of the process, the above install script computes a  
> rpm filename (_chef-full-${version}.${machine}.rpm_)\* _and URL (_  
> [http://s3.amazonaws.com/opscode-full-stack/$platform-$platform\_version-$machine/$filename](http://s3.amazonaws.com/opscode-full-stack/$platform-$platform_version-$machine/$filename)  
> \*) then downloads the file and rpm installs it… \*\*\*\*
> 
> Could I simply create a local yum repo with this RPM file present, and  
> then create a custom bootstrap script which ssh’s into the relevant server,  
> adds a host file entry for the yum repo server, creates the required yum  
> repos.d file, and then installs the above rpm using yum? \*\*\*\*
> 
> Is that possible using bootstrap? \*\*\*\*
> 
> Any big gotcha’s with doing it that way? Other than having to maintain the  
> versions in our local yum repo? \*\*\*\*
> 
> * * *
> 
> Thank-you in advance for any responses. \*\*\*\*
> 
> * * *
> 
> Regards\*\*\*\*
> 
> Gavin \*\*\*\*
> 
> * * *
> 
> * * *
> 
> * * *
> 
> * * *
> 
> This e-mail has been scanned for all viruses.  
> \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\*\*  
> \*\*

---

<div class="post-metadata">

**Author:** ![Gavin\_Williams](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/gavin_williams/32/675_2.png) [@Gavin\_Williams](https://discourse.chef.io/u/Gavin_Williams)\
**Post date:** [August 20, 2012, 5:22pm UTC](https://discourse.chef.io/t/installing-chef-client-on-existing-servers/3037/6 "2012-08-20T17:22:26Z")

</div>

May be another option to consider…

However I think a custom Yum repo may make more sense for us, as we’ve got a few hand-rolled RPM’s etc which we use on a lot of our VM’s…

Keep em coming though 🙂

Cheers  
Gavin

From: Mat Davies [[mailto:ashmere@gmail.com](mailto:ashmere@gmail.com)]  
Sent: 20 August 2012 17:45  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: RE: Re: Installing Chef-client on existing servers…

On 20 August 2012 17:26, Gavin Williams \<[gavin.williams@weareact.com](mailto:gavin.williams@weareact.com)[mailto:gavin.williams@weareact.com](mailto:gavin.williams@weareact.com)\> wrote:  
Ranjib

Cheers for confirming… Sounds like that might be the way for me to go then…

Cheers  
Gav

if you allow access to a proxied access to the internet rather than direct, the bootstrap can support that with the --bootstrap-proxy option

From: Ranjib Dey [[mailto:ranjibd@thoughtworks.com](mailto:ranjibd@thoughtworks.com)[mailto:ranjibd@thoughtworks.com](mailto:ranjibd@thoughtworks.com)]  
Sent: 20 August 2012 17:22  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)[mailto:chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: Installing Chef-client on existing servers…

sorry for the blank mail.

Yes you can grab the omnibus installer corresponding to your platform and use it locally. since omnibus bundle all its dependencies (above glibc) , you can directly curl/wget it from a local http server also , instead of a full blown rpm/dpkg repo.

On Mon, Aug 20, 2012 at 9:50 PM, Ranjib Dey \<[ranjibd@thoughtworks.com](mailto:ranjibd@thoughtworks.com)[mailto:ranjibd@thoughtworks.com](mailto:ranjibd@thoughtworks.com)\> wrote:

On Mon, Aug 20, 2012 at 9:17 PM, Gavin Williams \<[gavin.williams@weareact.com](mailto:gavin.williams@weareact.com)[mailto:gavin.williams@weareact.com](mailto:gavin.williams@weareact.com)\> wrote:  
Hi there,

I’m starting to evaluate how we’d go about rolling out chef-client to all of our existing servers with the minimum amount of hassle…

I started with ‘knife bootstrap [x.x.co.uk](http://x.x.co.uk)[http://x.x.co.uk](http://x.x.co.uk) -d chef-full’, however instantly failed with:  
[x.x.co.uk](http://x.x.co.uk)[http://x.x.co.uk](http://x.x.co.uk) --15:09:28-- [http://opscode.com/chef/install.sh](http://opscode.com/chef/install.sh)  
[x.x.co.uk](http://x.x.co.uk)[http://x.x.co.uk](http://x.x.co.uk) Resolving [opscode.com](http://opscode.com)…  
[x.x.co.uk](http://x.x.co.uk)[http://x.x.co.uk](http://x.x.co.uk) failed: Temporary failure in name resolution.

My understanding of the process soo far is that the bootstrap process is attempting to download the [install.sh](http://install.sh) script from [opscode.com](http://opscode.com)[http://opscode.com](http://opscode.com)… However the majority of servers don’t have open internet access or DNS setup…  
So looks like I’ve hit an instant brick wall… ☹

From my understanding of the process, the above install script computes a rpm filename (chef-full-{version}.{machine}.rpm) and URL ([http://s3.amazonaws.com/opscode-full-stack/$platform-$platform\_version-$machine/$filename](http://s3.amazonaws.com/opscode-full-stack/%24platform-%24platform_version-%24machine/%24filename)) then downloads the file and rpm installs it…  
Could I simply create a local yum repo with this RPM file present, and then create a custom bootstrap script which ssh’s into the relevant server, adds a host file entry for the yum repo server, creates the required yum repos.d file, and then installs the above rpm using yum?  
Is that possible using bootstrap?  
Any big gotcha’s with doing it that way? Other than having to maintain the versions in our local yum repo?

Thank-you in advance for any responses.

Regards  
Gavin

* * *

This e-mail has been scanned for all viruses.

* * *

* * *

This e-mail has been scanned for all viruses.

* * *

---

<div class="post-metadata">

**Author:** ![KC\_Braunschweig](https://avatars.discourse-cdn.com/v4/letter/k/ea5d25/32.png) [@KC\_Braunschweig](https://discourse.chef.io/u/KC_Braunschweig)\
**Post date:** [August 20, 2012, 5:50pm UTC](https://discourse.chef.io/t/installing-chef-client-on-existing-servers/3037/7 "2012-08-20T17:50:26Z")

</div>

On Mon, Aug 20, 2012 at 10:22 AM, Gavin Williams  
[gavin.williams@weareact.com](mailto:gavin.williams@weareact.com) wrote:

> Could I simply create a local yum repo with this RPM file present, and then  
> create a custom bootstrap script which ssh’s into the relevant server, adds  
> a host file entry for the yum repo server, creates the required yum repos.d  
> file, and then installs the above rpm using yum?

Should be a 1 line change to the chef-full bootstrap template to put  
in your custom location but shouldn't there be a clean option to just  
pass in an override location? People serving the packages from an  
internal repo for nodes with no internet access has to be a pretty  
common use case (for non-cloud types anyway)?

KC

---

<div class="post-metadata">

**Author:** ![Bryan\_McLellan](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/bryan_mclellan/32/81_2.png) [@Bryan\_McLellan](https://discourse.chef.io/u/Bryan_McLellan)\
**Post date:** [August 23, 2012, 2:59pm UTC](https://discourse.chef.io/t/installing-chef-client-on-existing-servers/3037/8 "2012-08-23T14:59:38Z")

</div>

On Mon, Aug 20, 2012 at 1:50 PM, KC Braunschweig  
[kcbraunschweig@gmail.com](mailto:kcbraunschweig@gmail.com) wrote:

> Should be a 1 line change to the chef-full bootstrap template to put  
> in your custom location but shouldn't there be a clean option to just  
> pass in an override location? People serving the packages from an  
> internal repo for nodes with no internet access has to be a pretty  
> common use case (for non-cloud types anyway)?

Adding signing keys will also be important, so it'll end up being more  
than a one line change. The trick will be doing so such that it works  
for both yum and apt repos.

Bryan
