Мне нужно было переключиться на пользователя jenkins, чтобы получить доступ к $JENKINS_HOMEпеременной окружения:, sudo su -s /bin/bash jenkinsа затем echo $JENKINS_HOME, что для меня было/var/lib/jenkins
Брайс Гуинта
2
Проблема с резервным копированием всей папки «jobs» заключается в том, что копируются также и задания - это может означать много ГБ.
Майк Аргириу
Должен ли сервис Дженкинс перезапуститься?
Синь Мэн
Дженкинс дома в MacOS (установка Homebrew по умолчанию): ~ / .jenkins
chuckSaldana
30
Все задания ( 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файл, чтобы игнорировать некоторые файлы.
Как часто вы создаете резервную копию? Вы автоматически загружаете код в репозиторий git? Если это правда, вы создаете запрос на извлечение, который необходимо объединить вручную (ручное вмешательство), чтобы выполнить некоторую проверку целостности резервной копии?
030
2
@ 030 Обычно вручную после некоторых серьезных изменений, когда я знаю, что конфигурация стабильна, и мне нужно сделать ее резервную копию, так как Дженкинс часто любит ломать вещи, такие как смена подчиненных с unix на windows самостоятельно, удаление паролей из форм, поэтому Имея их в git / GitHub, я могу легко сравнить и найти недостающие данные и добавить их обратно или вернуть какой-то конкретный файл. Есть несколько плагинов для сохранения истории изменений, но я не нашел это полезным.
Кенорб
Вы храните пароли в git? Вы их шифруете? Используете ли вы конвейеры, также как Pipeline, как код?
030
3
@ 030 Jenkins шифрует пароли / учетные данные по умолчанию, но вы можете легко их расшифровать . Однако без главного ключа (который не должен быть частью резервной копии) или доступа к Jenkins никто другой не сможет. Я не использую Pipeline в качестве кода.
Кенорб
Как вы проверяете целостность этой резервной копии в git? Например, вы раскручиваете виртуальную машину или систему докеров, монтируете git repo и проверяете, все ли еще работает?
030
11
Если ваши задания Jenkins определены в Jenkinsfile, вы можете сохранить их в репозитории git и загрузить их с помощью Pipeline .
К сожалению, поскольку не все плагины Jenkins поддерживают Jenkinsfile и Pipeline, вам нужно будет вручную создавать новые Jenkinsfile, если вы хотите переместить существующие задания в этот формат.
SCM синхронизации конфигурации Plugin делает именно то , что вы хотите. Работает с svn или git для резервного копирования ядра и конфигурации заданий jenkins, что позволяет легко отслеживать, кто внес изменения, а также выполнять резервное копирование.
Я буквально копирую папку $ JENKINS_HOME, но это кажется намного лучше.
MrMesees
2
То, что плагины кажутся довольно неактивными / мертвыми - действительно ли они функциональны и на уровне 2017 года?
Туукка Мустонен,
5
Есть несколько способов сделать резервную копию данных jenkins и основных конфигураций. Лучший способ для резервного копирования - использовать плагин Thinbackup. Вы можете запланировать своевременное резервное копирование, используя выражения cron. Вы также можете настроить полное резервное копирование и инкрементное резервное копирование.
Другой способ сделать резервную копию данных и конфигурации - сделать снимок диска вашего главного сервера jenkins. Идеальный способ сделать это, смонтировать диск и связать каталог конфигурации jenkins с точкой монтирования диска.
Оба сценария хорошо описаны в этом блоге . Вы получите лучшую идею и шаги для конфигурации.
Вы можете попробовать плагин thinBackup (даже если он активно не поддерживается) [если все, что вам нужно, - это сделать логическую резервную копию] (т. Е. Большинство XML-файлов config, заданий, узлов и т. Д.). Размер резервной копии не будет огромным.
Мне нужно было перенести Jenkins с одного экземпляра Windows Server на другой. Наконец мне удалось сделать это так:
Остановите сервис Дженкинс (если вы можете себе это позволить)
Скопируйте всю папку Jenkins (по умолчанию C:\Program Files x86\Jenkins)
Вставить на новый экземпляр
Зайдите в каталог и запустите jenkins.exe install
Это зарегистрирует недавно вставленный Jenkins как сервис на новой машине и будет работать на 100% так же.
Если это работает, то если вам нужна резервная копия просто для будущей безопасности, скопируйте куда-нибудь папку Jenkins. Это будет работать как снимок.
Ответы:
Есть много способов сделать это, но я думаю, что самый простой способ - сделать резервную копию домашней папки Jenkins.
Вы можете увидеть, где находится ваш дом Дженкинса:
И, например, если вы хотите создать резервную копию только тех заданий, на которые вы можете перейти:
И сделайте резервную копию этой папки.
Вся эта конфигурация будет кучей файлов XML .
Если вы используете официальный образ докера Jenkins , дом будет включен:
источник
$JENKINS_HOME
переменной окружения:,sudo su -s /bin/bash jenkins
а затемecho $JENKINS_HOME
, что для меня было/var/lib/jenkins
Все задания (
jobs/
) и главные конфигурационные файлы (config.xml
) можно найти в домашней папке Jenkins (JENKINS_HOME
) в следующей структуре:Большая часть конфигурации представлена в формате XML, поэтому резервное
.xml
копирование всех файлов должно быть достаточным.Для согласованного резервного копирования рекомендуется хранить
JENKINS_HOME
каталог в репозитории Git.Например:
и отправка файлов во внешний репозиторий. Вы также можете добавить следующий
.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/*
использование
источник
Вы можете попробовать плагин thinBackup (даже если он активно не поддерживается) [если все, что вам нужно, - это сделать логическую резервную копию] (т. Е. Большинство XML-файлов config, заданий, узлов и т. Д.). Размер резервной копии не будет огромным.
источник
Мне нужно было перенести Jenkins с одного экземпляра Windows Server на другой. Наконец мне удалось сделать это так:
C:\Program Files x86\Jenkins
)jenkins.exe install
Это зарегистрирует недавно вставленный Jenkins как сервис на новой машине и будет работать на 100% так же.
Если это работает, то если вам нужна резервная копия просто для будущей безопасности, скопируйте куда-нибудь папку Jenkins. Это будет работать как снимок.
источник