On Oct 20, 11:59 pm, Luke Kanies <[email protected]> wrote:
> On Oct 19, 2009, at 7:56 AM, LdvT wrote:
>
>
>
> > I wouldn't mind having failure detection.
>
> > Say somehow a bad copy of a .conf file is distributed; and the service
> > fails to start.
> > If that can be detected and used as a condition, puppet could than
> > call up another manifest to drop in a default/backup copy of the .conf
> > file and restart the service almost immediately.
> > Toss in a notify function on that manifest, and it would be a very
> > handy feature for making changes on diverse production systems.
>
> My goal has always been to support this, but I've never quite gotten
> there, and it's never seemed to matter enough to people that.
>
> At the least, you need every resource to be reversible (including
> execs), and you need a more consistent internal event log than we
> currently maintain, but I think ordering issues become really
> complicated too -- if you installed a package then started a service,
> you have to do them in the inverse order, but if you modified a file
> and restarted the service then you have to do them in the same order.
>
> Basically, you need a much richer language for talking about
> dependencies, and I think that's the real complexity.
>
> --
> Risk! Risk anything! Care no more for the opinions of others, for those
> voices. Do the hardest thing on earth for you. Act for yourself. Face
> the truth. -- Katherine Mansfield
> ---------------------------------------------------------------------
> Luke Kanies |http://reductivelabs.com|http://madstop.com
As nice as it might be to have completely reversible resources, I
don't think we need quite that much.
Instead, I would like something like the notify parameter, but
specifically triggered on failure only.
i.e.:
exec {"generic install"
command => "mkdir -p /opt/program ; tar -xzf /tmp/program-
$kernel.tar.gz -C /opt/program",
creates => "/opt/program",
onfail => Exec["opps"],
}
exec => { "opps":
command => "rm -rf /opt/program",
refreshonly => true,
}
Basically, just making it easy to create and call custom undo scripts
or functions.
Even though the creates paramater is bad, the exec would try again
next run because /opt/program gets removed on failure.
And than "opps" will only run after a failure of "generic install".
With the way notify works, an undo could start triggering other
resources as well; although the potential undo-redo cycle might be
problematic.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---