On 24.02.14 22:12, Lukas Zapletal wrote:
> - Is there a simpler way how to trigger puppet run on a given
host?
Thanks Lukas!
We have the following implementations for puppet run:
# puppetrun (for puppetrun/kick, deprecated in Puppet 3)
Since it's deprecated we should probably avoid it if there is another
simple way.
# mcollective (uses mco puppet)
This one is probably not that straightforward as other options, see
https://github.com/witlessbird/foreman_mco/blob/master/SETUP.md
# puppetssh (run puppet over ssh)
Seems best as a best option. Simple setup, ssh is everywhere. One
disadvantage is that it only triggers the puppet run, there is now way
how to wait for the puppet run to finish and see results directly. It
would be a bad thing anyway, smart-proxy process would be blocked.
Dynflow action can solve this by triggering the puppet run via puppetssh
and then polling Foreman API for new Report.
(Dynflow already supports action suspending to be able to pull
effectively without blocking threads. There is also a helper module for
polling itself.)
see
http://projects.theforeman.org/issues/3047
https://github.com/theforeman/foreman/blob/develop/lib/proxy_api/puppet.rb
# salt (uses salt puppet.run)
Also complicated, needs Saltstack, see
https://github.com/theforeman/smart-proxy/pull/113
# customrun (calls a custom command with args)
AFAIK customrun is used internally by puppetssh so there is probably no
reason to use it directly.
Make your choice, ssh might be a way.
TL;DR I agree puppetssh seems the best.
Petr