Включает ли Puppet 4 Code Manager?
Я читал об использовании R10K с Puppet для управления средой с помощью git.
Согласно этому блогу, некоторые функции R10K были встроены в более поздние версии Puppet:
Поскольку R10k был настолько популярен и широко распространен, целью было создание решения для среды, которое было простым шагом вперед по сравнению с развертыванием R10k, и были созданы среды каталогов.
Это привело меня к вопросу, стоит ли мне использовать R10K. Поэтому я начал читать об использовании контрольных репозиториев в документации Puppet. Согласно документации, я могу использовать R10K или Code Manager:
Если у вас уже есть Puppetfile, теперь вы можете настроить управление кодом. Этапы настройки управления кодом различаются в зависимости от того, используете ли вы Code Manager (рекомендуется) или r10k.
Я никогда не слышал о Code Manager, поэтому я перешел на страницу с описанием Code Manager в документации Puppet. Согласно этой странице Code Manager использует R10K под капотом.
Из документации у меня складывается впечатление, что Code Manager теперь является встроенной функцией Puppet? Это так или это то, что нужно установить?
Примечание: я использую версию сообщества Puppet, а не предприятия.
1 ответ
Code Manager - это функция PE, она не встроена в Puppet.
Code Manager - это API-интерфейс, который запускается при возникновении событий на вашем Git-сервере.
Пример рабочего процесса с Gitlab:
- Кто-то объединяет запрос на удаление в производственную ветвь контрольного репо
- Gitlab запускает полезную нагрузку JSON в API менеджера кода
- API менеджера кода читает полезную нагрузку, видит, что это для производственной ветви
- Менеджер кода запускает R10k Run для производственного филиала
Я упрощаю, поскольку есть другие шаги (проверка ошибок, аутентификация и т. Д.), Но это по сути то, что происходит.
Для пользователей с открытым исходным кодом в репо r10k есть менее функциональный инструмент, подобный Code Manager: https://github.com/voxpupuli/puppet-r10k
Он работает аналогичным образом, но имеет меньше возможностей и официально не поддерживается. Но это аналогичный рабочий процесс: приложение Sinatra прослушивает полезные нагрузки JSON, когда оно получает один из них, оно запускает и запускает R10k для данной ветви.