¿Dónde almacena Jenkins los archivos de configuración para los trabajos que ejecuta?

98

Estoy agregando integración continua a un proyecto EC2 en el trabajo usando Jenkins. La máquina Jenkins en sí se mantiene en una máquina EC2, una que podría necesitar desconectarse y volver a colocarse en una instancia EC2 completamente diferente en cualquier momento. Tenemos un montón de manifiestos de Puppet que nos permiten reinstalar fácilmente el software en la instancia EC2, pero los archivos de configuración personalizados, como los de los trabajos que creo en Jenkins, se eliminarían después del traslado.

Ahora, si Jenkins almacena los trabajos que se ejecutarán en él en un archivo XML o un conjunto de archivos XML en algún lugar, podría configurar un sistema en el que esos archivos se envíen al servidor de control de versiones y luego se descarguen de nuevo en un archivo XML recién creado. servidor como parte del manifiesto de marionetas. ¿Alguien sabe dónde se almacenan estos archivos? Intenté copiar /var/lib/jenkins/jobs, pero eso parece almacenar la salida de los trabajos de Jenkins, no la entrada.

Wanderso
fuente

Respuestas:

128

Jenkins almacena la configuración de cada trabajo dentro de un directorio epónimo en formato jobs/. El archivo de configuración del trabajo es config.xml, las compilaciones se almacenan en builds/y el directorio de trabajo es workspace/. Consulte la documentación de Jenkins para obtener una representación visual y más detalles.

Mike Christianson
fuente
1
¿Y cómo los descargarías?
Martin
3
Si no tiene acceso a la carpeta de instalación de jenkins, puede crear un trabajo simple de jenkins y ejecutar un script que guarde todos los archivos de configuración de los trabajos: "tar -zcvf jenkins-jobs-configs.tar.gz $ (find $ {JENKINS_HOME} / jobs -name config.xml -maxdepth 2) ". A continuación, podría archivar jenkins-jobs-configs.tar.gz
Jakub Czaplicki
1
Tenga en cuenta que también hay un complemento de Historial de configuración de trabajos que puede permitirle ver sus configuraciones de trabajo actuales y anteriores, y hacerlo directamente desde el navegador web si lo prefiere / requiere el acceso a través de shell a los servidores de Jenkins.
Neil
12
Puede descargar el archivo de configuración de un nodo de Jenkins ejecutando: curl http://<ip-address>:8080/job/<job-name>/config.xml > jenkins_config.xml
JESii
¿Es posible obtener config.xml cuando creamos el trabajo de jenkins a través del método de canalización?
Manigandan Thanigai Arasu
23

En Linux, uno puede encontrar el directorio de inicio de Jenkins buscando un archivo, que contiene la casa de Jenkins, por ejemplo:

$ find / -name "config.xml" | grep "jenkins"
/var/lib/jenkins/config.xml
automatix
fuente
aplicable para Ubuntu también.
vikramvi
3
@vikramvi Ubuntu es una distribución de Linux. ;)
automatix
8

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

Hlung
fuente
También en OS X 10.12.4 :-)
Marcello Romani
4

El mejor enfoque sería mantener las configuraciones de su trabajo en un archivo Jenkins que viva en control de código fuente.

ADP
fuente
1

Estoy agregando algunas cosas relacionadas con el almacenamiento de archivos de configuración de jenkins.

Según tengo entendido, todos los archivos de configuración se almacenan en la máquina o el sistema operativo en el que ha instalado jenkins.

Los trabajos que va a crear en jenkins se almacenarán en el servidor jenkins y puede encontrar el config.xml, etc., aquí.

Después de la instalación de jenkins, encontrará el espacio de trabajo de jenkins en el servidor.

*cd>jenkins/jobs/`
cd>jenkins/jobs/$ls
   job1 job2 job3 config.xml ....*
Prasad MCN
fuente
Todos los archivos de configuración se almacenan dentro del servidor maestro de jenkins. Simplemente puedo decir
Prasad MCN