Chef Deployment Strategies


#1

Chefs,

I’m curious about some common strategies for deploying entire environments.

I know of spiceweasle, which can generate knife commands to bootstrap multiple nodes. That sounds simple enough to create multiple yaml files for various data centers/environments.

What are other possibilities? Custom bash scripts? Other knife plugins?

Curtis


#2

Take a look at:

Brian Scott
Email: b@bscott.me
Web: http://www.bscott.me
LinkedIn: http://www.linkedin.com/in/brianlscott
Twitter: @brainscott

On Thu, Feb 27, 2014 at 6:45 AM, Stewart, Curtis cstewart@momentumsi.comwrote:

Chefs,

I’m curious about some common strategies for deploying entire
environments.

I know of spiceweasle, which can generate knife commands to bootstrap
multiple nodes. That sounds simple enough to create multiple yaml files
for various data centers/environments.

What are other possibilities? Custom bash scripts? Other knife plugins?

Curtis


#3

If you have a static set of nodes in your environments (i.e. no autoscaling
etc) you can use Vagrant for defining the VMs for your entire environment
or “infrastructure”.

In addition to the cookbook repos I tend to have one git repo per
"infrastructure" which contains a Vagrantfile with the VM definitions, the
databags, environments, etc…

An example is sketched here:

Cheers, Torben

On Thu, Feb 27, 2014 at 3:45 PM, Stewart, Curtis cstewart@momentumsi.comwrote:

Chefs,

I’m curious about some common strategies for deploying entire
environments.

I know of spiceweasle, which can generate knife commands to bootstrap
multiple nodes. That sounds simple enough to create multiple yaml files
for various data centers/environments.

What are other possibilities? Custom bash scripts? Other knife plugins?

Curtis


#4

On Feb 27, 2014, at 6:45 AM, “Stewart, Curtis” cstewart@momentumsi.com wrote:

Chefs,

I’m curious about some common strategies for deploying entire environments.

I know of spiceweasle, which can generate knife commands to bootstrap multiple nodes. That sounds simple enough to create multiple yaml files for various data centers/environments.

What are other possibilities? Custom bash scripts? Other knife plugins?

We (Balanced) have settled on CloudFormation for this. You can check out our (WIP) configs at https://github.com/balanced/balanced-infra.

Some other options:

  1. chef-metal
  2. RightScale
  3. Mezos+Aurora
  4. CoreOS+Fleet (mentioned for completeness, this is super-pre-alpha)
  5. Asgard (only handles some parts)
  6. Heat (OpenStack clone of CloudFormation)

Overall the world of resource schedulers is not that great right now. Hope that helps.

–Noah


#5

It’s hard to answer without knowing any specifics about your env. we run the gamut of envs here from bare metal to aws to ESX

we’ve had success using cobbler to pxe boot and bootstrap nodes. there are tons of knife plugins in various states of maturity for all these infrastructure types.

I’ve yet to find a ‘one size fits all’ solution.

Sent from my iPhone

On Feb 27, 2014, at 9:45 AM, “Stewart, Curtis” cstewart@momentumsi.com wrote:

Chefs,

I’m curious about some common strategies for deploying entire environments.

I know of spiceweasle, which can generate knife commands to bootstrap multiple nodes. That sounds simple enough to create multiple yaml files for various data centers/environments.

What are other possibilities? Custom bash scripts? Other knife plugins?

Curtis


#6

I second motherbrain. We have just started implementing to handle all our
deployments. We had looked at metal first, but motherbrain provides the
control on the cookbook level that we were looking for.

On Thu, Feb 27, 2014 at 3:42 PM, Gregory Patmore
gregorypatmore@gmail.comwrote:

It’s hard to answer without knowing any specifics about your env. we run
the gamut of envs here from bare metal to aws to ESX

we’ve had success using cobbler to pxe boot and bootstrap nodes. there are
tons of knife plugins in various states of maturity for all these
infrastructure types.

I’ve yet to find a ‘one size fits all’ solution.

Sent from my iPhone

On Feb 27, 2014, at 9:45 AM, “Stewart, Curtis” cstewart@momentumsi.com
wrote:

Chefs,

I’m curious about some common strategies for deploying entire
environments.

I know of spiceweasle, which can generate knife commands to bootstrap
multiple nodes. That sounds simple enough to create multiple yaml files
for various data centers/environments.

What are other possibilities? Custom bash scripts? Other knife plugins?

Curtis


#7

Also new on the scene: https://github.com/opscode/chef-metal

On Thu, Feb 27, 2014 at 1:46 PM, Noah Kantrowitz noah@coderanger.netwrote:

On Feb 27, 2014, at 6:45 AM, “Stewart, Curtis” cstewart@momentumsi.com
wrote:

Chefs,

I’m curious about some common strategies for deploying entire
environments.

I know of spiceweasle, which can generate knife commands to bootstrap
multiple nodes. That sounds simple enough to create multiple yaml files
for various data centers/environments.

What are other possibilities? Custom bash scripts? Other knife plugins?

We (Balanced) have settled on CloudFormation for this. You can check out
our ( WIP) configs at https://github.com/balanced/balanced-infra.

Some other options:

  1. chef-metal
  2. RightScale
  3. Mezos+Aurora
  4. CoreOS+Fleet (mentioned for completeness, this is super-pre-alpha)
  5. Asgard (only handles some parts)
  6. Heat (OpenStack clone of CloudFormation)

Overall the world of resource schedulers is not that great right now. Hope
that helps.

–Noah