Ответы:
Есть много способов сделать это, но я думаю, что самый простой способ - сделать резервную копию домашней папки Jenkins.
Вы можете увидеть, где находится ваш дом Дженкинса:
echo $JENKINS_HOME
И, например, если вы хотите создать резервную копию только тех заданий, на которые вы можете перейти:
cd $JENKINS_HOME/jobs
И сделайте резервную копию этой папки.
Вся эта конфигурация будет кучей файлов XML .
Если вы используете официальный образ докера Jenkins , дом будет включен:
/var/jenkins_home
$JENKINS_HOME
переменной окружения:, sudo su -s /bin/bash jenkins
а затем echo $JENKINS_HOME
, что для меня было/var/lib/jenkins
Все задания ( jobs/
) и главные конфигурационные файлы ( config.xml
) можно найти в домашней папке Jenkins ( JENKINS_HOME
) в следующей структуре:
JENKINS_HOME
+- config.xml (jenkins root configuration)
+- *.xml (other site-wide configuration files)
+- userContent (files in this directory will be served under your http://server/userContent/)
+- fingerprints (stores fingerprint records)
+- plugins (stores plugins)
+- workspace (working directory for the version control system)
+- [JOBNAME] (sub directory for each job)
+- jobs
+- [JOBNAME] (sub directory for each job)
+- config.xml (job configuration file)
+- latest (symbolic link to the last successful build)
+- builds
+- [BUILD_ID] (for each build)
+- build.xml (build result summary)
+- log (log file)
+- changelog.xml (change log)
Большая часть конфигурации представлена в формате XML, поэтому резервное .xml
копирование всех файлов должно быть достаточным.
Все настройки, журналы сборки, архивы артефактов хранятся в каталоге JENKINS_HOME. Просто заархивируйте этот каталог, чтобы сделать резервную копию. Точно так же восстановление данных - это просто замена содержимого каталога JENKINS_HOME из резервной копии.
Резервные копии могут быть сделаны без остановки сервера, но при восстановлении остановите сервер.
Для согласованного резервного копирования рекомендуется хранить JENKINS_HOME
каталог в репозитории Git.
Например:
cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
и отправка файлов во внешний репозиторий. Вы также можете добавить следующий .gitignore
файл, чтобы игнорировать некоторые файлы.
Связанный: есть ли способ сохранить файлы конфигурации Hudson / Jenkins в системе контроля версий?
Если ваши задания Jenkins определены в Jenkinsfile, вы можете сохранить их в репозитории git и загрузить их с помощью Pipeline .
К сожалению, поскольку не все плагины Jenkins поддерживают Jenkinsfile и Pipeline, вам нужно будет вручную создавать новые Jenkinsfile, если вы хотите переместить существующие задания в этот формат.
SCM синхронизации конфигурации Plugin делает именно то , что вы хотите. Работает с svn или git для резервного копирования ядра и конфигурации заданий jenkins, что позволяет легко отслеживать, кто внес изменения, а также выполнять резервное копирование.
Есть несколько способов сделать резервную копию данных jenkins и основных конфигураций. Лучший способ для резервного копирования - использовать плагин Thinbackup. Вы можете запланировать своевременное резервное копирование, используя выражения cron. Вы также можете настроить полное резервное копирование и инкрементное резервное копирование.
Другой способ сделать резервную копию данных и конфигурации - сделать снимок диска вашего главного сервера jenkins. Идеальный способ сделать это, смонтировать диск и связать каталог конфигурации jenkins с точкой монтирования диска.
Оба сценария хорошо описаны в этом блоге . Вы получите лучшую идею и шаги для конфигурации.
Я использую скрипты от sue445/jenkins-backup-script
.
Он архивирует настройки Jenkins и плагины, такие как:
$JENKINS_HOME/*.xml
$JENKINS_HOME/jobs/*/*.xml
$JENKINS_HOME/nodes/*
$JENKINS_HOME/plugins/*.jpi
$JENKINS_HOME/secrets/*
$JENKINS_HOME/users/*
./jenkins-backup.sh /path/to/jenkins_home archive.tar.gz
# add timestamp suffix
./jenkins-backup.sh /path/to/jenkins_home backup_`date +"%Y%m%d%H%M%S"`.tar.gz
Вы можете попробовать плагин thinBackup (даже если он активно не поддерживается) [если все, что вам нужно, - это сделать логическую резервную копию] (т. Е. Большинство XML-файлов config, заданий, узлов и т. Д.). Размер резервной копии не будет огромным.
Мне нужно было перенести Jenkins с одного экземпляра Windows Server на другой. Наконец мне удалось сделать это так:
C:\Program Files x86\Jenkins
)jenkins.exe install
Это зарегистрирует недавно вставленный Jenkins как сервис на новой машине и будет работать на 100% так же.
Если это работает, то если вам нужна резервная копия просто для будущей безопасности, скопируйте куда-нибудь папку Jenkins. Это будет работать как снимок.