[chef] Re: Re: Installing large numbers of packages


Chronological Thread 
  • From: Matt Palmer < >
  • To:
  • Subject: [chef] Re: Re: Installing large numbers of packages
  • Date: Thu, 1 Sep 2011 10:08:47 +1000

On Thu, Sep 1, 2011 at 10:00 AM, Brad Knowles 
< >
 wrote:
> On Aug 31, 2011, at 6:53 PM, Matt Palmer wrote:
>> I'm getting my first chef recipe in order, a simple one to prep a
>> workstation -- which is mostly "install this giant list of packages".
>
> That's going to be one of the first real steps that I'm going to be doing 
> for our infrastructure overhaul.

I suspect that'd be most people's first target... no production risk,
and usually pretty well understood.

>> Which doesn't do anything for my "but you don't need to learn *much*
>> Ruby" claims to the rest of the team, and still isn't as compact and
>> clean as it could be.
>>
>> Am I missing something obvious, or is one of the above options really
>> the recommended way to create big lists of resources?
>
> I haven't actually done any real Chef yet, but my understanding was that 
> you wanted to put as much information as possible in databags, and then 
> have your rules reference the databags.  So, I would expect the code from 
> your first example would not be that different from the version that pulls 
> the list of packages out of the appropriate databag.

Well, chef-solo doesn't do databags, and chef's server looks like such
a hairball I'm going to avoid it for as long as I possibly can.
There's also resilience issues, a strong aversion to centralisation,
and too many painful memories of Puppet scaling nightmares to get
over.

Even without that, though, I'm having trouble working out how it's
better to have a list of packages in one place, and a resource
specification that installs those packages somewhere else.  I can
almost convince myself that putting attributes in an external JSON
file makes sense for roles (although I think it's codifying the same
mistake that practically everyone makes using Puppet, where you define
a pile of global variables and cross your fingers that everything
works, rather than having locally-passed parameters that define how
you want to use something Here and Now), but making a list somewhere
external just so I can avoid having to walk an array is insane.  My
recipe says "this is how you configure a workstation", and the list of
packages you have to install in order to do that should be in that
recipe.

- Matt



Archive powered by MHonArc 2.6.16.

§