Respostas:
Existem várias maneiras de fazer isso, mas a maneira mais fácil de pensar é fazer um backup da pasta Jenkins Home.
Você pode ver onde fica sua casa em Jenkins:
echo $JENKINS_HOME
E, por exemplo, se você deseja fazer backup apenas dos trabalhos, acesse:
cd $JENKINS_HOME/jobs
E faça um backup para essa pasta.
Toda essa configuração será um monte de arquivos XML .
Se você estiver usando a imagem da janela de encaixe Jenkins oficial , a casa será:
/var/jenkins_home
$JENKINS_HOME
variável de ambiente: sudo su -s /bin/bash jenkins
e, em seguida echo $JENKINS_HOME
, que para mim foi/var/lib/jenkins
Todos os trabalhos ( jobs/
) e arquivos de configuração mestre ( config.xml
) podem ser encontrados na pasta inicial do Jenkins ( JENKINS_HOME
) na seguinte estrutura:
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)
A maioria das configurações está no formato XML, portanto, fazer backup de todos os .xml
arquivos deve ser suficiente.
Todas as configurações, logs de construção, arquivos de artefato são armazenados no diretório JENKINS_HOME. Simplesmente arquive este diretório para fazer um backup. Da mesma forma, restaurar os dados está apenas substituindo o conteúdo do diretório JENKINS_HOME de um backup.
Os backups podem ser feitos sem parar o servidor, mas quando você restaurar, pare o servidor.
Para backups consistentes, é uma boa prática manter o JENKINS_HOME
diretório no repositório Git.
Por exemplo:
cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
e enviando os arquivos para o repositório externo. Você também pode adicionar o seguinte .gitignore
arquivo para ignorar alguns arquivos.
Relacionado: Existe uma maneira de manter os arquivos de configuração do Hudson / Jenkins no controle de origem?
Se seus trabalhos do Jenkins estiverem definidos em um arquivo Jenkins, você poderá armazená-lo em um repositório git e carregá-lo usando o Pipeline .
Infelizmente, como nem todos os plugins Jenkins suportam Jenkinsfile e Pipeline, você precisará criar manualmente novos Jenkinsfiles se desejar mover os trabalhos existentes para esse formato.
O plug-in de configuração do SCM Sync faz exatamente o que você deseja. Funciona com svn ou git para fazer backup do seu núcleo jenkins e da configuração do trabalho, para facilitar o rastreamento de quem fez as alterações, bem como um backup.
Existem poucas maneiras de fazer backup de dados jenkins e configurações principais. A melhor maneira de fazer backup é usar o plugin Thinbackup. Você pode agendar backups oportunos usando expressões cron. Você também pode configurar o backup completo e o backup incremental.
Outra maneira de fazer backup dos dados e da configuração é tirar o instantâneo do disco do servidor mestre jenkins. A maneira ideal de fazer isso montando um disco e vinculando o diretório de configuração jenkins ao ponto de montagem do disco
Ambos os cenários estão bem explicados nesta postagem do blog . Você terá uma idéia e etapas melhores para as configurações.
Eu estou usando scripts de sue445/jenkins-backup-script
.
Ele arquiva configurações e plugins do Jenkins, como:
$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
Você pode experimentar o plug- in thinBackup (mesmo que não seja mantido ativamente) [se você deseja fazer um backup lógico ] (ou seja, a maioria dos arquivos xml de configuração, trabalhos, nós etc.). O tamanho do backup não será enorme.
Eu precisava migrar um Jenkins de uma instância do Windows Server para outra. Finalmente consegui fazer assim:
C:\Program Files x86\Jenkins
)jenkins.exe install
Isso registrará o Jenkins recém-colado como um serviço na nova máquina e funcionará 100% da mesma maneira.
Se isso funcionar, se você precisar de um backup apenas para segurança futura, copie a pasta Jenkins em algum lugar. Funcionará como um instantâneo.