[chef] Re: RE: Re: RE: Re: Need cfengine like copy to achieve Self Healing


Chronological Thread 
  • From: Noah Gibbs < >
  • To:
  • Subject: [chef] Re: RE: Re: RE: Re: Need cfengine like copy to achieve Self Healing
  • Date: Sat, 5 Feb 2011 13:58:26 -0800 (PST)
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=gMlDEOHglCFER6kl2p0d7a9bYrxO4qMQ9SmrNXlIdPuwnNwWqidJVZRfZps696zeFvToDQCutXqNkNif5T6iSgfJq0NKjz/Fb/DlV1o5DIRnZy87/B1io6XIMiBG/TehasA9zGyFNVobW0tqpqajzlkYFcP3zDeaM1USl/8aGiE=;

  RSync might also do this, so you could run that from Chef.  You'd need a 
network connection at the time, of course.


--- On Sat, 2/5/11, Steve Caissie 
< >
 wrote:

> From: Steve Caissie 
> < >
> Subject: [chef] RE: Re: RE: Re: Need cfengine like copy to achieve Self 
> Healing
> To: 
> 
> Date: Saturday, February 5, 2011, 1:44 PM
> Sorry, I'll try to provide a clear
> example:
> 
> I've got a 3rd party monitoring application that requires
> me to deploy the agents and plugins to all of the systems on
> my network. Here's the cfengine syntax to do that:
> 
>     monitoring_agent_class::
>         /opt/agent-software
>            
> dest=/opt/agent-software
>             owner=root
>             group=root
>             recurse=inf
>             purge=true
>            
> server=monitoring_server
>            
> define=restart_agent
>         /var/lib/agent-plugins
>            
> dest=/opt/agent-plugins
>             owner=root
>             group=root
>             recurse=inf
>             purge=true
>            
> server=monitoring_server
>            
> define=restart_agent
> 
> This tells each system on the network to copy the
> monitoring agent and plugins from "monitoring_server". There
> are multiple levels of directories under
> /opt/agent-software. It is "self healing", because any
> missing or changed files on the destination servers are
> fixed next time cfengine runs. Only the files that need to
> change are updated. Cfengine guarantees that the source and
> destination directories are an exact match.  I can make
> a quick change to an agent-plugin and next time cfengine
> runs, that change is installed on each server.
> 
> I think these are my choices if I want to do this in Chef:
> 
> 1. remote_directory resource - It doesn't preserve file
> permissions. If I set files_mode=755 on the files in
> /opt/agent-software, I'd have execute permissions on
> configuration files that should be read-only.
> 
> 2. tar the directories and use the cookbook_file resource -
> If I want to be 100% sure that the destination isn't
> corrupt, I'd have to untar the tar file on every chef run
> and restart the agent. With the cfengine configuration
> above, the agent would only be restarted if an individual
> file gets updated.
> 
> 3. Create an rpm for agent-software and another for
> agent-plugins - To make this "self healing", chef would need
> a "verify" action in the package resource. I'd use the
> "verify" action to verify that the target system's install
> matches the contents of the rpm.  If it doesn't match,
> I'd install the rpm with a --force option.  I also
> think creating and maintaining an rpm is a lot more complex
> that the cfengine setup above.
> 
> Are there any other Chef options for doing this?
> 
> Steve
> 
> -----Original Message-----
> From: 
> 
> [mailto:
>  On
> Behalf Of Michael Hale
> Sent: Saturday, February 05, 2011 2:12 PM
> To: chef
> Subject: [chef] Re: RE: Re: Need cfengine like copy to
> achieve Self Healing
> 
> I'm confused about how recursively copying a directory and
> preserving
> permissions provides "self healing". Can you elaborate on
> how that
> feature of cfengine provides self healing in your
> environment? It is
> possible there is a more idiomatic way to accomplish what
> you are
> after in chef.
> 
> On Sat, Feb 5, 2011 at 2:06 PM, Steve Caissie 
> < >
> wrote:
> > I can apply the same mode to all of the files in a
> directory with remote_directory, but I don't see any way to
> preserve the source directory's permissions.
> >
> > Ideally, I'd like to be able to copy from a local or
> remote source and preserve permissions. Cfengine offers this
> with the copy action.
> >
> > Steve
> >
> >
> > -----Original Message-----
> > From: 
> > 
> [mailto:
> On Behalf Of Daniel DeLeo
> > Sent: Saturday, February 05, 2011 1:24 PM
> > To: 
> > 
> > Subject: [chef] Re: Need cfengine like copy to achieve
> Self Healing
> >
> > On Sat, Feb 5, 2011 at 9:59 AM, Steve Caissie 
> > < >
> wrote:
> >> I'm trying to make my systems self healing with
> chef. I've been doing this
> >> for many years with cfengine. I think chef needs a
> cfengine like copy
> >> resource to make it easier to maintain a self
> healing environment.
> >>
> >>
> >>
> >> In cfengine 2, the copy action has a recursive
> option that lets you preserve
> >> permissions and create classes if files were
> changed.  There doesn't appear
> >> to be any resource to do this in chef.  You could
> use a tar file to preserve
> >> permissions, but then the copy isn't idempotent. 
> There would be no easy way
> >> to tell if files on the destination system have
> changed.  You could put the
> >> files into a package like an rpm, but those
> packages are more difficult to
> >> maintain.  I have a lot of directories that I
> need to copy and maintain.  I
> >> don't want to create an rpm for every directory.
> >>
> >>
> >>
> >> It would also be nice if chef didn't have to
> import all of the files you
> >> want to copy.  I'd like to be able to change a
> directory tree without having
> >> to tell Chef about the change.
> >>
> >>
> >>
> >> To get around this limitation, I'm going to try to
> create an "rsync" LWRP in
> >> chef.
> >
> > Can you explain a bit more about how what you're
> looking for differs
> > from the existing remote directory[1] resource? Do you
> just want a
> > remote directory that uses a local (i.e., already
> exists elsewhere on
> > the filesystem) source? Do you need permissions that
> are more varied
> > than remote directory provides?
> >
> >
> >>
> >> Steve Caissie
> >> Director of Operations
> >>
> >> Vlingo
> >>
> >>
> >
> > Thanks,
> > Dan DeLeo
> >
> 






Archive powered by MHonArc 2.6.16.

§