Oliver Schad wrote:
Hi,
I know puppet allow me to describe the target state of my system and
changes the state automatically to that description.
In some situations you want to describe a process how things should go
maybe dependent on other systems where the order is important and maybe
you need some checks after doing a step and maybe has to wait for other
systems. Think about a process like a network wide transition, where one
system do something, wait for some events from other systems and continues
the process or decide something on that events - same on other systems.
What I want is to program network wide jobs (not one job that runs on the
all hosts - you see the difference?).
What I like in puppet is, that puppet uses its own communication channel
besides ssh. Tools like capistrano don't do that, so you need SSH access
(that means you need in many situations at least a SSH gateway - I don't
like it cause of an extra service on an extra host open to the internet).
And I would of course use my host definitions from puppet (what I could
achive, if I use something like LDAP to store my host definitions and use
it side by side with puppet instead through puppet).
Is there a tool outside where I can use puppet descriptions to program
such jobs? Or is there a tool outside you know, that allows me to program
network wide jobs without puppet where I could built in the usage of my
LDAP tree?
Hi Oliver,
There have been various things like this, though I think what I really
would like to do is understand what the types of use cases are for these
various things, so we can figure out how to teach puppet to do them best
in a way that fits in well with puppet.
For instance, this is pretty much why I created Func a while back -- for
the one-off tasks that weren't Puppety -- though Func has some major
limitations (namely, a very weak module library, so it is mainly used to
just run shell commands and replace SSH loops). MCollective is doing
similar things as Func, though with a message bus. (Aside: having
Puppet optionally grok message buses is something we should probably
look into).
There seems to be two different classes of things we'd like to do:
(A) Have the orders for a recipe wait until a condition on another
host meets some certain state... for example, installation of a service
requires that first a database setup is fulfilled on another host.
(B) Be able to run tasks that are not neccessarily declarative, such
as "power off these machines now / network go into emergency off mode
now / etc". These kinds of things aren't exactly what you would store
in the recipe, but puppetd is well suited to enable these sort of tasks.
Do you have other specific examples?
I think building something like this into the core makes good sense, so
that you don't have to set up yet another program.
Can you share more examples of what you'd want to do in these kind of
cases so we can talk about it? Right now I'm familiar with the cases
of "shut this off", or perhaps creating a build system out of the tool,
though I'd like to know more.
I also see the case of "this can't go forward until this other remote
condition is true" as being something we'll want to make a lot easier...
I think we understand that one better and can do that fairly easily ...
possible use cases include load balancer setup, database setup, etc.
What do you think?
--Michael
--
You received this message because you are subscribed to the Google Groups "Puppet
Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.