Réponses:
Il existe plusieurs façons de procéder, mais la meilleure façon de procéder est de sauvegarder le dossier Jenkins Home.
Vous pouvez voir où se trouve votre maison Jenkins avec:
echo $JENKINS_HOME
Et par exemple, si vous souhaitez uniquement sauvegarder les travaux, vous pouvez accéder à:
cd $JENKINS_HOME/jobs
Et faites une sauvegarde pour ce dossier.
Toute cette configuration sera un tas de fichiers XML .
Si vous utilisez l' image officielle du docker Jenkins , la maison sera sur:
/var/jenkins_home
$JENKINS_HOME
variable d'environnement :, sudo su -s /bin/bash jenkins
et ensuite echo $JENKINS_HOME
, qui pour moi était/var/lib/jenkins
Tous les travaux ( jobs/
) et fichiers de configuration principaux ( config.xml
) peuvent être trouvés dans le dossier personnel Jenkins ( JENKINS_HOME
) dans la structure suivante:
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 plupart des configurations étant au format XML, la sauvegarde de tous les .xml
fichiers devrait suffire.
Tous les paramètres, les journaux de construction, les archives d'artefacts sont stockés dans le répertoire JENKINS_HOME. Archivez simplement ce répertoire pour faire une sauvegarde. De même, la restauration des données ne fait que remplacer le contenu du répertoire JENKINS_HOME à partir d'une sauvegarde.
Des sauvegardes peuvent être effectuées sans arrêter le serveur, mais lors de la restauration, arrêtez le serveur.
Pour des sauvegardes cohérentes, il est recommandé de conserver le JENKINS_HOME
répertoire dans le référentiel Git.
Par exemple:
cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
et pousser les fichiers dans le référentiel externe. Vous pouvez également ajouter le .gitignore
fichier suivant pour ignorer certains fichiers.
Connexe: Existe - t-il un moyen de conserver les fichiers de configuration Hudson / Jenkins dans le contrôle de source?
Si vos travaux Jenkins sont définis dans un fichier Jenkins, vous pouvez le stocker dans un référentiel git et le charger à l'aide de Pipeline .
Malheureusement, tous les plug-ins Jenkins ne prenant pas en charge Jenkinsfile et Pipeline, vous devrez créer manuellement de nouveaux fichiers Jenkins si vous souhaitez déplacer les travaux existants vers ce format.
Le plug - in de configuration SCM Sync fait exactement ce que vous souhaitez. Fonctionne avec svn ou git pour sauvegarder votre noyau jenkins et la configuration de votre travail. Vous pouvez ainsi facilement savoir qui a effectué les modifications et effectuer une sauvegarde.
Il existe peu de moyens de sauvegarder les données jenkins et les configurations principales. Le meilleur moyen de sauvegarde est d'utiliser le plugin Thinbackup. Vous pouvez planifier des sauvegardes ponctuelles à l'aide d'expressions cron. Vous pouvez également configurer une sauvegarde complète et une sauvegarde incrémentielle.
Une autre façon de sauvegarder les données et la configuration consiste à prendre un instantané de disque de votre serveur maître jenkins. Le moyen idéal pour cela consiste à monter un disque et à lier le répertoire de configuration jenkins au point de montage du disque.
Les deux scénarios sont bien expliqués dans cet article de blog . Vous aurez une meilleure idée et des étapes pour les configurations.
J'utilise des scripts de sue445/jenkins-backup-script
.
Il archive les paramètres et les plugins Jenkins tels que:
$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
Vous pouvez essayer le plug- in thinBackup (même s’il n’est pas maintenu activement) [si vous souhaitez effectuer une sauvegarde logique ] (c.-à-d. La plupart des fichiers xml de config, des travaux, des nœuds, etc.). La taille de la sauvegarde ne sera pas énorme.
Je devais migrer un Jenkins d'une instance Windows Server à une autre. Finalement j'ai réussi à le faire comme ça:
C:\Program Files x86\Jenkins
)jenkins.exe install
Cela enregistrera Jenkins fraîchement collé en tant que service sur la nouvelle machine et fonctionnera à 100% de la même manière.
Si cela fonctionne, si vous avez besoin d'une sauvegarde uniquement pour des raisons de sécurité, copiez le dossier Jenkins quelque part. Cela fonctionnera comme un instantané.