Baremetal Provisioning


#1

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.comhttp://www.mybuys.com/
[cid:image001.png@01CDDDEC.1264D1F0]


#2

We use 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.comhttp://www.mybuys.com/
[cid:image001.png@01CDDDEC.1264D1F0]


#3

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:

Basically we’re using all the the razor stuff that Fletcher wrote while he
worked here :slight_smile:

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:

I’m realizing there is a blog post due on this subject and our workflow :stuck_out_tongue:

Regards,

Sam

On Fri, Sep 6, 2013 at 8:23 AM, Chris Burroughs
chris.burroughs@gmail.comwrote:

We use 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.mybuys.com/

[cid:image001.png@01CDDDEC.**1264D1F0]


Sam Cooper
sam@chgworks.com
206-660-5043


#4

On Sep 4, 2013, at 10:54 AM, Phillip Roberts 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
LinkedIn Profile: http://tinyurl.com/y8kpxu


#5

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 :slight_smile:

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 :wink: – 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! :slight_smile:
-jay


#6

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

-----Original Message-----
From: Jay Pipes [mailto:jaypipes@gmail.com]
Sent: Wednesday, September 04, 2013 12:19
To: 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 :slight_smile:

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 :wink: – 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! :slight_smile:
-jay


#7

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 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

-----Original Message-----
From: Jay Pipes [mailto:jaypipes@gmail.com]
Sent: Wednesday, September 04, 2013 12:19
To: 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 :slight_smile:

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 :wink: – 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! :slight_smile:
-jay


#8

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.

Thanks,
Matt Ray
Cloud Integrations Product Lead :: Opscodehttp://opscode.com
512.731.2218 :: matt@opscode.com
mattray :: GitHubhttp://github.com/mattray/ :: IRC :: Twitterhttp://twitter.com/mattray


From: Maxime Brugidou maxime.brugidou@gmail.com
Sent: Wednesday, September 04, 2013 4:45 PM
To: 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.commailto: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.comhttp://www.MyBuys.com

-----Original Message-----
From: Jay Pipes [mailto:jaypipes@gmail.commailto:jaypipes@gmail.com]
Sent: Wednesday, September 04, 2013 12:19
To: chef@lists.opscode.commailto: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 :slight_smile:

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 :wink: – 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! :slight_smile:
-jay


#9

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.comhttp://www.mybuys.com/
[cid:image001.png@01CDDDEC.1264D1F0]

From: Matt Ray [mailto:matt@opscode.com]
Sent: Wednesday, September 04, 2013 17:50
To: 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.

Thanks,
Matt Ray
Cloud Integrations Product Lead :: Opscodehttp://opscode.com
512.731.2218 :: matt@opscode.commailto:matt@opscode.com
mattray :: GitHubhttp://github.com/mattray/ :: IRC :: Twitterhttp://twitter.com/mattray


From: Maxime Brugidou <maxime.brugidou@gmail.commailto:maxime.brugidou@gmail.com>
Sent: Wednesday, September 04, 2013 4:45 PM
To: chef@lists.opscode.commailto: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.commailto: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.comhttp://www.MyBuys.com

-----Original Message-----
From: Jay Pipes [mailto:jaypipes@gmail.commailto:jaypipes@gmail.com]
Sent: Wednesday, September 04, 2013 12:19
To: chef@lists.opscode.commailto: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 :slight_smile:

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 :wink: – 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! :slight_smile:
-jay


#10

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


It integrates with chef to do application provisioning I believe.

On 5 September 2013 18:39, Phillip Roberts 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.comhttp://www.mybuys.com/


[image: cid:image001.png@01CDDDEC.1264D1F0]****


From: Matt Ray [mailto:matt@opscode.com]
Sent: Wednesday, September 04, 2013 17:50
To: 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. ****

https://github.com/opscode-cookbooks/pxe_dust****


Thanks,****

Matt Ray****

Cloud Integrations Product Lead :: Opscode http://opscode.com****

512.731.2218 :: matt@opscode.com****

mattray :: GitHub http://github.com/mattray/ :: IRC :: Twitterhttp://twitter.com/mattray




From: Maxime Brugidou maxime.brugidou@gmail.com
Sent: Wednesday, September 04, 2013 4:45 PM
To: 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 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

-----Original Message-----
From: Jay Pipes [mailto:jaypipes@gmail.com]
Sent: Wednesday, September 04, 2013 12:19
To: 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 :slight_smile:

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 :wink: – 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! :slight_smile:
-jay****


Kind Regards
Damien


#11

Has anyone looked at 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/

Tim Smith - Systems Engineer
m: +1 707.738.8132

On Sep 5, 2013, at 11:08 AM, Damien Roche dcroche@gmail.com wrote:

I’ve been looking into this recently and came across Crowbar 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 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

<image001.png>

From: Matt Ray [mailto:matt@opscode.com]
Sent: Wednesday, September 04, 2013 17:50
To: 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.

https://github.com/opscode-cookbooks/pxe_dust

Thanks,

Matt Ray

Cloud Integrations Product Lead :: Opscode

512.731.2218 :: matt@opscode.com

mattray :: GitHub :: IRC :: Twitter

From: Maxime Brugidou maxime.brugidou@gmail.com
Sent: Wednesday, September 04, 2013 4:45 PM
To: 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 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

-----Original Message-----
From: Jay Pipes [mailto:jaypipes@gmail.com]
Sent: Wednesday, September 04, 2013 12:19
To: 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 :slight_smile:

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 :wink: – 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! :slight_smile:
-jay


Kind Regards
Damien


#12

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

Thanks,
Matt Ray
Cloud Integrations Product Lead :: Opscodehttp://opscode.com
512.731.2218 :: matt@opscode.com
mattray :: GitHubhttp://github.com/mattray/ :: IRC :: Twitterhttp://twitter.com/mattray


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

Has anyone looked at 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/
[Limelight Networks]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 wrote:

I’ve been looking into this recently and came across Crowbar 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.commailto: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.comhttp://www.mybuys.com/
<image001.png>

From: Matt Ray [mailto:matt@opscode.commailto:matt@opscode.com]
Sent: Wednesday, September 04, 2013 17:50
To: chef@lists.opscode.commailto: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.

Thanks,
Matt Ray
Cloud Integrations Product Lead :: Opscodehttp://opscode.com/
512.731.2218 :: matt@opscode.commailto:matt@opscode.com
mattray :: GitHubhttp://github.com/mattray/ :: IRC :: Twitterhttp://twitter.com/mattray


From: Maxime Brugidou <maxime.brugidou@gmail.commailto:maxime.brugidou@gmail.com>
Sent: Wednesday, September 04, 2013 4:45 PM
To: chef@lists.opscode.commailto: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.commailto: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.comhttp://www.mybuys.com/

-----Original Message-----
From: Jay Pipes [mailto:jaypipes@gmail.commailto:jaypipes@gmail.com]
Sent: Wednesday, September 04, 2013 12:19
To: chef@lists.opscode.commailto: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 :slight_smile:

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 :wink: – 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! :slight_smile:
-jay


Kind Regards
Damien


#13

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 wrote:

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

Thanks,
Matt Ray
Cloud Integrations Product Lead :: Opscode
512.731.2218 :: matt@opscode.com
mattray :: GitHub :: IRC :: Twitter

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

Has anyone looked at 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/

Tim Smith - Systems Engineer
m: +1 707.738.8132

On Sep 5, 2013, at 11:08 AM, Damien Roche dcroche@gmail.com wrote:

I’ve been looking into this recently and came across Crowbar 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 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

<image001.png>

From: Matt Ray [mailto:matt@opscode.com]
Sent: Wednesday, September 04, 2013 17:50
To: 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.

https://github.com/opscode-cookbooks/pxe_dust

Thanks,

Matt Ray

Cloud Integrations Product Lead :: Opscode

512.731.2218 :: matt@opscode.com

mattray :: GitHub :: IRC :: Twitter

From: Maxime Brugidou maxime.brugidou@gmail.com
Sent: Wednesday, September 04, 2013 4:45 PM
To: 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 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

-----Original Message-----
From: Jay Pipes [mailto:jaypipes@gmail.com]
Sent: Wednesday, September 04, 2013 12:19
To: 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 :slight_smile:

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 :wink: – 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! :slight_smile:
-jay


Kind Regards
Damien