Respuestas:
Hay muchas maneras de hacer esto, pero la forma más fácil que puedo pensar es hacer una copia de seguridad de la carpeta de inicio de Jenkins.
Puedes ver dónde está tu hogar en Jenkins con:
echo $JENKINS_HOME
Y, por ejemplo, si solo desea hacer una copia de seguridad de los trabajos, puede ir a:
cd $JENKINS_HOME/jobs
Y haga una copia de seguridad para esa carpeta.
Toda esa configuración será un montón de archivos XML .
Si está utilizando la imagen oficial de la ventana acoplable de Jenkins , la casa estará en:
/var/jenkins_home
$JENKINS_HOME
variable de entorno: sudo su -s /bin/bash jenkins
y luego echo $JENKINS_HOME
, lo que para mí fue/var/lib/jenkins
Todos los trabajos ( jobs/
) y los archivos de configuración maestros ( config.xml
) se pueden encontrar en la carpeta de inicio de Jenkins ( JENKINS_HOME
) en la siguiente estructura:
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)
La mayoría de las configuraciones están en formato XML, por lo que respaldar todos los .xml
archivos debería ser suficiente.
Todos los ajustes, registros de compilación, archivos de artefactos se almacenan en el directorio JENKINS_HOME. Simplemente archive este directorio para hacer una copia de seguridad. Del mismo modo, la restauración de los datos solo reemplaza el contenido del directorio JENKINS_HOME desde una copia de seguridad.
Se pueden realizar copias de seguridad sin detener el servidor, pero cuando realice la restauración, detenga el servidor.
Para copias de seguridad consistentes, es una buena práctica mantener el JENKINS_HOME
directorio en el repositorio de Git.
Por ejemplo:
cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
y empujando los archivos al repositorio externo. También puede agregar el siguiente .gitignore
archivo para ignorar algunos archivos.
Relacionado: ¿Hay alguna manera de mantener los archivos de configuración de Hudson / Jenkins en el control de origen?
Si sus trabajos Jenkins se definen en un archivo Jenkins, puede almacenarlo en un repositorio git y cargarlo utilizando Pipeline .
Desafortunadamente, dado que no todos los complementos de Jenkins admiten Jenkinsfile y Pipeline, deberá crear manualmente nuevos Jenkinsfiles si desea mover los trabajos existentes a este formato.
El complemento de configuración de sincronización SCM hace exactamente lo que desea. Funciona con svn o git para hacer una copia de seguridad de su núcleo y configuración de trabajo de jenkins, por lo que le brinda un seguimiento fácil de quién realizó los cambios, así como una copia de seguridad.
Hay pocas formas de respaldar los datos de jenkins y las configuraciones maestras. La mejor forma de hacer una copia de seguridad es usar el complemento Thinbackup. Puede programar copias de seguridad oportunas utilizando expresiones cron. Puede configurar la copia de seguridad completa y la copia de seguridad incremental también.
Otra forma de hacer una copia de seguridad de los datos y la configuración es tomar la instantánea del disco de su servidor maestro jenkins. La forma ideal de hacerlo montando un disco y vinculando el directorio de configuración de jenkins al punto de montaje del disco
Ambos escenarios están bien explicados en esta publicación de blog . Obtendrá una mejor idea y pasos para las configuraciones.
Estoy usando guiones de sue445/jenkins-backup-script
.
Archiva configuraciones y complementos de 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
Puede probar el plugin thinBackup (aunque no se mantenga activamente) [si lo que desea es realizar una copia de seguridad lógica ] (es decir, la mayoría de los archivos, trabajos, nodos de configuración xml). El tamaño de la copia de seguridad no será enorme.
Necesitaba migrar un Jenkins de una instancia de Windows Server a otra. Finalmente logré hacerlo así:
C:\Program Files x86\Jenkins
)jenkins.exe install
Esto registrará el Jenkins recién pegado como un servicio en la nueva máquina y funcionará 100% igual.
Si esto funciona, entonces si necesita una copia de seguridad solo para seguridad futura, copie la carpeta Jenkins en alguna parte. Funcionará como una instantánea.