Hi,

May I recommend that you have a look at the ext directory for
puppetlisten/puppetrun[1], this two scripts I wrote a while ago reuse puppet
certificate infrastructure to trigger remote runs.

additionally, I've created a query interface in foreman[2], which could
probably give you some ideas of how integration can be done.

by combining this two solutions, I think that you will have a very powerful
solution.

one thing to keep in mind is that many puppet users are using it via cron,
because of the high memory footprint.

thanks,
Ohad

*1 http://github.com/ohadlevy/puppet/tree/puppetlisten/ext/puppetlisten/
*2 http://theforeman.org/wiki/foreman/Query_Interface




On Thu, Feb 11, 2010 at 1:45 AM, Michael DeHaan
<mich...@reductivelabs.com>wrote:

> Teyo, Bruce, and I were bouncing around some ideas resently for an
> simple but enhanced puppetrun.
>
> Basically the idea is merging the ideas behind Func and Puppetrun.
> Obviously other tools like mcollective have various other advantaged
> features so this will be fairly primative by comparison, though it
> won't require a message bus.  If you want something more advanced
> obviously try out those tools, this is covering a much smaller use case.
>
> This is something I am going to take a crack at this in the coming
> weeks.    This would be something pretty simple and lightweight, and
> could
> probably fix a lot of the use cases around making puppetrun (or
> staggering large sets of hosts) a lot easier.
>
> Features I'm thinking of:
>
> Requires no additonal ports, setup, or config files -- use existing
> puppet listening capability and puppetca, just a /usr/bin app
> Be able to query dashboard DB to run against tagged nodes or hosts
> that have certain data there (or in storeconfigs???)
> Be able to run against wildcarded nodes based on what certs are
> present on the puppetmaster (we know the hostnames)
> Be able to be used easily from an API perspective from any ruby application
> Be able to invoke ralsh remotely for querying things (and for debug,
> and one off tasks)
> Be able to run shell commands for things that are one offs (emergency
> security power down now)
>
> Example syntax:
>
> punc --hosts *.example.org --puppetize  # get new catalog and run
> punc --hosts *.example.org --ralsh "service name=foo ensure=running"
> # perform an action through ralsh
> punc --hosts *.example.org --shell "/bin/emergency_script"   # run a
> shell script... for the one-off cases
> punc --hosts foo.*.example.org --ralsh "service name=foo"
> --format=json  # query something with ralsh and generate a report
> punc --hosts foo.*.example.org --facter fact --format=json # similarly
> generate a facter report
> punc --tags webservers [...ditto...]
> punc --critiera "fact==foo" [..ditto...]
> punc --critiera "fact==foo" [some operation to run only if fact
> matches] [...ditto...]
>
> So for example we could choose to reboot all the servers that match a
> given fact, etc.
>
> It should also allow easier staged deployments and environment usage
> from apps that want to use the API.
>
> Additional ideas for stuff you would like to see?
>
> --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<puppet-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>
>

-- 
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