[chef] Re: Re: Re: RE: Augeas support


Chronological Thread 
  • From: Joshua Timberman < >
  • To: "< >" < >
  • Subject: [chef] Re: Re: Re: RE: Augeas support
  • Date: Mon, 18 Feb 2013 21:36:02 +0000
  • Accept-language: en-US

Ohai,

A couple things...

On Feb 17, 2013, at 2:43 AM, Sam Darwin 
< >
 wrote:

> This is the view which I have also.   I have also re-written the apache
> cookbook.     It appears there are two valid strategies for managing 
> servers.  
> The current opcode cookbooks have chosen one of the strategies, and left the
> other one as an exercise for the reader.    For me, I would like to see 
> recipes
> which keep things as close as possible to the native vendor packages, and 
> which
> change as little as possible.   There are dependencies: let's say that 
> nagios
> depends on apache or something.  Now nagios can't run properly on redhat
> either, without being converted to debian nagios.   It is a cascading 
> series of
> dependencies.   I can't just run plain vanilla apache and plain ordinary
> nagios on redhat??    Not with the current site cookbook.      A customized
> cookbook is needed.    

By all means, don't use the community cookbook if it doesn't fit your 
preference, use case, supported platforms or standards.

However, please do understand that cookbook authors that build cross platform 
cookbooks have to make a choice.

1. Adhere to the policies and practices for specific platforms they support.
2. Pick a single policy/practice pattern and apply that to all the platforms.

The Opscode cookbooks generally follow #2. We try to abstract specific naming 
conventions and filesystem locations with attributes.

> Shouldn't a recipe on redhat, take advantage of the redhat packages as they 
> are
> and make the smallest, fewest, and simplest changes to get things up and
> running?      What is happening currently is that in many cookbook cases the
> file locations are being moved around to different places, startup scripts 
> are
> modified, configs are modified, etc etc so that things don't look like a
> default redhat package anymore.      


It shouldn't necessarily do the "Red Hat" things if it makes it harder for 
community-shared cookbooks to be used on multiple platforms. Sometimes, it 
can make sense to have a Red Hat specific recipe for something. But when a 
cookbook provides reusable primitives like the apache cookbook's definitions.

Using Apache HTTPD as an example is a great exploration into the insanity of 
managing something that is at it's core relatively simple to install and run. 
At the end of the day, you have:

1. A package of files that get extracted on disk.
2. A configuration file.
3. A daemonized service that runs.

Of course, if you look across the general ecosystem, you see different 
package approaches. There are definitely different configuration approaches. 
And yes, there are even different service approaches. If you run a 
multi-platform environment, you have to know all of these in order to 
maintain Apache HTTPD. Most likely though, you'll have adapted a single 
platform's approach, usually whichever one is the most common in your 
environment.

That's what we did when we originally wrote the Opscode apache2 cookbook, as 
we found the sites-{available,enabled} pattern to be really simple to use 
under configuration management.

-- 
Joshua Timberman
Technical Community Manager, Opscode, Inc
IRC, Skype, Twitter, Github: jtimberman





Archive powered by MHonArc 2.6.16.

§