Как экспортировать/импортировать конфигурацию Jenkins?

Jenkins CLI предоставляет функцию экспорта и импорта отдельных заданий, например:

java -jar jenkins-cli.jar -s http://foo-jenkins.tld:8080 get-job myjob > myjob.xml
java -jar jenkins-cli.jar -s http://bar-jenkins.tld:8080 create-job newmyjob < myjob.xml

Возможно ли это и как сделать резервную копию и восстановить конфигурации?


Я имею в виду все настройки:

  • конфигурацию системы,
  • глобальная конфигурация безопасности,
  • учетные данные,
  • глобальная конфигурация инструмента,
  • конфигурация плагинов ( "Конфигурация HTTP-прокси" и список установленных плагинов)
  • узлы
  • пользователи
  • ничего не пропало?

Все настройки сразу или, возможно, даже как отдельные процессы резервного копирования/восстановления, например, например. MozBackup с его "выбором компонентов"

MozBackup - Components selection

или eclipse с диалоговым окном "Экспортные настройки"

eclipse - Export Preferences

Ответ 1

Нет простого способа резервного копирования/экспорта выбранных частей конфигурации, поскольку данные конфигурации Jenkins разбросаны среди

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

Самое чистое решение - создать резервную копию всего $JENKINS_HOME, а исключить те части, которые вы не хотите быть частью резервной копии (например, исключить jobs/*/builds). С этим вы также получите размер резервной копии.

Такая резервная копия должна выполняться на уровне файловой системы, так как нет API для доступа ко всем этим файлам/данным.

Не полагайтесь на thinBackup, так как вы зависите от поддерживающих плагинов, чтобы не пропустить ничего важного. Например, текущая версия thinBackup версии 1.7.4 не будет сохранять секретные ключи Дженкинса, поэтому невозможно восстановить учетные данные с нуля.

Ответ 3

Указанное требование может быть легко достигнуто с помощью следующего плагина

https://wiki.jenkins-ci.org/display/JENKINS/JobConfigHistory+Plugin

Ниже будут решены проблемы при использовании этого плагина

  • Изменения конфигурации версии
  • Изменения конфигурации можно сравнить
  • Изменения конфигурации могут быть возвращены назад