Какую систему непрерывной интеграции проще всего восстановить на новом компьютере из резервной копии? - PullRequest
2 голосов
/ 09 июня 2011

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

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

По сути, у нас есть несколько проектов Eclipse рядом друг с другом при извлечении из git.Каждая запись сборки указывает на скрипт ant в одном из проектов, который затем собирается.Нам нужна полная гибкость с используемой версией Ant и Java.Это вполне может быть описано в файле «конфигурации запуска» где-то в проекте, поэтому все, что нужно, это указать (или, возможно, даже автоматически обнаружить) указанный файл запуска.

Было бы лучше,если бы историю тоже можно было установить и т. д., но мне бы очень хотелось, чтобы у меня была возможность снова и снова запускать задания.

Любые рекомендации?


(Примечание 2013-02-18: мы перенесли наш процесс сборки на Maven. Это значительно упростило настройку Jenkins и сделало этот вопрос менее важным. Еще приятно знать, можно ли легко загрузить конфигурацию CI с лент резервного копирования или с нуля (на основе хранимой информациив разных файлах пом))

Ответы [ 2 ]

3 голосов
/ 09 июня 2011

Резервное копирование Jenkins довольно просто.

  1. Резервное копирование всех ваших файлов конфигурации.У меня есть задание Jenkins, которое выполняется один раз в час, сканирует любые изменения или дополнения в config.xml и добавляет / обновляет их на нашем сервере Perforce.Кроме того, это дает мне возможность откатиться к старой конфигурации, если я испорчу конфигурацию достаточно плохо, просто выполнив синхронизацию в Perforce.

  2. Сделайте резервную копию ваших плагинов.Я просто резервное копирование файлов .hpi, снова в производительности.Таким образом, мне не нужно помнить, какие плагины у меня есть на моем сервере, если мне нужно будет перестроить его.

  3. Резервное копирование каталога вашей рабочей области.Я этого не делаю, так как мои сборки CI меня не интересуют, а мои ночные сборки хранятся на другом сервере.Я обнаружил, что копия Jenkins очень-очень медленная, поэтому вместо этого я копирую все артефакты / источники внутри своих скриптов сборки на сервер архивации, который ИТ-отдел уже выполняет резервное копирование ночью (это san).Единственная проблема в том, что я не могу указать артефакты задания Дженкинса в отдельном месте и заставить Дженкинса связать их как артефакты.Я не нашел плагин, чтобы сделать это, и плагин, который я писал, чтобы сделать это, идет медленно.Но это не так уж плохо в обмене.

Эти 3 позволяют мне восстановить Jenkins, но без файлов журналов (они мне не нужны, пока у меня есть вывод, tee.exe - ваш друг) вдовольно короткий заказ, если мой сервер когда-нибудь умрет.

1 голос
/ 09 июня 2011

Это, вероятно, не прямой ответ на ваш вопрос, но ...

Мы используем Дженкинс (ранее Хадсон) уже более полутора лет.Мы не использовали какую-либо особенность, специфичную для Jenkins, которую я бы не использовал в других системах CI.Однако, после первоначального изучения конфигураций buildbot и CruiseControl (извините, пожалуйста, не ненавидите меня), я обнаружил, что множество доступных плагинов и общая простота использования Jenkins сделали выбор легким.Сейчас у нас 86 проектов, и у нас есть два сервера - один для разработки, другой для QA и Release.

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

Обратите внимание, что и наши серверы, и все подчиненные устройства являются виртуальными машинами.

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

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

Кроме того, у Jenkins есть плагин для резервного копирования - https://wiki.jenkins -ci.org / display / JENKINS / Backup + Plugin - который позволяет довольно легко создавать резервные копии, по крайней мере, конфигурации.

Учитывая, что резервное копирование не является основной функцией системы CI, есть вероятность, что у всех них будут свои причуды для резервного копирования и восстановления.

Только мои 2 пайсы / центы / пенсы.

...