Sounds promising. What about a combination of shell execution and a
normal puppetrun? Something like run a shell command, apply catalog,
run another command.

On Wed, Feb 10, 2010 at 6:45 PM, 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.
> For more options, visit this group at 
> http://groups.google.com/group/puppet-users?hl=en.
>
>



-- 

Cheers,

Daniel

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