Actualmente estoy usando Jenkins en mi PC de desarrollo. Lo instalé en mi PC de desarrollo, porque tenía un conocimiento limitado de esta herramienta; así que lo probé en mi PC de desarrollo. Ahora, me siento cómodo con Jenkins como mi "socio" a largo plazo en el proceso de compilación y me gustaría "trasladar" este Jenkins a un servidor dedicado.
Antes de esto, he hecho algunas compilaciones y tengo los artefactos archivados de cada compilación. En particular, el número de compilación es muy importante para mí para el control de versiones.
¿Cómo puedo exportar toda la información de Jenkins desde mi PC actual a mi nuevo servidor?
jenkins
data-migration
huahsin68
fuente
fuente
Respuestas:
Siguiendo la wiki de Jenkins , tendrás que:
chown -R jenkins:jenkins $JENKINS_HOME
JENKINS_HOME está situado por defecto en
~/.jenkins
una instalación de Linux, sin embargo a encontrar exactamente dónde se encuentra, ir en el http: // your_jenkins_url / Configurar página y comprobar el valor del primer parámetro:Home directory
; Este es el JENKINS_HOME.fuente
En caso de que su directorio JENKINS_HOME sea demasiado grande para copiar , y todo lo que necesita es configurar los mismos trabajos, complementos de Jenkins y configuraciones de Jenkins (y no necesita artefactos e informes de trabajos antiguos), puede usar el complemento ThinBackup :
Configure el directorio de respaldo en ambos (en Manage Jenkins -> ThinBackup -> Settings)
En Sourse Jenkins, vaya a ThinBackup -> Backup Now
Si faltan algunos complementos o trabajos, copie el contenido de la copia de seguridad directamente en el JENKINS_HOME de destino.
Si tenía autenticación de usuario en el Jenkins de origen y ahora está bloqueado en el Jenkins de destino, edite Jenkins config.xml, configúrelo
<useSecurity>
como falso y reinicie Jenkins.fuente
Esto me funcionó para pasar de Ubuntu 12.04 (Jenkins ver. 1.628) a Ubuntu 16.04 (Jenkins ver. 1.651.2). Primero instalé Jenkins desde los repositorios .
Copie
JENKINS_HOME
(por ejemplo, / var / lib / jenkins) del servidor anterior al nuevo. Desde una consola en el nuevo servidor:rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/
Inicie su nuevo servidor Jenkins
Puede que no necesites esto, pero tenía que
Manage Jenkins
yReload Configuration from Disk
.Configure System > Jenkins Location
, elJenkins URL
está correctamente asignado al nuevo servidor Jenkins.fuente
/configureSecurity
consigojava.lang.AssertionError: InstanceIdentity is missing its singleton
Automatización del servidor Jenkins:
Paso 1:
Configure un repositorio para almacenar el hogar de Jenkins (trabajos, configuraciones, complementos, etc.) en un repositorio local de GitLab o en un repositorio privado de GitHub y manténgalo actualizado regularmente al impulsar cualquier cambio nuevo a los trabajos, complementos, etc. de Jenkins.
Paso 2:
Configure un grupo / rol de host Puppet para Jenkins que se pueda usar para activar nuevos servidores Jenkins. Realice toda la configuración básica en una receta de Puppet y asegúrese de que instale la última versión de Jenkins y configure un directorio / montaje separado para
JENKINS_HOME
.Paso 3:
Haga girar una nueva máquina usando la configuración Jenkins-puppet anterior. Cuando todo esté instalado, tome / clone la configuración de Jenkins desde el repositorio de Git al directorio de inicio de Jenkins y reinicie Jenkins.
Paso 4:
Vaya a la URL de Jenkins, Administre Jenkins → Administrar complementos y actualice todos los complementos que requieren una actualización.
Hecho
Puede usar Docker Swarm o Kubernetes para escalar automáticamente los nodos esclavos.
fuente
En ocasiones, es posible que no tengamos acceso a una máquina Jenkins para copiar una carpeta directamente en otra instancia de Jenkins. Así que escribí una utilidad controlada por menús que usa llamadas API REST de Jenkins para instalar complementos y trabajos de una instancia de Jenkins a otra.
Para la migración de complementos:
{SOURCE_JENKINS_SERVER}/pluginManager/api/json?depth=1
obtendrá la lista de complementos instalados con su versión.Puede enviar una solicitud POST con los siguientes parámetros para instalar estos complementos.
Para la migración laboral:
{SOURCE_JENKINS_URL}/view/All/api/json
{SOURCE_JENKINS_URL}/job/{JOB_NAME}
.He creado una utilidad controlada por menús en Python que le pide al usuario que inicie el complemento o la migración de Jenkins y utiliza las llamadas a la API REST de Jenkins para hacerlo.
Puede consultar JenkinsMigration.docx desde esta URL jenkinsjenkinsmigrationjenkinsrestapi
fuente