Onde o Jenkins armazena arquivos de configuração para os trabalhos que executa?

99

Estou adicionando integração contínua a um projeto EC2 no trabalho usando Jenkins. A própria máquina Jenkins é mantida em uma máquina EC2 - uma que pode precisar ser colocada offline e trazida de volta em uma instância EC2 totalmente diferente a qualquer momento. Temos vários manifestos de Puppet que nos permitem reinstalar facilmente o software na instância do EC2, mas os arquivos de configuração personalizados, como os dos jobs que crio no Jenkins, seriam excluídos após a movimentação.

Agora, se o Jenkins armazena quais trabalhos devem ser executados nele em um arquivo XML ou conjunto de arquivos XML em algum lugar, eu poderia configurar um sistema onde esses arquivos são confirmados para o servidor de controle de versão e, em seguida, baixado de volta para um arquivo recém-criado servidor como parte do manifesto do fantoche. Alguém sabe onde esses arquivos estão armazenados? Tentei copiar /var/lib/jenkins/jobs, mas isso parece armazenar a saída das tarefas do Jenkins, não a entrada.

Wanderso
fonte

Respostas:

129

O Jenkins armazena a configuração de cada trabalho em um diretório de mesmo nome em jobs/. O arquivo de configuração do job é config.xml, as compilações são armazenadas builds/e o diretório de trabalho é workspace/. Veja a documentação do Jenkins para uma representação visual e mais detalhes.

Mike Christianson
fonte
1
E como você os baixaria?
Martin,
3
Se você não tiver acesso à pasta de instalação do jenkins, pode criar um trabalho jenkins simples e executar um script que tars todos os arquivos de configuração para os trabalhos: "tar -zcvf jenkins-jobs-configs.tar.gz $ (localizar $ {JENKINS_HOME} / jobs -name config.xml -maxdepth 2) ". Você poderia arquivar jenkins-jobs-configs.tar.gz
Jakub Czaplicki
1
Observe que também há um plug-in de histórico de configuração de trabalho que permite que você visualize suas configurações de trabalho atuais e anteriores, e faça isso diretamente no navegador da web se você preferir / exigir que o acesso shell aos servidores Jenkins.
Neil
12
Você pode baixar o arquivo de configuração de um nó Jenkins executando: curl http://<ip-address>:8080/job/<job-name>/config.xml > jenkins_config.xml
JESii
É possível obter o config.xml quando criamos o trabalho jenkins por meio do método pipeline?
Manigandan Thanigai Arasu
23

No Linux, pode-se encontrar o diretório inicial do Jenkins procurando por um arquivo, que a página inicial do Jenkins contém, por exemplo:

$ find / -name "config.xml" | grep "jenkins"
/var/lib/jenkins/config.xml
automatix
fonte
aplicável para Ubuntu também.
vikramvi
3
@vikramvi Ubuntu é uma distribuição Linux. ;)
automatix de
8

Jenkins 1.627, OS X 10.10.5 /Users/Shared/Jenkins/Home/jobs/{project_name}/config.xml

Hlung
fonte
Também no OS X 10.12.4 :-)
Marcello Romani
4

A melhor abordagem seria manter suas configurações de trabalho em um Jenkinsfile que vive no controle de origem.

ADP
fonte
1

Estou adicionando algumas coisas relacionadas ao armazenamento de arquivos de configuração jenkins.

Pelo meu conhecimento, todos os armazenamentos de arquivos de configuração na máquina ou sistema operacional que você instalou jenkins.

Os trabalhos que você vai criar no jenkins serão armazenados no servidor jenkins e você pode encontrar o config.xml etc., aqui.

Após a instalação do jenkins, você encontrará o espaço de trabalho do jenkins no servidor.

*cd>jenkins/jobs/`
cd>jenkins/jobs/$ls
   job1 job2 job3 config.xml ....*
Prasad MCN
fonte
Todos os arquivos de configuração são armazenados no servidor mestre jenkins. Simplesmente posso dizer
Prasad MCN