ReleaseEngineering/PuppetAgain/Modules/puppet: Difference between revisions
No edit summary |
|||
Line 7: | Line 7: | ||
= puppet::atboot = | = puppet::atboot = | ||
This runs puppet at boot. It is used for any subclass of <tt>toplevel::slave</tt>. | This runs puppet at boot. It is used for any subclass of <tt>toplevel::slave</tt>. On Linux, the startup process blocks until puppet has run successfully, and reboots after a number of unsuccessful runs. On OS X, launchd does not allow one process to block another, so the puppet process runs puppet (as root) repeatedly until it is successful, and then touches a sentinel file that indicates to the buildslave process that it is safe to start. See [[ReleaseEngineering/Buildslave Startup Process]] for more details. |
Revision as of 14:10, 31 July 2012
This module handles installing, updating, and running puppet.
The puppet class is imported in toplevel::base, and takes care of installing and configuring puppet. Releng uses two modes of puppet startup, so there are two classes that must *also* be included to make sure puppet actually runs.
puppet::periodic
This runs puppet the "normal" way - puppet consults the puppetmaster every 30m or so. It is used for any subclass of toplevel::server.
puppet::atboot
This runs puppet at boot. It is used for any subclass of toplevel::slave. On Linux, the startup process blocks until puppet has run successfully, and reboots after a number of unsuccessful runs. On OS X, launchd does not allow one process to block another, so the puppet process runs puppet (as root) repeatedly until it is successful, and then touches a sentinel file that indicates to the buildslave process that it is safe to start. See ReleaseEngineering/Buildslave Startup Process for more details.