Руководящие марионеточные модули с мерзавцем

У меня есть сервер марионетки/диспетчера, работающий на Debian 7 для управления моими системами. Я использую общественную версию 3.7 марионетки и диспетчера 1.6.0. Я использую среды каталога.

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

Между тем я изучил маленького мерзавца и буду скорее использовать мерзавца вместо подверсии для этого. Мой вопрос состоит теперь в том, если существуют лучшие практики, чтобы сделать так? Я могу вообразить по крайней мере два подхода, которые у обоих есть их за и против. Можно было бы подвергнуть разработку среды управлению версиями и затем клонироваться/переходить это к производству. Второй сделал бы мерзавца repo каждого модуля клонирование их к средам.

Как я сказал, я плохо знаком с мерзавцем, таким образом, у меня нет реальной подсказки достоинств и недостатков его. Также я только использую марионетку и диспетчера для приблизительно 8-месячного.

С наилучшими пожеланиями, Christoph

5
задан 22 October 2014 в 13:05
1 ответ

Ответ действительно зависит от того, насколько вы хотите управлять версиями. Существует несколько основных подходов:

  1. Поместите все в единый плоский репозиторий Git и просто клонируйте его на своих мастерах (или узлах, если вы работаете без мастера).

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


  1. Поместите основной код Puppet в один репозиторий Git с подмодулями Git, указывающими на ваши пользовательские модули . Развертывание такое же, как и выше, с добавлением - рекурсивного к git clone .

    Преимущество этого подхода в том, что вы можете легко ссылаться на внешние модули ( ], например, модуль PuppetLabs Apach e), и относительно легко внести изменения в исходный код, но у вас также есть накладные расходы, связанные с подмодулями Git, которые, как известно, беспорядочные.


  1. Запустите свой собственный Puppet Forge, и используйте Librarian-puppet или R10K для управления установкой ваших модулей.

    Это дает возможность полностью контролировать версии ваших модулей через SemVer , не публикуя их публично - хотя развертывание собственной Puppet Forge по-прежнему считается некоторыми «передовым краем».

6
ответ дан 3 December 2019 в 01:31

Теги

Похожие вопросы