木偶:只允许在一定的时间内更改?

是否有可能设置puppet的方式,只有在清单中的变化将在一定的时间内应用,以便任何最终的停机时间在我们的服务器将发生时,我们决定呢?

谢谢

    我只是要解决这个问题…有几种方法…

    • 使用cron。 如果您的操作系统支持cron.d条目,请通过Puppet发布一个puppet.cron文件。 伴随的清单将确保木偶守护进程closures。 如果你有很多的服务器,使用bash函数来随机的cron pull时间来减less主服务器上的负载。 另请参阅这个主题上的木偶维基 。

    我使用的模块:

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

    示例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 
    • 有一个Puppet时间表元数据参数 ,允许您列出每个class级评估清单的时间。 请参阅: https : //serverfault.com/a/341865/13325

    • 我最近读了一本书,build议使用Git作为清单分发方法,以扩展和减less主服务器上的负载。 这意味着您可以对计划进行更细化的控制。

    是的,只要设置运行木偶的cronjob只在特定的时间运行。 将木偶作为守护进程运行是一个非常糟糕的主意。 我们使用服务器的IP地址作为哈希函数的关键字,在我们的Puppet运行的整个时间段内展示我们的cronjob,以避免出现雷鸣般的牛群问题。