Назад | Перейти на главную страницу

Марионетка: разрешить изменения только в определенные часы?

Можно ли настроить puppet таким образом, что изменения в манифестах будут применяться только в определенные часы, чтобы любое возможное время простоя на нашем сервере произошло, когда мы решим это сделать?

Спасибо

Мне просто нужно было решить эту проблему ... Есть несколько подходов ...

  • Используйте cron. Если у вас есть ОС, поддерживающая записи cron.d, распространите файл puppet.cron через Puppet. В сопутствующем манифесте будет что-то, что гарантирует, что демон Puppet отключен. Если у вас много серверов, используйте функцию bash для рандомизации времени извлечения cron, чтобы снизить нагрузку на главный сервер. Также см. Puppet wiki по этой теме.

Модуль, который я использую:

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, чтобы избежать проблемы с грохотом стада.