マニフェストの変更が特定の時間にのみ適用されるようにpuppet
を設定して、サーバーで最終的なダウンタイムが発生するようにすることは可能ですか?
ありがとう
私はこの問題を解決しなければなりませんでした...いくつかのアプローチがあります...
私が使用するモジュール:
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スケジュールメタパラメータ があり、マニフェストをクラスごとに評価する必要がある時間をリストできます。参照: https://serverfault.com/a/341865/13325
私は最近、マスターサーバーの負荷をスケーリングして削減するためにマニフェスト配布方法としてGitを使用することを提案した本を読みました。これは、スケジューリングをよりきめ細かく制御できることを意味します。
はい、puppetを実行するcronジョブを特定の時間にのみ実行するように設定するだけです。 puppetをデーモンとして実行することは本当にひどい考えです。サーバーのIPアドレスをハッシュ関数のキーとして使用して、Puppetの実行期間全体にわたってcronジョブを分散させ、雷鳴の群れの問題を回避します。