Можно ли настроить 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
Есть Метапараметр расписания марионетки это позволяет вам перечислить время, когда манифесты следует оценивать для каждого класса. Видеть: https://serverfault.com/a/341865/13325
Недавно я прочитал книгу, в которой предлагалось использовать Git в качестве метода распространения манифеста для масштабирования и уменьшения нагрузки на главный сервер. Это означает, что у вас будет более детальный контроль над планированием.
Да, просто настройте задание cron, которое запускает марионетку, только в определенные часы. Запуск марионетки в качестве демона - действительно ужасная идея. Мы используем IP-адрес сервера в качестве ключа к функции хеширования, чтобы распределять наши cronjobs на весь период времени выполнения Puppet, чтобы избежать проблемы с грохотом стада.