Eu só tive que resolver esse problema ... Existem algumas abordagens ...
- Use o cron. Se você tiver um sistema operacional que suporte entradas cron.d, distribua um arquivo puppet.cron via Puppet. O manifesto acompanhante teria algo que garante que o daemon do Puppet esteja desativado. Se você tiver muitos servidores, use uma função bash para randomizar o tempo de pull do cron para reduzir a carga no servidor mestre. Veja também o Wiki de fantoches sobre este tópico .
O módulo que uso:
class puppet_cron {
file { '/etc/cron.d/puppet.cron':
ensure => file,
owner => root,
group => root,
mode => 644,
source => "puppet:///modules/puppet_cron/puppet.cron",
}
service { 'puppet':
ensure => stopped,
enable => false,
}
}
Um exemplo de puppet.cron:
# puppet.cron
#
# Run puppet in one-time mode during daily downtime window.
#
# Puppet check window for Monday through Thursday
*/15 16-19 * * 1-5 root exec /usr/sbin/puppetd --no-daemonize -o
-
Existe um metaparameter de programação de marionetes que permite listar as ocasiões em que manifestos devem ser avaliados em uma base por classe. Consulte: link
-
Recentemente, li um livro que sugeria usar o Git como um método de distribuição de manifesto para dimensionar e reduzir a carga no servidor mestre. Isso significa que você terá um controle mais granular sobre o agendamento.