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

Управление svn-репо с помощью puppet / mcollective

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

Мне не удалось найти хороший модуль марионеточной подрывной деятельности, который работал бы так, как я хочу. Скажем, я разделил свои серверы приложений на две группы, A и B, и я развертываю их на качелях. То, что я изобразил, имеет две переменные, которые определяют, какую ревизию следует использовать каждой группе.

$groupA_svn_tag = 'myCode-1.0'
$groupB_svn_tag = 'myCode-1.0'

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

$groupA_svn_tag = 'myCode-1.1'
$groupB_svn_tag = 'myCode-1.0'

Я жду, пока марионетка сделает это (svn switch myCode-1.1), переворачиваю балансировщик и увеличиваю groupB.

Возможно, это неправильное использование марионетки, поскольку это больше похоже на инструмент «держать серверы в этом состоянии». Следует ли мне использовать для этого mcollective? Как другие люди подходят к этой проблеме?

Большинство процессов выпуска, с которыми я сталкивался, развертывают встроенные артефакты, а не прямые проверки из svn. Затем руководство выбирает, какую версию файла (будь то jar, tar, rpm и т. Д.) В репозитории развертывать, а не играть с тегами svn, как это делается в процессе сборки выпуска. Если мой опыт в целом верен, то, возможно, это может способствовать отсутствию поддержки того, что вы пытаетесь использовать с svn? Потребуются комментарии от других.

Концепция того, что вы делаете, хотя и звучит, но как уже упоминалось. Я бы сделал это, провалив группу A, развернув артефакт myCode-1.1.tar.gz в группе A. Затем повторите для группы B.

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

Я думаю, что ваша процедура хороша, и вам следует попробовать использовать MCollective для управления запусками марионеток и, если возможно, извлечения узлов из балансировщика. Мы широко используем SVN для нашего программного обеспечения и конфигураций и специально помечаем каждое изменение / выпуск, а затем позволяем puppet делать свои вещи с помощью vcsdeploy (http://www.practicalclouds.com/content/guide/pclouds-vcsdeploy-deploy-stuff).

С уважением

Дэйв