Cookbook workflows


#1

Hi all,
I just remembered adding this wiki page a little while back, but not padding it out yet, http://wiki.opscode.com/display/chef/Cookbook+Workflows. I thought it would be a good place to list all of the different cookbook workflows, maybe use cases, pros/cons. Am I duplicating something that already exists in a place that glaringly obvious to everyone but me? :confused: If not, would love the addition of other workflows I haven’t listed yet. I’m hoping to get a chance to pad out the others soon.


Anthony Goddard
Woods Hole Marine Biological Laboratory


#2

This looks really great. The more ‘best practices’ documentation out there
the better. I’d love to know of any more out there. Thanks Anthony!

Kevin Harvey
Web Developer
kcharvey@gmail.com

On Tue, Jan 31, 2012 at 9:08 AM, Anthony Goddard agoddard@mbl.edu wrote:

Hi all,
I just remembered adding this wiki page a little while back, but not
padding it out yet,
http://wiki.opscode.com/display/chef/Cookbook+Workflows. I thought it
would be a good place to list all of the different cookbook workflows,
maybe use cases, pros/cons. Am I duplicating something that already exists
in a place that glaringly obvious to everyone but me? :confused: If not, would love
the addition of other workflows I haven’t listed yet. I’m hoping to get a
chance to pad out the others soon.


Anthony Goddard
Woods Hole Marine Biological Laboratory


#3

Great idea! I would also be interested in collecting best practices,
especially concerning the cookbook development workflows. So far I did not
find any valuable information except on this mailing list :slight_smile:

We had some discussions about the topic recently on this list:
http://lists.opscode.com/sympa/arc/chef/2012-01/msg00046.html
http://lists.opscode.com/sympa/arc/chef/2012-01/msg00090.html

Don’t know if that fits for every situation, but currently I would consider
this as a “best practice”:

  • cookbooks should be versioned independently, thus they need their own git
    repositories.
  • for pulling together a sound baseline of independently versioned
    cookbooks you can use either git submodules or librarian.
  • a concept of explicit SNAPSHOT versions (as in maven) would be useful
    during development. As there are no explicit SNAPSHOT versions, you can
    still agree on a convention, e.g. each X.Y.Z version with an odd Z number
    is considered a “SNAPSHOT”

Cheers,
Torben

On Tue, Jan 31, 2012 at 3:23 PM, Kevin Harvey kcharvey@gmail.com wrote:

This looks really great. The more ‘best practices’ documentation out there
the better. I’d love to know of any more out there. Thanks Anthony!

Kevin Harvey
Web Developer
kcharvey@gmail.com

On Tue, Jan 31, 2012 at 9:08 AM, Anthony Goddard agoddard@mbl.edu wrote:

Hi all,
I just remembered adding this wiki page a little while back, but not
padding it out yet,
http://wiki.opscode.com/display/chef/Cookbook+Workflows. I thought it
would be a good place to list all of the different cookbook workflows,
maybe use cases, pros/cons. Am I duplicating something that already exists
in a place that glaringly obvious to everyone but me? :confused: If not, would love
the addition of other workflows I haven’t listed yet. I’m hoping to get a
chance to pad out the others soon.


Anthony Goddard
Woods Hole Marine Biological Laboratory


#4

On Jan 31, 2012, at 10:51 AM, Torben Knerr wrote:

Great idea! I would also be interested in collecting best practices, especially concerning the cookbook development workflows. So far I did not find any valuable information except on this mailing list :slight_smile:

We had some discussions about the topic recently on this list:
http://lists.opscode.com/sympa/arc/chef/2012-01/msg00046.html
http://lists.opscode.com/sympa/arc/chef/2012-01/msg00090.html

Don’t forget about some of the knife plugins that are oriented around cookbook workflows, like “knife-spork” (from the folks at Etsy) and others found at http://wiki.opscode.com/display/chef/Community+Plugins.


Brad Knowles bknowles@ihiji.com
SAGE Level IV, Chef Level 0.0.1


#5

Hi,

On Wed, Feb 1, 2012 at 3:51 AM, Torben Knerr ukio@gmx.de wrote:

  • for pulling together a sound baseline of independently versioned cookbooks
    you can use either git submodules or librarian.

Another alternative that is working well for us is to use braid [1] to
manage external repositories. Braid describes itself as “braid is a
simple tool to help track git or svn repositories inside a git
repository.”

The really nice thing that it has over other alternatives is that you
can easily push changes back from the local repo back to the source
repo. An example usage is

add remote repo

braid add git@github.com:realityforge/chef-glassfish.git cookbooks/glassfish

pull changes from remote repo

braid update cookbooks/glassfish

vi cookbooks/glassfish/README.rdoc

diff changes of local repo against remote repo

braid diff cookbooks/glassfish

push changes of local repo back to remote repo

braid push cookbooks/glassfish

So far this has worked better for us than anything else.

[1] https://github.com/evilchelu/braid/wiki


Cheers,

Peter Donald