Risposte:
Esistono molti modi per farlo, ma il modo più semplice che posso pensare è fare un backup della cartella Home di Jenkins.
Puoi vedere dov'è la tua casa Jenkins con:
echo $JENKINS_HOME
E ad esempio, se si desidera solo eseguire il backup dei lavori, è possibile visitare:
cd $JENKINS_HOME/jobs
E fai un backup per quella cartella.
Tutta quella configurazione sarà un mucchio di file XML .
Se stai usando l' immagine docker Jenkins ufficiale , la casa sarà su:
/var/jenkins_home
$JENKINS_HOME
variabile d'ambiente:, sudo su -s /bin/bash jenkins
e quindi echo $JENKINS_HOME
, che per me era/var/lib/jenkins
Tutti i lavori ( jobs/
) e i file di configurazione principali ( config.xml
) sono disponibili nella cartella principale di Jenkins ( JENKINS_HOME
) nella seguente struttura:
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 maggior parte delle configurazioni sono in formato XML, quindi il backup di tutti i .xml
file dovrebbe essere sufficiente.
Tutte le impostazioni, i log di compilazione e gli archivi degli artefatti sono archiviati nella directory JENKINS_HOME. Basta archiviare questa directory per eseguire il backup. Allo stesso modo, il ripristino dei dati sta semplicemente sostituendo il contenuto della directory JENKINS_HOME da un backup.
I backup possono essere eseguiti senza arrestare il server, ma quando si ripristina, si prega di arrestare il server.
Per backup coerenti è buona norma tenere la JENKINS_HOME
directory nel repository Git.
Per esempio:
cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
e spingendo i file nel repository esterno. È inoltre possibile aggiungere il seguente .gitignore
file per ignorare alcuni file.
Se i lavori Jenkins sono definiti in un file Jenkins, è possibile memorizzarlo in un repository git e caricarlo mediante Pipeline .
Sfortunatamente, poiché non tutti i plug-in Jenkins supportano Jenkinsfile e Pipeline, sarà necessario creare manualmente nuovi file Jenkins se si desidera spostare i lavori esistenti in questo formato.
Il plug-in di configurazione della sincronizzazione SCM fa esattamente ciò che desideri. Funziona con svn o git per eseguire il backup del core jenkins e della configurazione del lavoro, quindi ti dà un facile monitoraggio su chi ha apportato le modifiche, nonché un backup.
Esistono pochi modi per eseguire il backup dei dati jenkins e delle configurazioni principali. Il modo migliore per il backup è utilizzare il plug-in Thinbackup. È possibile pianificare backup tempestivi utilizzando espressioni cron. È possibile configurare anche il backup completo e il backup incrementale.
Un altro modo per eseguire il backup dei dati e della configurazione è acquisire l'istantanea del disco del server principale jenkins. Il modo ideale per farlo montando un disco e collegare la directory di configurazione jenkins al punto di montaggio del disco
Entrambi gli scenari sono ben spiegati in questo post del blog . Otterrai un'idea e i passaggi migliori per le configurazioni.
Sto usando gli script di sue445/jenkins-backup-script
.
Archivia impostazioni e plugin di Jenkins come:
$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
Puoi provare il plug-in thinBackup (anche se non è attivamente gestito) [se è sufficiente eseguire un backup logico ] (ovvero la maggior parte dei file di configurazione XML, lavori, nodi ecc.). Le dimensioni del backup non saranno enormi.
Avevo bisogno di migrare un Jenkins da un'istanza di Windows Server a un'altra. Finalmente sono riuscito a farlo in questo modo:
C:\Program Files x86\Jenkins
)jenkins.exe install
Ciò registrerà Jenkins appena incollato come servizio sulla nuova macchina e funzionerà allo stesso modo al 100%.
Se questo funziona, se hai bisogno di un backup solo per sicurezza futura, copia la cartella Jenkins da qualche parte. Funzionerà come un'istantanea.