# Baremetal Provisioning

**URL:** <https://discourse.chef.io/t/baremetal-provisioning/4510>\
**Category:** Chef Infra (archive)\
**Created:** [September 4, 2013, 3:54pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510 "2013-09-04T15:54:44Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Phillip\_Roberts](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/phillip_roberts/32/280_2.png) [@Phillip\_Roberts](https://discourse.chef.io/u/Phillip_Roberts)\
**Post date:** [September 4, 2013, 3:54pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/1 "2013-09-04T15:54:44Z")

</div>

Does anyone have any good links or pointers to bare metal provisioning? I have done plenty of cloud based chef stuff, however, we want to now start managing all of our physical servers with chef as well. I am trying to replace as much of our build system as possible (ad hoc bash / perl scripts) for this provisioning. So I am looking for a good way to do this, I understand chef is not a PXE server, but just how far back in the tool chain can I go?

My thoughts are serving up a kickstart file (since we are a RHEL / Cent based shop) that builds just enough of the OS in order to hand off to chef.

Anyway, any pointers, or past presentations / links would be much appreciated.

Thanks,

Phillip Roberts | Sr. Linux Administrator  
San Mateo | Ann Arbor | New York | London  
O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)[http://www.mybuys.com/](http://www.mybuys.com/)  
[cid:image001.png@01CDDDEC.1264D1F0]

---

<div class="post-metadata">

**Author:** ![Chris\_Burroughs](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/chris_burroughs/32/329_2.png) [@Chris\_Burroughs](https://discourse.chef.io/u/Chris_Burroughs)\
**Post date:** [September 6, 2013, 3:23pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/2 "2013-09-06T15:23:49Z")

</div>

We use collins [Collins - Infrastructure Management for Engineers](http://tumblr.github.io/collins/) as an asset db & state  
management tool, and cobbler to do the actual kickstart stuff.

This means that collins & friends care about provisioning related tasks:  
Is this hunk of metal burned working and counted for? Serial number?  
Rack location? DHCP configured? DNS? Which ks file to use?

The last thing the ks files do is install chef and then it's out of  
"provisioning" and into "configuration management". From there it  
probably doesn't look any different than any other use of chef. This  
means that we can treat nodes in chef as ephemeral and another system  
deals with stuff like keeping track of serial numbers for 3 years.

We use an ohai plugin to suck in all of the collins info for each node  
so chef can play with that too. That gives us some niceties like chef  
/etc/motd saying "YO THIS BOX IS BROKEN" when an asset is put into  
maintenance in collins.

On 09/04/2013 11:54 AM, Phillip Roberts wrote:

> Does anyone have any good links or pointers to bare metal provisioning? I have done plenty of cloud based chef stuff, however, we want to now start managing all of our physical servers with chef as well. I am trying to replace as much of our build system as possible (ad hoc bash / perl scripts) for this provisioning. So I am looking for a good way to do this, I understand chef is not a PXE server, but just how far back in the tool chain can I go?
> 
> My thoughts are serving up a kickstart file (since we are a RHEL / Cent based shop) that builds just enough of the OS in order to hand off to chef.
> 
> Anyway, any pointers, or past presentations / links would be much appreciated.
> 
> Thanks,
> 
> Phillip Roberts | Sr. Linux Administrator  
> San Mateo | Ann Arbor | New York | London  
> O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)[http://www.mybuys.com/](http://www.mybuys.com/)  
> [cid:image001.png@01CDDDEC.1264D1F0]

---

<div class="post-metadata">

**Author:** ![Sam\_Cooper](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/sam_cooper/32/485_2.png) [@Sam\_Cooper](https://discourse.chef.io/u/Sam_Cooper)\
**Post date:** [September 6, 2013, 4:03pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/3 "2013-09-06T16:03:21Z")

</div>

We're succesfully using razor here at Blue Box.

We're using Fletcher's razor cookbook that Matt mentioned above.

We're using Fletcher's chef-broker.

We're also using Fletcher's safety\_razor gem to control policy / node state  
via a sinatra app:

> **[GitHub - blueboxgroup/safety\_razor: Safety Razor - A Ruby client for the...](https://github.com/blueboxgroup/safety_razor)**
>
> Safety Razor - A Ruby client for the Razor API. Contribute to blueboxgroup/safety\_razor development by creating an account on GitHub.

Basically we're using all the the razor stuff that Fletcher wrote while he  
worked here 🙂

We've been using it in production for about 3 months now and it's been  
working quite well.

We have an automated workflow where we

- request the sinatra app to setup a custom tag / policy association for  
the node we want to provision

- move a machine into the razor vlan

- powercycle it so that it netboots and razor can pick it up

- the node reimages according to it's policy and then is moved back into  
it's orginal vlan

- chef-broker takes over and bootstraps the node, using the run\_list that  
get's determined by some of the tags that are indicated by the policy

There are some foibles with it:

- lack of security (basicaly assumes you are on not on the public internet)

- strange database tables that are very non-normalized, such that you end  
up have to delete multiple dependent objects when something changes  
underneath it. (mongo design artifact)

But all in all, we're happy with it.

Razor is going through a re-write right now. We look foward to their  
proposed imrovements which should help the database situation. The README  
on the main razor project goes into good detail on the rewrite:

[https://github.com/puppetlabs/Razor](https://github.com/puppetlabs/Razor)

I'm realizing there is a blog post due on this subject and our workflow 😛

Regards,

Sam

On Fri, Sep 6, 2013 at 8:23 AM, Chris Burroughs  
[chris.burroughs@gmail.com](mailto:chris.burroughs@gmail.com)wrote:

> We use collins [http://tumblr.github.io/\*\*collins/](http://tumblr.github.io/**collins/)[http://tumblr.github.io/collins/](http://tumblr.github.io/collins/)as an asset db & state management tool, and cobbler to do the actual  
> kickstart stuff.
> 
> This means that collins & friends care about provisioning related tasks:  
> Is this hunk of metal burned working and counted for? Serial number? Rack  
> location? DHCP configured? DNS? Which ks file to use?
> 
> The last thing the ks files do is install chef and then it's out of  
> "provisioning" and into "configuration management". From there it  
> probably doesn't look any different than any other use of chef. This means  
> that we can treat nodes in chef as ephemeral and another system deals with  
> stuff like keeping track of serial numbers for 3 years.
> 
> We use an ohai plugin to suck in all of the collins info for each node so  
> chef can play with that too. That gives us some niceties like chef  
> /etc/motd saying "YO THIS BOX IS BROKEN" when an asset is put into  
> maintenance in collins.
> 
> On 09/04/2013 11:54 AM, Phillip Roberts wrote:
> 
> > Does anyone have any good links or pointers to bare metal provisioning? I  
> > have done plenty of cloud based chef stuff, however, we want to now start  
> > managing all of our physical servers with chef as well. I am trying to  
> > replace as much of our build system as possible (ad hoc bash / perl  
> > scripts) for this provisioning. So I am looking for a good way to do this,  
> > I understand chef is not a PXE server, but just how far back in the tool  
> > chain can I go?
> > 
> > My thoughts are serving up a kickstart file (since we are a RHEL / Cent  
> > based shop) that builds just enough of the OS in order to hand off to chef.
> > 
> > Anyway, any pointers, or past presentations / links would be much  
> > appreciated.
> > 
> > Thanks,
> > 
> > Phillip Roberts | Sr. Linux Administrator  
> > San Mateo | Ann Arbor | New York | London  
> > O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)\<[http://www](http://www).\*\*[mybuys.com/](http://mybuys.com/)[http://www.mybuys.com/](http://www.mybuys.com/)
> > 
> > > 
> > 
> > [cid:image001.png@01CDDDEC.\*\*1264D1F0]

--  
Sam Cooper  
[sam@chgworks.com](mailto:sam@chgworks.com)  
206-660-5043

---

<div class="post-metadata">

**Author:** ![BradKnowles](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/bradknowles/32/99_2.png) [@BradKnowles](https://discourse.chef.io/u/BradKnowles)\
**Post date:** [September 4, 2013, 4:14pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/4 "2013-09-04T16:14:33Z")

</div>

On Sep 4, 2013, at 10:54 AM, Phillip Roberts [proberts@mybuys.com](mailto:proberts@mybuys.com) wrote:

> My thoughts are serving up a kickstart file (since we are a RHEL / Cent based shop) that builds just enough of the OS in order to hand off to chef.

That's basically what we have done at previous client sites -- build a JEOS image that can be installed with tools like kickstart or cobbler, and part of that image is chef-client. The last stage of the kickstart is to launch chef-client and have it check in with the server, and do all the rest of the work with Chef.

--  
Brad Knowles [brad@shub-internet.org](mailto:brad@shub-internet.org)  
LinkedIn Profile: [http://tinyurl.com/y8kpxu](http://tinyurl.com/y8kpxu)

---

<div class="post-metadata">

**Author:** ![Jay\_Pipes](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/jay_pipes/32/478_2.png) [@Jay\_Pipes](https://discourse.chef.io/u/Jay_Pipes)\
**Post date:** [September 4, 2013, 4:19pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/5 "2013-09-04T16:19:22Z")

</div>

On 09/04/2013 11:54 AM, Phillip Roberts wrote:

> Does anyone have any good links or pointers to bare metal provisioning?  
> I have done plenty of cloud based chef stuff, however, we want to now  
> start managing all of our physical servers with chef as well. I am  
> trying to replace as much of our build system as possible (ad hoc bash /  
> perl scripts) for this provisioning. So I am looking for a good way to  
> do this, I understand chef is not a PXE server, but just how far back in  
> the tool chain can I go?
> 
> My thoughts are serving up a kickstart file (since we are a RHEL / Cent  
> based shop) that builds just enough of the OS in order to hand off to chef.
> 
> Anyway, any pointers, or past presentations / links would be much  
> appreciated.
> 
> Thanks,

Hey there Phillip 🙂

We use Chef, Cobbler, and a small amount of Python glue code to  
provision our bare metal nodes and network devices (the ones that  
support modern OSs at least 😉 -- nodes that run infrastructure  
services, nodes that run OpenStack API and support services, and  
OpenStack Compute worker nodes (boxen that provide tenant-facing compute  
capacity). Works very well.

We use Ubuntu 12.04 as our base netboot OS, with a simple preseed setup  
that implants our Chef validation keys on a vanilla barebones server OS  
install, and our Python glue code simply calls out to Cobbler and Chef  
to populate node attributes (from a set of YAML files we keep about the  
nodes in our deployment zones), power cycle or netboot nodes, and stuff  
like that.

All in all, I would say the most pain we've experienced in Chef land has  
probably been around configuring raw network interfaces for bonded NIC  
setups (we've found it virtually impossible to configure networking  
properly without having Chef reboot the server once -- restarting  
networking just doesn't work reliably) and around out-of-order Chef node  
attribute get/set issues... something that isn't helped by the myriad  
different precedence levels associated with attributes for nodes, roles,  
environments, etc. My advice: stick to the "application cookbook"  
strategy (sometimes called "wrapper cookbook" strategy) versus putting  
any logic or much of anything in role definition files.

Best of luck, and Go Bucks! 🙂  
-jay

---

<div class="post-metadata">

**Author:** ![Phillip\_Roberts](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/phillip_roberts/32/280_2.png) [@Phillip\_Roberts](https://discourse.chef.io/u/Phillip_Roberts)\
**Post date:** [September 4, 2013, 4:49pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/6 "2013-09-04T16:49:24Z")

</div>

Thank you Mr. Knowles and Mr. Pipes.

Seems like I had the right idea. Just wanted to make sure there wasn't some crazy knife plugin out there that does magic that I don't know about or something.

Appreciate your responses!!

O-H!! Go Bucks!!

Thanks Again,

Phillip Roberts | Sr. Linux Administrator  
San Mateo | Ann Arbor | New York | London  
O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)

-----Original Message-----  
From: Jay Pipes [[mailto:jaypipes@gmail.com](mailto:jaypipes@gmail.com)]  
Sent: Wednesday, September 04, 2013 12:19  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: Baremetal Provisioning

On 09/04/2013 11:54 AM, Phillip Roberts wrote:

> Does anyone have any good links or pointers to bare metal provisioning?  
> I have done plenty of cloud based chef stuff, however, we want to now  
> start managing all of our physical servers with chef as well. I am  
> trying to replace as much of our build system as possible (ad hoc bash  
> / perl scripts) for this provisioning. So I am looking for a good way  
> to do this, I understand chef is not a PXE server, but just how far  
> back in the tool chain can I go?
> 
> My thoughts are serving up a kickstart file (since we are a RHEL /  
> Cent based shop) that builds just enough of the OS in order to hand off to chef.
> 
> Anyway, any pointers, or past presentations / links would be much  
> appreciated.
> 
> Thanks,

Hey there Phillip 🙂

We use Chef, Cobbler, and a small amount of Python glue code to provision our bare metal nodes and network devices (the ones that support modern OSs at least 😉 -- nodes that run infrastructure services, nodes that run OpenStack API and support services, and OpenStack Compute worker nodes (boxen that provide tenant-facing compute capacity). Works very well.

We use Ubuntu 12.04 as our base netboot OS, with a simple preseed setup that implants our Chef validation keys on a vanilla barebones server OS install, and our Python glue code simply calls out to Cobbler and Chef to populate node attributes (from a set of YAML files we keep about the nodes in our deployment zones), power cycle or netboot nodes, and stuff like that.

All in all, I would say the most pain we've experienced in Chef land has probably been around configuring raw network interfaces for bonded NIC setups (we've found it virtually impossible to configure networking properly without having Chef reboot the server once -- restarting networking just doesn't work reliably) and around out-of-order Chef node attribute get/set issues... something that isn't helped by the myriad different precedence levels associated with attributes for nodes, roles, environments, etc. My advice: stick to the "application cookbook"  
strategy (sometimes called "wrapper cookbook" strategy) versus putting any logic or much of anything in role definition files.

Best of luck, and Go Bucks! 🙂  
-jay

---

<div class="post-metadata">

**Author:** ![Maxime\_Brugidou](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/maxime_brugidou/32/55_2.png) [@Maxime\_Brugidou](https://discourse.chef.io/u/Maxime_Brugidou)\
**Post date:** [September 4, 2013, 9:45pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/7 "2013-09-04T21:45:07Z")

</div>

Hi, we have a centos and debian image built from debirf that boots a  
minimal ram disk OS from PXE by default. The server pops up in chef  
automatically. Then we have some servers running fully diskless and others  
installed on-disk with an "os" cookbook capable of installing some Linux  
distro and even Windows server.

We should open source these I guess.  
On Sep 4, 2013 6:49 PM, "Phillip Roberts" [proberts@mybuys.com](mailto:proberts@mybuys.com) wrote:

> Thank you Mr. Knowles and Mr. Pipes.
> 
> Seems like I had the right idea. Just wanted to make sure there wasn't  
> some crazy knife plugin out there that does magic that I don't know about  
> or something.
> 
> Appreciate your responses!!
> 
> O-H!! Go Bucks!!
> 
> Thanks Again,
> 
> Phillip Roberts | Sr. Linux Administrator  
> San Mateo | Ann Arbor | New York | London  
> O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)
> 
> -----Original Message-----  
> From: Jay Pipes [[mailto:jaypipes@gmail.com](mailto:jaypipes@gmail.com)]  
> Sent: Wednesday, September 04, 2013 12:19  
> To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> Subject: [chef] Re: Baremetal Provisioning
> 
> On 09/04/2013 11:54 AM, Phillip Roberts wrote:
> 
> > Does anyone have any good links or pointers to bare metal provisioning?  
> > I have done plenty of cloud based chef stuff, however, we want to now  
> > start managing all of our physical servers with chef as well. I am  
> > trying to replace as much of our build system as possible (ad hoc bash  
> > / perl scripts) for this provisioning. So I am looking for a good way  
> > to do this, I understand chef is not a PXE server, but just how far  
> > back in the tool chain can I go?
> > 
> > My thoughts are serving up a kickstart file (since we are a RHEL /  
> > Cent based shop) that builds just enough of the OS in order to hand off  
> > to chef.
> > 
> > Anyway, any pointers, or past presentations / links would be much  
> > appreciated.
> > 
> > Thanks,
> 
> Hey there Phillip 🙂
> 
> We use Chef, Cobbler, and a small amount of Python glue code to provision  
> our bare metal nodes and network devices (the ones that support modern OSs  
> at least 😉 -- nodes that run infrastructure services, nodes that run  
> OpenStack API and support services, and OpenStack Compute worker nodes  
> (boxen that provide tenant-facing compute capacity). Works very well.
> 
> We use Ubuntu 12.04 as our base netboot OS, with a simple preseed setup  
> that implants our Chef validation keys on a vanilla barebones server OS  
> install, and our Python glue code simply calls out to Cobbler and Chef to  
> populate node attributes (from a set of YAML files we keep about the nodes  
> in our deployment zones), power cycle or netboot nodes, and stuff like that.
> 
> All in all, I would say the most pain we've experienced in Chef land has  
> probably been around configuring raw network interfaces for bonded NIC  
> setups (we've found it virtually impossible to configure networking  
> properly without having Chef reboot the server once -- restarting  
> networking just doesn't work reliably) and around out-of-order Chef node  
> attribute get/set issues... something that isn't helped by the myriad  
> different precedence levels associated with attributes for nodes, roles,  
> environments, etc. My advice: stick to the "application cookbook"  
> strategy (sometimes called "wrapper cookbook" strategy) versus putting any  
> logic or much of anything in role definition files.
> 
> Best of luck, and Go Bucks! 🙂  
> -jay

---

<div class="post-metadata">

**Author:** ![Matt\_Ray\_OPSCODE](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/matt_ray_opscode/32/459_2.png) [@Matt\_Ray\_OPSCODE](https://discourse.chef.io/u/Matt_Ray_OPSCODE)\
**Post date:** [September 4, 2013, 9:50pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/8 "2013-09-04T21:50:03Z")

</div>

There's also the pxe\_dust cookbook which currently supports PXE installing Debian and Ubuntu with a preseed. No reason it can't support kickstarts for RHEL-flavors, just haven't gotten around to it yet.

> **[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 :: Opscode[http://opscode.com](http://opscode.com)  
512.731.2218 :: [matt@opscode.com](mailto:matt@opscode.com)  
mattray :: GitHub[http://github.com/mattray/](http://github.com/mattray/) :: IRC :: Twitter[http://twitter.com/mattray](http://twitter.com/mattray)

* * *

From: Maxime Brugidou [maxime.brugidou@gmail.com](mailto:maxime.brugidou@gmail.com)  
Sent: Wednesday, September 04, 2013 4:45 PM  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: RE: Re: Baremetal Provisioning

Hi, we have a centos and debian image built from debirf that boots a minimal ram disk OS from PXE by default. The server pops up in chef automatically. Then we have some servers running fully diskless and others installed on-disk with an "os" cookbook capable of installing some Linux distro and even Windows server.

We should open source these I guess.

On Sep 4, 2013 6:49 PM, "Phillip Roberts" \<[proberts@mybuys.com](mailto:proberts@mybuys.com)[mailto:proberts@mybuys.com](mailto:proberts@mybuys.com)\> wrote:  
Thank you Mr. Knowles and Mr. Pipes.

Seems like I had the right idea. Just wanted to make sure there wasn't some crazy knife plugin out there that does magic that I don't know about or something.

Appreciate your responses!!

O-H!! Go Bucks!!

Thanks Again,

Phillip Roberts | Sr. Linux Administrator  
San Mateo | Ann Arbor | New York | London  
O 734.922.7014tel:734.922.7014 | C 614.423.9871tel:614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)[http://www.MyBuys.com](http://www.MyBuys.com)

-----Original Message-----  
From: Jay Pipes [[mailto:jaypipes@gmail.com](mailto:jaypipes@gmail.com)[mailto:jaypipes@gmail.com](mailto:jaypipes@gmail.com)]  
Sent: Wednesday, September 04, 2013 12:19  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)[mailto:chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: Baremetal Provisioning

On 09/04/2013 11:54 AM, Phillip Roberts wrote:

> Does anyone have any good links or pointers to bare metal provisioning?  
> I have done plenty of cloud based chef stuff, however, we want to now  
> start managing all of our physical servers with chef as well. I am  
> trying to replace as much of our build system as possible (ad hoc bash  
> / perl scripts) for this provisioning. So I am looking for a good way  
> to do this, I understand chef is not a PXE server, but just how far  
> back in the tool chain can I go?
> 
> My thoughts are serving up a kickstart file (since we are a RHEL /  
> Cent based shop) that builds just enough of the OS in order to hand off to chef.
> 
> Anyway, any pointers, or past presentations / links would be much  
> appreciated.
> 
> Thanks,

Hey there Phillip 🙂

We use Chef, Cobbler, and a small amount of Python glue code to provision our bare metal nodes and network devices (the ones that support modern OSs at least 😉 -- nodes that run infrastructure services, nodes that run OpenStack API and support services, and OpenStack Compute worker nodes (boxen that provide tenant-facing compute capacity). Works very well.

We use Ubuntu 12.04 as our base netboot OS, with a simple preseed setup that implants our Chef validation keys on a vanilla barebones server OS install, and our Python glue code simply calls out to Cobbler and Chef to populate node attributes (from a set of YAML files we keep about the nodes in our deployment zones), power cycle or netboot nodes, and stuff like that.

All in all, I would say the most pain we've experienced in Chef land has probably been around configuring raw network interfaces for bonded NIC setups (we've found it virtually impossible to configure networking properly without having Chef reboot the server once -- restarting networking just doesn't work reliably) and around out-of-order Chef node attribute get/set issues... something that isn't helped by the myriad different precedence levels associated with attributes for nodes, roles, environments, etc. My advice: stick to the "application cookbook"  
strategy (sometimes called "wrapper cookbook" strategy) versus putting any logic or much of anything in role definition files.

Best of luck, and Go Bucks! 🙂  
-jay

---

<div class="post-metadata">

**Author:** ![Phillip\_Roberts](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/phillip_roberts/32/280_2.png) [@Phillip\_Roberts](https://discourse.chef.io/u/Phillip_Roberts)\
**Post date:** [September 5, 2013, 5:39pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/9 "2013-09-05T17:39:40Z")

</div>

I might take a look at that and add in the RHEL stuff.

Thank you,

Phillip Roberts | Sr. Linux Administrator  
San Mateo | Ann Arbor | New York | London  
O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)[http://www.mybuys.com/](http://www.mybuys.com/)  
[cid:image001.png@01CDDDEC.1264D1F0]

From: Matt Ray [[mailto:matt@opscode.com](mailto:matt@opscode.com)]  
Sent: Wednesday, September 04, 2013 17:50  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] RE: Re: RE: Re: Baremetal Provisioning

There's also the pxe\_dust cookbook which currently supports PXE installing Debian and Ubuntu with a preseed. No reason it can't support kickstarts for RHEL-flavors, just haven't gotten around to it yet.

> **[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 :: Opscode[http://opscode.com](http://opscode.com)  
512.731.2218 :: [matt@opscode.com](mailto:matt@opscode.com)[mailto:matt@opscode.com](mailto:matt@opscode.com)  
mattray :: GitHub[http://github.com/mattray/](http://github.com/mattray/) :: IRC :: Twitter[http://twitter.com/mattray](http://twitter.com/mattray)

* * *

From: Maxime Brugidou \<[maxime.brugidou@gmail.com](mailto:maxime.brugidou@gmail.com)[mailto:maxime.brugidou@gmail.com](mailto:maxime.brugidou@gmail.com)\>  
Sent: Wednesday, September 04, 2013 4:45 PM  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)[mailto:chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: RE: Re: Baremetal Provisioning

Hi, we have a centos and debian image built from debirf that boots a minimal ram disk OS from PXE by default. The server pops up in chef automatically. Then we have some servers running fully diskless and others installed on-disk with an "os" cookbook capable of installing some Linux distro and even Windows server.

We should open source these I guess.  
On Sep 4, 2013 6:49 PM, "Phillip Roberts" \<[proberts@mybuys.com](mailto:proberts@mybuys.com)[mailto:proberts@mybuys.com](mailto:proberts@mybuys.com)\> wrote:  
Thank you Mr. Knowles and Mr. Pipes.

Seems like I had the right idea. Just wanted to make sure there wasn't some crazy knife plugin out there that does magic that I don't know about or something.

Appreciate your responses!!

O-H!! Go Bucks!!

Thanks Again,

Phillip Roberts | Sr. Linux Administrator  
San Mateo | Ann Arbor | New York | London  
O 734.922.7014tel:734.922.7014 | C 614.423.9871tel:614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)[http://www.MyBuys.com](http://www.MyBuys.com)

-----Original Message-----  
From: Jay Pipes [[mailto:jaypipes@gmail.com](mailto:jaypipes@gmail.com)[mailto:jaypipes@gmail.com](mailto:jaypipes@gmail.com)]  
Sent: Wednesday, September 04, 2013 12:19  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)[mailto:chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: Baremetal Provisioning

On 09/04/2013 11:54 AM, Phillip Roberts wrote:

> Does anyone have any good links or pointers to bare metal provisioning?  
> I have done plenty of cloud based chef stuff, however, we want to now  
> start managing all of our physical servers with chef as well. I am  
> trying to replace as much of our build system as possible (ad hoc bash  
> / perl scripts) for this provisioning. So I am looking for a good way  
> to do this, I understand chef is not a PXE server, but just how far  
> back in the tool chain can I go?
> 
> My thoughts are serving up a kickstart file (since we are a RHEL /  
> Cent based shop) that builds just enough of the OS in order to hand off to chef.
> 
> Anyway, any pointers, or past presentations / links would be much  
> appreciated.
> 
> Thanks,

Hey there Phillip 🙂

We use Chef, Cobbler, and a small amount of Python glue code to provision our bare metal nodes and network devices (the ones that support modern OSs at least 😉 -- nodes that run infrastructure services, nodes that run OpenStack API and support services, and OpenStack Compute worker nodes (boxen that provide tenant-facing compute capacity). Works very well.

We use Ubuntu 12.04 as our base netboot OS, with a simple preseed setup that implants our Chef validation keys on a vanilla barebones server OS install, and our Python glue code simply calls out to Cobbler and Chef to populate node attributes (from a set of YAML files we keep about the nodes in our deployment zones), power cycle or netboot nodes, and stuff like that.

All in all, I would say the most pain we've experienced in Chef land has probably been around configuring raw network interfaces for bonded NIC setups (we've found it virtually impossible to configure networking properly without having Chef reboot the server once -- restarting networking just doesn't work reliably) and around out-of-order Chef node attribute get/set issues... something that isn't helped by the myriad different precedence levels associated with attributes for nodes, roles, environments, etc. My advice: stick to the "application cookbook"  
strategy (sometimes called "wrapper cookbook" strategy) versus putting any logic or much of anything in role definition files.

Best of luck, and Go Bucks! 🙂  
-jay

---

<div class="post-metadata">

**Author:** ![Damien\_Roche](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/damien_roche/32/75_2.png) [@Damien\_Roche](https://discourse.chef.io/u/Damien_Roche)\
**Post date:** [September 5, 2013, 6:08pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/10 "2013-09-05T18:08:51Z")

</div>

I've been looking into this recently and came across Crowbar

> **[Home](https://github.com/crowbar/crowbar/wiki)**
>
> Cloud Operations Platform. Contribute to crowbar/crowbar development by creating an account on GitHub.

It integrates with chef to do application provisioning I believe.

On 5 September 2013 18:39, Phillip Roberts [proberts@mybuys.com](mailto:proberts@mybuys.com) wrote:

> I might take a look at that and add in the RHEL stuff. \*\*\*\*
> 
> * * *
> 
> Thank you, \*\*\*\*
> 
> * * *
> 
> _Phillip Roberts_\* | Sr. Linux Administrator\*\*\*\*\*
> 
> San Mateo _|_ _Ann Arbor |_ New York _|_ London\*\*\*\*
> 
> _O_ _734.922.7014_ _| C 614.423.9871_ \*| \*[www.MyBuys.com](http://www.MyBuys.com)[http://www.mybuys.com/](http://www.mybuys.com/)
> 
> * * *
> 
> [image: cid:image001.png@01CDDDEC.1264D1F0]\*\*\*\*
> 
> * * *
> 
> _From:_ Matt Ray [[mailto:matt@opscode.com](mailto:matt@opscode.com)]  
> _Sent:_ Wednesday, September 04, 2013 17:50  
> _To:_ [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> _Subject:_ [chef] RE: Re: RE: Re: Baremetal Provisioning\*\*\*\*
> 
> * * *
> 
> There's also the pxe\_dust cookbook which currently supports PXE installing  
> Debian and Ubuntu with a preseed. No reason it can't support kickstarts for  
> RHEL-flavors, just haven't gotten around to it yet. \*\*\*\*
> 
> [GitHub - jjasghar/pxe\_dust-cookbook: Development repository for Chef Cookbook pxe\_dust](https://github.com/opscode-cookbooks/pxe_dust)\*\*\*\*
> 
> * * *
> 
> Thanks,\*\*\*\*
> 
> Matt Ray\*\*\*\*
> 
> Cloud Integrations Product Lead :: Opscode [http://opscode.com](http://opscode.com)\*\*\*\*
> 
> 512.731.2218 _::_ [matt@opscode.com](mailto:matt@opscode.com)\*\*\*\*
> 
> mattray _::_ GitHub [http://github.com/mattray/](http://github.com/mattray/) _::_ IRC _::_ Twitter[http://twitter.com/mattray](http://twitter.com/mattray)
> 
> * * *
> 
> * * *
> 
> * * *
> 
> _From:_ Maxime Brugidou [maxime.brugidou@gmail.com](mailto:maxime.brugidou@gmail.com)  
> _Sent:_ Wednesday, September 04, 2013 4:45 PM  
> _To:_ [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> _Subject:_ [chef] Re: RE: Re: Baremetal Provisioning \*\*\*\*
> 
> * * *
> 
> Hi, we have a centos and debian image built from debirf that boots a  
> minimal ram disk OS from PXE by default. The server pops up in chef  
> automatically. Then we have some servers running fully diskless and others  
> installed on-disk with an "os" cookbook capable of installing some Linux  
> distro and even Windows server.\*\*\*\*
> 
> We should open source these I guess.\*\*\*\*
> 
> On Sep 4, 2013 6:49 PM, "Phillip Roberts" [proberts@mybuys.com](mailto:proberts@mybuys.com) wrote:\*\*\*\*
> 
> Thank you Mr. Knowles and Mr. Pipes.
> 
> Seems like I had the right idea. Just wanted to make sure there wasn't  
> some crazy knife plugin out there that does magic that I don't know about  
> or something.
> 
> Appreciate your responses!!
> 
> O-H!! Go Bucks!!
> 
> Thanks Again,
> 
> Phillip Roberts | Sr. Linux Administrator  
> San Mateo | Ann Arbor | New York | London  
> O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)
> 
> -----Original Message-----  
> From: Jay Pipes [[mailto:jaypipes@gmail.com](mailto:jaypipes@gmail.com)]  
> Sent: Wednesday, September 04, 2013 12:19  
> To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> Subject: [chef] Re: Baremetal Provisioning
> 
> On 09/04/2013 11:54 AM, Phillip Roberts wrote:
> 
> > Does anyone have any good links or pointers to bare metal provisioning?  
> > I have done plenty of cloud based chef stuff, however, we want to now  
> > start managing all of our physical servers with chef as well. I am  
> > trying to replace as much of our build system as possible (ad hoc bash  
> > / perl scripts) for this provisioning. So I am looking for a good way  
> > to do this, I understand chef is not a PXE server, but just how far  
> > back in the tool chain can I go?
> > 
> > My thoughts are serving up a kickstart file (since we are a RHEL /  
> > Cent based shop) that builds just enough of the OS in order to hand off  
> > to chef.
> > 
> > Anyway, any pointers, or past presentations / links would be much  
> > appreciated.
> > 
> > Thanks,
> 
> Hey there Phillip 🙂
> 
> We use Chef, Cobbler, and a small amount of Python glue code to provision  
> our bare metal nodes and network devices (the ones that support modern OSs  
> at least 😉 -- nodes that run infrastructure services, nodes that run  
> OpenStack API and support services, and OpenStack Compute worker nodes  
> (boxen that provide tenant-facing compute capacity). Works very well.
> 
> We use Ubuntu 12.04 as our base netboot OS, with a simple preseed setup  
> that implants our Chef validation keys on a vanilla barebones server OS  
> install, and our Python glue code simply calls out to Cobbler and Chef to  
> populate node attributes (from a set of YAML files we keep about the nodes  
> in our deployment zones), power cycle or netboot nodes, and stuff like that.
> 
> All in all, I would say the most pain we've experienced in Chef land has  
> probably been around configuring raw network interfaces for bonded NIC  
> setups (we've found it virtually impossible to configure networking  
> properly without having Chef reboot the server once -- restarting  
> networking just doesn't work reliably) and around out-of-order Chef node  
> attribute get/set issues... something that isn't helped by the myriad  
> different precedence levels associated with attributes for nodes, roles,  
> environments, etc. My advice: stick to the "application cookbook"  
> strategy (sometimes called "wrapper cookbook" strategy) versus putting any  
> logic or much of anything in role definition files.
> 
> Best of luck, and Go Bucks! 🙂  
> -jay\*\*\*\*

--  
Kind Regards  
Damien

---

<div class="post-metadata">

**Author:** ![Tim\_Smith1](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/tim_smith1/32/283_2.png) [@Tim\_Smith1](https://discourse.chef.io/u/Tim_Smith1)\
**Post date:** [September 5, 2013, 6:15pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/11 "2013-09-05T18:15:49Z")

</div>

Has anyone looked at [GitHub - puppetlabs-toy-chest/razor-server: Razor is next generation provisioning software that handles bare metal hardware and virtual server provisioning](https://github.com/puppetlabs/razor-server) with the Chef broker?

[http://www.bluebox.net/about/blog/2013/01/provisioning-with-razor-and-chef-an-interactive-demo/](http://www.bluebox.net/about/blog/2013/01/provisioning-with-razor-and-chef-an-interactive-demo/)

Tim Smith - Systems Engineer  
m: +1 707.738.8132

On Sep 5, 2013, at 11:08 AM, Damien Roche [dcroche@gmail.com](mailto:dcroche@gmail.com) wrote:

> I've been looking into this recently and came across Crowbar [Home · crowbar/crowbar Wiki · GitHub](https://github.com/crowbar/crowbar/wiki)  
> It integrates with chef to do application provisioning I believe.
> 
> On 5 September 2013 18:39, Phillip Roberts [proberts@mybuys.com](mailto:proberts@mybuys.com) wrote:  
> I might take a look at that and add in the RHEL stuff.
> 
> Thank you,
> 
> Phillip Roberts | Sr. Linux Administrator
> 
> San Mateo | Ann Arbor | New York | London
> 
> O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)
> 
> \<image001.png\>
> 
> From: Matt Ray [[mailto:matt@opscode.com](mailto:matt@opscode.com)]  
> Sent: Wednesday, September 04, 2013 17:50  
> To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> Subject: [chef] RE: Re: RE: Re: Baremetal Provisioning
> 
> There's also the pxe\_dust cookbook which currently supports PXE installing Debian and Ubuntu with a preseed. No reason it can't support kickstarts for RHEL-flavors, just haven't gotten around to it yet.
> 
> [GitHub - jjasghar/pxe\_dust-cookbook: Development repository for Chef Cookbook pxe\_dust](https://github.com/opscode-cookbooks/pxe_dust)
> 
> Thanks,
> 
> Matt Ray
> 
> Cloud Integrations Product Lead :: Opscode
> 
> 512.731.2218 :: [matt@opscode.com](mailto:matt@opscode.com)
> 
> mattray :: GitHub :: IRC :: Twitter
> 
> From: Maxime Brugidou [maxime.brugidou@gmail.com](mailto:maxime.brugidou@gmail.com)  
> Sent: Wednesday, September 04, 2013 4:45 PM  
> To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> Subject: [chef] Re: RE: Re: Baremetal Provisioning
> 
> Hi, we have a centos and debian image built from debirf that boots a minimal ram disk OS from PXE by default. The server pops up in chef automatically. Then we have some servers running fully diskless and others installed on-disk with an "os" cookbook capable of installing some Linux distro and even Windows server.
> 
> We should open source these I guess.
> 
> On Sep 4, 2013 6:49 PM, "Phillip Roberts" [proberts@mybuys.com](mailto:proberts@mybuys.com) wrote:
> 
> Thank you Mr. Knowles and Mr. Pipes.
> 
> Seems like I had the right idea. Just wanted to make sure there wasn't some crazy knife plugin out there that does magic that I don't know about or something.
> 
> Appreciate your responses!!
> 
> O-H!! Go Bucks!!
> 
> Thanks Again,
> 
> Phillip Roberts | Sr. Linux Administrator  
> San Mateo | Ann Arbor | New York | London  
> O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)
> 
> -----Original Message-----  
> From: Jay Pipes [[mailto:jaypipes@gmail.com](mailto:jaypipes@gmail.com)]  
> Sent: Wednesday, September 04, 2013 12:19  
> To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> Subject: [chef] Re: Baremetal Provisioning
> 
> On 09/04/2013 11:54 AM, Phillip Roberts wrote:
> 
> > Does anyone have any good links or pointers to bare metal provisioning?  
> > I have done plenty of cloud based chef stuff, however, we want to now  
> > start managing all of our physical servers with chef as well. I am  
> > trying to replace as much of our build system as possible (ad hoc bash  
> > / perl scripts) for this provisioning. So I am looking for a good way  
> > to do this, I understand chef is not a PXE server, but just how far  
> > back in the tool chain can I go?
> > 
> > My thoughts are serving up a kickstart file (since we are a RHEL /  
> > Cent based shop) that builds just enough of the OS in order to hand off to chef.
> > 
> > Anyway, any pointers, or past presentations / links would be much  
> > appreciated.
> > 
> > Thanks,
> 
> Hey there Phillip 🙂
> 
> We use Chef, Cobbler, and a small amount of Python glue code to provision our bare metal nodes and network devices (the ones that support modern OSs at least 😉 -- nodes that run infrastructure services, nodes that run OpenStack API and support services, and OpenStack Compute worker nodes (boxen that provide tenant-facing compute capacity). Works very well.
> 
> We use Ubuntu 12.04 as our base netboot OS, with a simple preseed setup that implants our Chef validation keys on a vanilla barebones server OS install, and our Python glue code simply calls out to Cobbler and Chef to populate node attributes (from a set of YAML files we keep about the nodes in our deployment zones), power cycle or netboot nodes, and stuff like that.
> 
> All in all, I would say the most pain we've experienced in Chef land has probably been around configuring raw network interfaces for bonded NIC setups (we've found it virtually impossible to configure networking properly without having Chef reboot the server once -- restarting networking just doesn't work reliably) and around out-of-order Chef node attribute get/set issues... something that isn't helped by the myriad different precedence levels associated with attributes for nodes, roles, environments, etc. My advice: stick to the "application cookbook"  
> strategy (sometimes called "wrapper cookbook" strategy) versus putting any logic or much of anything in role definition files.
> 
> Best of luck, and Go Bucks! 🙂  
> -jay
> 
> --  
> Kind Regards  
> Damien

---

<div class="post-metadata">

**Author:** ![Matt\_Ray\_OPSCODE](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/matt_ray_opscode/32/459_2.png) [@Matt\_Ray\_OPSCODE](https://discourse.chef.io/u/Matt_Ray_OPSCODE)\
**Post date:** [September 5, 2013, 6:22pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/12 "2013-09-05T18:22:39Z")

</div>

There is a Razor cookbook here: [http://community.opscode.com/cookbooks/razor](http://community.opscode.com/cookbooks/razor) and Fletcher Nichol gave a talk about it at ChefConf: [https://www.youtube.com/watch?v=sFQ5X8xNT4A](https://www.youtube.com/watch?v=sFQ5X8xNT4A)

Thanks,  
Matt Ray  
Cloud Integrations Product Lead :: Opscode[http://opscode.com](http://opscode.com)  
512.731.2218 :: [matt@opscode.com](mailto:matt@opscode.com)  
mattray :: GitHub[http://github.com/mattray/](http://github.com/mattray/) :: IRC :: Twitter[http://twitter.com/mattray](http://twitter.com/mattray)

* * *

From: Tim Smith [tsmith@llnw.com](mailto:tsmith@llnw.com)  
Sent: Thursday, September 05, 2013 1:15 PM  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: Baremetal Provisioning

Has anyone looked at [GitHub - puppetlabs-toy-chest/razor-server: Razor is next generation provisioning software that handles bare metal hardware and virtual server provisioning](https://github.com/puppetlabs/razor-server) with the Chef broker?

[http://www.bluebox.net/about/blog/2013/01/provisioning-with-razor-and-chef-an-interactive-demo/](http://www.bluebox.net/about/blog/2013/01/provisioning-with-razor-and-chef-an-interactive-demo/)  
[Limelight Networks][http://www.limelight.com/](http://www.limelight.com/)  
Tim Smith - Systems Engineer  
m: +1 707.738.8132

On Sep 5, 2013, at 11:08 AM, Damien Roche [dcroche@gmail.com](mailto:dcroche@gmail.com) wrote:

I've been looking into this recently and came across Crowbar [Home · crowbar/crowbar Wiki · GitHub](https://github.com/crowbar/crowbar/wiki)  
It integrates with chef to do application provisioning I believe.

On 5 September 2013 18:39, Phillip Roberts \<[proberts@mybuys.com](mailto:proberts@mybuys.com)[mailto:proberts@mybuys.com](mailto:proberts@mybuys.com)\> wrote:  
I might take a look at that and add in the RHEL stuff.

Thank you,

Phillip Roberts | Sr. Linux Administrator  
San Mateo | Ann Arbor | New York | London  
O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)[http://www.mybuys.com/](http://www.mybuys.com/)  
\<image001.png\>

From: Matt Ray [[mailto:matt@opscode.com](mailto:matt@opscode.com)[mailto:matt@opscode.com](mailto:matt@opscode.com)]  
Sent: Wednesday, September 04, 2013 17:50  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)[mailto:chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] RE: Re: RE: Re: Baremetal Provisioning

There's also the pxe\_dust cookbook which currently supports PXE installing Debian and Ubuntu with a preseed. No reason it can't support kickstarts for RHEL-flavors, just haven't gotten around to it yet.

> **[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 :: Opscode[http://opscode.com/](http://opscode.com/)  
512.731.2218 :: [matt@opscode.com](mailto:matt@opscode.com)[mailto:matt@opscode.com](mailto:matt@opscode.com)  
mattray :: GitHub[http://github.com/mattray/](http://github.com/mattray/) :: IRC :: Twitter[http://twitter.com/mattray](http://twitter.com/mattray)

* * *

From: Maxime Brugidou \<[maxime.brugidou@gmail.com](mailto:maxime.brugidou@gmail.com)[mailto:maxime.brugidou@gmail.com](mailto:maxime.brugidou@gmail.com)\>  
Sent: Wednesday, September 04, 2013 4:45 PM  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)[mailto:chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: RE: Re: Baremetal Provisioning

Hi, we have a centos and debian image built from debirf that boots a minimal ram disk OS from PXE by default. The server pops up in chef automatically. Then we have some servers running fully diskless and others installed on-disk with an "os" cookbook capable of installing some Linux distro and even Windows server.

We should open source these I guess.  
On Sep 4, 2013 6:49 PM, "Phillip Roberts" \<[proberts@mybuys.com](mailto:proberts@mybuys.com)[mailto:proberts@mybuys.com](mailto:proberts@mybuys.com)\> wrote:  
Thank you Mr. Knowles and Mr. Pipes.

Seems like I had the right idea. Just wanted to make sure there wasn't some crazy knife plugin out there that does magic that I don't know about or something.

Appreciate your responses!!

O-H!! Go Bucks!!

Thanks Again,

Phillip Roberts | Sr. Linux Administrator  
San Mateo | Ann Arbor | New York | London  
O 734.922.7014tel:734.922.7014 | C 614.423.9871tel:614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)[http://www.mybuys.com/](http://www.mybuys.com/)

-----Original Message-----  
From: Jay Pipes [[mailto:jaypipes@gmail.com](mailto:jaypipes@gmail.com)[mailto:jaypipes@gmail.com](mailto:jaypipes@gmail.com)]  
Sent: Wednesday, September 04, 2013 12:19  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)[mailto:chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Re: Baremetal Provisioning

On 09/04/2013 11:54 AM, Phillip Roberts wrote:

> Does anyone have any good links or pointers to bare metal provisioning?  
> I have done plenty of cloud based chef stuff, however, we want to now  
> start managing all of our physical servers with chef as well. I am  
> trying to replace as much of our build system as possible (ad hoc bash  
> / perl scripts) for this provisioning. So I am looking for a good way  
> to do this, I understand chef is not a PXE server, but just how far  
> back in the tool chain can I go?
> 
> My thoughts are serving up a kickstart file (since we are a RHEL /  
> Cent based shop) that builds just enough of the OS in order to hand off to chef.
> 
> Anyway, any pointers, or past presentations / links would be much  
> appreciated.
> 
> Thanks,

Hey there Phillip 🙂

We use Chef, Cobbler, and a small amount of Python glue code to provision our bare metal nodes and network devices (the ones that support modern OSs at least 😉 -- nodes that run infrastructure services, nodes that run OpenStack API and support services, and OpenStack Compute worker nodes (boxen that provide tenant-facing compute capacity). Works very well.

We use Ubuntu 12.04 as our base netboot OS, with a simple preseed setup that implants our Chef validation keys on a vanilla barebones server OS install, and our Python glue code simply calls out to Cobbler and Chef to populate node attributes (from a set of YAML files we keep about the nodes in our deployment zones), power cycle or netboot nodes, and stuff like that.

All in all, I would say the most pain we've experienced in Chef land has probably been around configuring raw network interfaces for bonded NIC setups (we've found it virtually impossible to configure networking properly without having Chef reboot the server once -- restarting networking just doesn't work reliably) and around out-of-order Chef node attribute get/set issues... something that isn't helped by the myriad different precedence levels associated with attributes for nodes, roles, environments, etc. My advice: stick to the "application cookbook"  
strategy (sometimes called "wrapper cookbook" strategy) versus putting any logic or much of anything in role definition files.

Best of luck, and Go Bucks! 🙂  
-jay

--  
Kind Regards  
Damien

---

<div class="post-metadata">

**Author:** ![Pete\_Cheslock](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/pete_cheslock/32/326_2.png) [@Pete\_Cheslock](https://discourse.chef.io/u/Pete_Cheslock)\
**Post date:** [September 5, 2013, 6:25pm UTC](https://discourse.chef.io/t/baremetal-provisioning/4510/13 "2013-09-05T18:25:34Z")

</div>

Been playing around with razor locally. Works pretty nicely. I'm not sure what the future of it is. Maybe Fletcher has more info.

-Pete

On Sep 5, 2013, at 2:22 PM, Matt Ray [matt@opscode.com](mailto:matt@opscode.com) wrote:

> There is a Razor cookbook here: [http://community.opscode.com/cookbooks/razor](http://community.opscode.com/cookbooks/razor) and Fletcher Nichol gave a talk about it at ChefConf: [https://www.youtube.com/watch?v=sFQ5X8xNT4A](https://www.youtube.com/watch?v=sFQ5X8xNT4A)
> 
> Thanks,  
> Matt Ray  
> Cloud Integrations Product Lead :: Opscode  
> 512.731.2218 :: [matt@opscode.com](mailto:matt@opscode.com)  
> mattray :: GitHub :: IRC :: Twitter
> 
> From: Tim Smith [tsmith@llnw.com](mailto:tsmith@llnw.com)  
> Sent: Thursday, September 05, 2013 1:15 PM  
> To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> Subject: [chef] Re: Baremetal Provisioning
> 
> Has anyone looked at [GitHub - puppetlabs-toy-chest/razor-server: Razor is next generation provisioning software that handles bare metal hardware and virtual server provisioning](https://github.com/puppetlabs/razor-server) with the Chef broker?
> 
> [http://www.bluebox.net/about/blog/2013/01/provisioning-with-razor-and-chef-an-interactive-demo/](http://www.bluebox.net/about/blog/2013/01/provisioning-with-razor-and-chef-an-interactive-demo/)
> 
> Tim Smith - Systems Engineer  
> m: +1 707.738.8132
> 
> On Sep 5, 2013, at 11:08 AM, Damien Roche [dcroche@gmail.com](mailto:dcroche@gmail.com) wrote:
> 
> > I've been looking into this recently and came across Crowbar [Home · crowbar/crowbar Wiki · GitHub](https://github.com/crowbar/crowbar/wiki)  
> > It integrates with chef to do application provisioning I believe.
> > 
> > On 5 September 2013 18:39, Phillip Roberts [proberts@mybuys.com](mailto:proberts@mybuys.com) wrote:
> > 
> > > I might take a look at that and add in the RHEL stuff.
> > > 
> > > Thank you,
> > > 
> > > Phillip Roberts | Sr. Linux Administrator
> > > 
> > > San Mateo | Ann Arbor | New York | London
> > > 
> > > O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)
> > > 
> > > \<image001.png\>
> > > 
> > > From: Matt Ray [[mailto:matt@opscode.com](mailto:matt@opscode.com)]  
> > > Sent: Wednesday, September 04, 2013 17:50  
> > > To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> > > Subject: [chef] RE: Re: RE: Re: Baremetal Provisioning
> > > 
> > > There's also the pxe\_dust cookbook which currently supports PXE installing Debian and Ubuntu with a preseed. No reason it can't support kickstarts for RHEL-flavors, just haven't gotten around to it yet.
> > > 
> > > [GitHub - jjasghar/pxe\_dust-cookbook: Development repository for Chef Cookbook pxe\_dust](https://github.com/opscode-cookbooks/pxe_dust)
> > > 
> > > Thanks,
> > > 
> > > Matt Ray
> > > 
> > > Cloud Integrations Product Lead :: Opscode
> > > 
> > > 512.731.2218 :: [matt@opscode.com](mailto:matt@opscode.com)
> > > 
> > > mattray :: GitHub :: IRC :: Twitter
> > > 
> > > From: Maxime Brugidou [maxime.brugidou@gmail.com](mailto:maxime.brugidou@gmail.com)  
> > > Sent: Wednesday, September 04, 2013 4:45 PM  
> > > To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> > > Subject: [chef] Re: RE: Re: Baremetal Provisioning
> > > 
> > > Hi, we have a centos and debian image built from debirf that boots a minimal ram disk OS from PXE by default. The server pops up in chef automatically. Then we have some servers running fully diskless and others installed on-disk with an "os" cookbook capable of installing some Linux distro and even Windows server.
> > > 
> > > We should open source these I guess.
> > > 
> > > On Sep 4, 2013 6:49 PM, "Phillip Roberts" [proberts@mybuys.com](mailto:proberts@mybuys.com) wrote:
> > > 
> > > Thank you Mr. Knowles and Mr. Pipes.
> > > 
> > > Seems like I had the right idea. Just wanted to make sure there wasn't some crazy knife plugin out there that does magic that I don't know about or something.
> > > 
> > > Appreciate your responses!!
> > > 
> > > O-H!! Go Bucks!!
> > > 
> > > Thanks Again,
> > > 
> > > Phillip Roberts | Sr. Linux Administrator  
> > > San Mateo | Ann Arbor | New York | London  
> > > O 734.922.7014 | C 614.423.9871 | [www.MyBuys.com](http://www.MyBuys.com)
> > > 
> > > -----Original Message-----  
> > > From: Jay Pipes [[mailto:jaypipes@gmail.com](mailto:jaypipes@gmail.com)]  
> > > Sent: Wednesday, September 04, 2013 12:19  
> > > To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
> > > Subject: [chef] Re: Baremetal Provisioning
> > > 
> > > On 09/04/2013 11:54 AM, Phillip Roberts wrote:
> > > 
> > > > Does anyone have any good links or pointers to bare metal provisioning?  
> > > > I have done plenty of cloud based chef stuff, however, we want to now  
> > > > start managing all of our physical servers with chef as well. I am  
> > > > trying to replace as much of our build system as possible (ad hoc bash  
> > > > / perl scripts) for this provisioning. So I am looking for a good way  
> > > > to do this, I understand chef is not a PXE server, but just how far  
> > > > back in the tool chain can I go?
> > > > 
> > > > My thoughts are serving up a kickstart file (since we are a RHEL /  
> > > > Cent based shop) that builds just enough of the OS in order to hand off to chef.
> > > > 
> > > > Anyway, any pointers, or past presentations / links would be much  
> > > > appreciated.
> > > > 
> > > > Thanks,
> > > 
> > > Hey there Phillip 🙂
> > > 
> > > We use Chef, Cobbler, and a small amount of Python glue code to provision our bare metal nodes and network devices (the ones that support modern OSs at least 😉 -- nodes that run infrastructure services, nodes that run OpenStack API and support services, and OpenStack Compute worker nodes (boxen that provide tenant-facing compute capacity). Works very well.
> > > 
> > > We use Ubuntu 12.04 as our base netboot OS, with a simple preseed setup that implants our Chef validation keys on a vanilla barebones server OS install, and our Python glue code simply calls out to Cobbler and Chef to populate node attributes (from a set of YAML files we keep about the nodes in our deployment zones), power cycle or netboot nodes, and stuff like that.
> > > 
> > > All in all, I would say the most pain we've experienced in Chef land has probably been around configuring raw network interfaces for bonded NIC setups (we've found it virtually impossible to configure networking properly without having Chef reboot the server once -- restarting networking just doesn't work reliably) and around out-of-order Chef node attribute get/set issues... something that isn't helped by the myriad different precedence levels associated with attributes for nodes, roles, environments, etc. My advice: stick to the "application cookbook"  
> > > strategy (sometimes called "wrapper cookbook" strategy) versus putting any logic or much of anything in role definition files.
> > > 
> > > Best of luck, and Go Bucks! 🙂  
> > > -jay
> > 
> > --  
> > Kind Regards  
> > Damien
