2015-07-24 13 views
3

Мы являемся смешанным магазином linux/windows, который успешно принял Puppet для Config Mgmt некоторое время назад. Мы хотели бы оставить доступным в качестве инструмента для развертывания развертывания (исследования показывают, что марионетка не делает это очень хорошо), но есть вопросы о том, как интегрировать эти два продукта.Как интегрировать инструмент автоматизации развертывания в кукольный?

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

ответ

1

Один из способов уменьшить количество дублированных состояний между системами - использовать поддержку Ansible's "Dynamic Inventory". Вместо того, чтобы определять ваши хосты/группы в текстовом файле, вы используете скрипт, который извлекает одни и те же данные из другого места. Это может быть PuppetDB, Foreman и т. Д. И будет зависеть от вашей среды.

Написание нового скрипта также довольно просто, он просто должен быть любым исполняемым файлом (bash/python/ruby ​​/ etc), который возвращает json в определенном формате.

Наконец, можно выпускать новые версии с куклами, но проще с помощью «микросервиса», как процесс выпуска. Обеспечение обратной совместимости приложений/сервисов/баз данных в разных версиях может привести к тому, что выпуски выпусков тривиальны с марионеткой и вашим любимым менеджером пакетов.