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.

Reply via email to