2015-05-19 4 views
0

Мы используем Puppet для управления нашими серверами Debian.Изменения конфигурации трека с Git и Puppet

Наша процедура должна иметь каталог /etc управляемый под Git и отслеживать любые изменения конфигурации на серверах (например, установку пакетов, добавление новых пользователей и т.д.)

Когда дело доходит до Кукол: есть способ выполнить git commit . со значимым сообщением фиксации в каталоге /etc после того, как Puppet применил его изменения, желательно после каждого изменения конфигурации?

Является ли Кукольный продукт чем-то вроде крюка для достижения вышеуказанного?

+0

Подождите минуту. Является ли/etc «управляемым в Git» или марионеткой управляет «изменение конфигурации». Кукольный может запускать git с типом Exec(), или git может запускать марионетку с крюком фиксации сообщения. Но вам нужно быть понятным, кто несет ответственность за то, что происходит в случае отката и т. Д. – Vorsprung

+2

Часто политика заключается в том, что как только Puppet в силе, это должно быть только ** **, вносящее изменения в '/ etc/', что делает etckeeper и друзей устаревшими. Тогда ваше управление версиями происходит на уровне кода Puppet. –

+0

Спасибо за ваши предложения и комментарии. Мы используем Git для проверки любых изменений на сервере (мы даже используем пустые коммиты для добавления примечания о том, кто и что было сделано на сервере). Поскольку мы также выполняем ручные изменения на сервере (только базовая конфигурация выполняется с помощью Puppet), мы не можем оставить ее исключительно в Puppet. Далее я узнал, что Puppet генерирует план выполнения на основе зависимостей, что делает мою первоначальную идею невозможной сгруппировать и отслеживать изменения конфигурации в логических единицах. – froethen

ответ

1

Puppet имеет параметр конфигурации postrun_command, который теоретически может запускать скрипт для выполнения вашей git-фиксации после каждого запуска Puppet (но не после каждого изменения ресурса, как вы просили).

Однако я согласен с другими комментариями в том, что странная идея - смешивать Git и Puppet для управления конфигурацией. Единственная жизнеспособная причина, по которой я могу это понять, заключается в том, что вы используете Git только как контрольную цепочку времени. Я бы порекомендовал вам посмотреть, что принадлежит Puppet Auditing features.

+0

Спасибо за подсказку [postrun_command] (https://docs.puppetlabs.com/references/latest/configuration.html#postruncommand) и [функции аудита] (https://docs.puppetlabs.com/references/latest/ metaparameter.html # audit) Кукольного. Как упоминалось в @LukeBigum, мы используем Git для аудита изменений на сервере, но это не очень хорошо работает с Puppet (см. Мой [комментарий] (http://stackoverflow.com/questions/30321235/track-configuration-changes-with- git-and-puppet/30392537 # комментарий48992949_30321235) выше). – froethen