[chef] Re: Re: Re: Re: Re: More on Cookbook Design Patterns


Chronological Thread 
  • From: Jason Perry < >
  • To: Lamont Granquist < >
  • Cc: Tom Duffield < >, " " < >
  • Subject: [chef] Re: Re: Re: Re: Re: More on Cookbook Design Patterns
  • Date: Thu, 3 Apr 2014 16:38:12 -0400

What I'm also following is that it's probably not a good idea to combine the 
application cookbook with a role cookbook.  Currently our application 
cookbooks have replaced the roles runlist setting where previously the role 
would have a run list that was something like 
"recipe[acme_java],recipe[tomcat],recipe[groovy],recipe[myapp]" with the role 
being called "myapp".  Now the myapp default recipe has a bunch of 
include_recipe calls and the role now just has "recipe[myapp]".  When the 
node is bootstrapped the run list ends up looking like so 
"role[datacenterA],role[base],role[myapp]".  In this model I would have to 
move whatever the base role is doing down to the myapp::default recipe level 
or parts of it for testing.  I think this is probably the most tricky part of 
 it all and how to avoid too many dependencies with still being able to test 
the cookbooks purpose.

  -- Jay

> On Apr 3, 2014, at 3:17 PM, Lamont Granquist 
> < >
>  wrote:
> 
>> On Thu Apr  3 11:48:08 2014, Jay Perry wrote:
>> Tom/Lamont,
>> Both of your recommendations are very helpful which I think will help
>> give us a baseline of where we want our cookbooks to go.  We have our
>> work cut out for us but I think it's necessary for us to get to be
>> more flexible with the size of our organization.
>
>> @Lamont - Just to clarify when you state "your base role" I think you
>> mean "base" cookbook right?  I picture all my application cookbooks
>> including the "base" cookbook using 'include_recipe' considering when
>> I'm doing testing with test kitchen I don't have to worry about using
>> a role and just calling the recipe will include/configure the
>> necessary pieces (dns, ldap, yum, apt, etc).  The application cookbook
>> would have a depends on the base cookbook via the metadata.rb.
> 
> "base role" == "base role cookbook" if you're using role cookbooks.
> 
> something to think about is that its kind of nice to be able to use TK on 
> an application cookbook and only pull in the dependencies that are actually 
> necessary to run and test the application.  it isn't necessary for my 
> personal user account to be on the server to run the app, so why pull all 
> that in?  also you don't need lsof or tcpdump or any other utilities like 
> that installed as well.  not having the base role cookbook as a dep of your 
> app cookbook means you won't have to grind through the whole base role in 
> order to test.
> 



Archive powered by MHonArc 2.6.16.

§