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

Запускать puppetmaster и client только при фиксации и один раз в день

Puppet потребляет ресурсы на моей машине, и, к сожалению, мне приходится запускать мастер вместе с другим процессом на машине.

Теперь я планирую остановить марионетку, которая все время работает как демон, и вместо этого думал о ее запуске:

  1. когда марионеточные манифесты изменяются. Мои манифесты находятся под контролем версий в git. Возможно через почту получить хук.
  2. Запускайте марионетку один раз в день. Если кто-то должен изменить конфигурации на машине, это следует заменить. Например. sshd_config должен быть безупречным.

Кто-нибудь рискнул пойти на такую ​​стратегию?
Может кто поможет?

Вы можете добавить марионетку к заданию cron как обычно (что позволяет вам запускать ее только в рабочее время или более или менее часто, чем каждые полчаса), но оберните ее в короткий сценарий, который проверяет, соответствует ли номер версии вашего исходного элемента управления был увеличен. Если это так, он запускает марионеточный клиент, если нет, тогда нет необходимости в марионетке (и всем дорогостоящем хешировании файлов, которое она делает).

Однако это будет означать, что если вы измените файл на марионетке хоста, это не изменит его. назад до следующего изменения конфигурации. Вы можете избежать этой проблемы, изменив логику сценария-оболочки, чтобы он также запускал марионеточный клиент, если с момента последнего запуска прошло более 24 часов.

Идея марионеток "без хозяина" (о которой упоминал ewwhite) устраняет хозяина марионетки как узкое место и заменяет его узким местом git, что, на мой взгляд, намного предпочтительнее. Если вы не внесете изменения в git быстрее, чем он сможет распространить эти изменения на все хосты, это узкое место не будет проблемой. Вы можете расположить «спицы» в виде дерева, если это когда-нибудь станет проблемой. Это должно масштабироваться до десятков тысяч хостов.