Eu precisava mudar para o usuário Jenkins ter acesso à $JENKINS_HOMEvariável de ambiente: sudo su -s /bin/bash jenkinse, em seguida echo $JENKINS_HOME, que para mim foi/var/lib/jenkins
Bryce Guinta
2
O problema com o backup de toda a pasta 'jobs' é que também as execuções dos jobs serão copiadas - isso pode significar muitos GB.
quer
Se o serviço do Jenkins deve reiniciar?
Xin Meng
Página inicial do Jenkins no MacOS (instalação padrão do Homebrew): ~ / .jenkins
chuckSaldana
30
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 .xmlarquivos 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_HOMEdiretó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 .gitignorearquivo para ignorar alguns arquivos.
Com que frequência você cria um backup? Você envia o código automaticamente para um repositório git? Se verdadeiro, você cria uma solicitação de recebimento que precisa ser mesclada manualmente (intervenção manual) para fazer alguma verificação de integridade do backup?
030
2
@ 030 Normalmente, manualmente, depois de algumas mudanças importantes, quando eu sei que a configuração é estável e preciso fazer backup, pois o Jenkins geralmente gosta de quebrar coisas, como mudar escravos de unix para janelas por si só, removendo senhas de formulários, então tê-los no git / GitHub, posso facilmente comparar e encontrar os dados ausentes e adicioná-los novamente ou reverter algum arquivo específico. Existem alguns plugins para manter as alterações no histórico, mas não achei útil.
kenorb
Você armazena as senhas no git? Você os criptografa? Você usa pipelines também conhecidos como Pipeline como código?
030
3
@ 030 Jenkins criptografa senhas / credenciais por padrão, mas você pode facilmente descriptografá- las. No entanto, sem a chave mestra (que não deve fazer parte do backup) ou o acesso ao Jenkins, ninguém mais pode. Não estou usando o Pipeline como código.
precisa saber é o seguinte
Como você testa a integridade desse backup no git? Por exemplo, você cria uma máquina virtual ou um sistema docker, monta o repositório git e verifica se tudo ainda funciona?
030
11
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.
Eu literalmente tar a pasta $ JENKINS_HOME, mas isso parece muuuuito melhor.
precisa saber é o seguinte
2
Que os plugins parecem bastante inativos / inoperantes - é realmente funcional e a par a partir de 2017?
Tuukka Mustonen
5
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.
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.
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:
E, por exemplo, se você deseja fazer backup apenas dos trabalhos, acesse:
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á:
fonte
$JENKINS_HOME
variável de ambiente:sudo su -s /bin/bash jenkins
e, em seguidaecho $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:A maioria das configurações está no formato XML, portanto, fazer backup de todos os
.xml
arquivos deve ser suficiente.Para backups consistentes, é uma boa prática manter o
JENKINS_HOME
diretório no repositório Git.Por exemplo:
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?
fonte
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.
fonte
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.
fonte
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.
fonte
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/*
Uso
fonte
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.
fonte
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.
fonte