Antworten:
Es gibt viele Möglichkeiten, dies zu tun, aber die einfachste, die ich mir vorstellen kann, ist das Sichern des Ordners Jenkins Home.
Sie können sehen, wo Ihre Jenkins zu Hause sind:
echo $JENKINS_HOME
Wenn Sie zum Beispiel nur die Jobs sichern möchten, können Sie zu Folgendem wechseln:
cd $JENKINS_HOME/jobs
Und machen Sie ein Backup für diesen Ordner.
Die gesamte Konfiguration besteht aus einer Reihe von XML- Dateien.
Wenn Sie das offizielle Jenkins-Docker-Image verwenden , ist die Startseite aktiviert :
/var/jenkins_home
$JENKINS_HOME
Umgebungsvariable zugreifen zu können: sudo su -s /bin/bash jenkins
und dann echo $JENKINS_HOME
, was für mich war/var/lib/jenkins
Alle Jobs ( jobs/
) und Master-Konfigurationsdateien ( config.xml
) befinden sich im Jenkins-Ausgangsordner ( JENKINS_HOME
) in der folgenden Struktur:
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)
Die meisten Konfigurationsdateien liegen im XML-Format vor, sodass das Sichern aller .xml
Dateien ausreichen sollte.
Alle Einstellungen, Erstellungsprotokolle und Artefaktarchive werden im Verzeichnis JENKINS_HOME gespeichert. Archivieren Sie einfach dieses Verzeichnis, um ein Backup zu erstellen. In ähnlicher Weise ersetzt das Wiederherstellen der Daten lediglich den Inhalt des Verzeichnisses JENKINS_HOME aus einer Sicherungskopie.
Sicherungskopien können erstellt werden, ohne den Server anzuhalten. Halten Sie den Server jedoch bei der Wiederherstellung an.
Für konsistente Backups empfiehlt es sich, das JENKINS_HOME
Verzeichnis im Git-Repository zu behalten .
Zum Beispiel:
cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
und Übertragen der Dateien in das externe Repository. Sie können auch die folgende .gitignore
Datei hinzufügen , um einige Dateien zu ignorieren.
Verwandte Themen: Gibt es eine Möglichkeit, Hudson / Jenkins-Konfigurationsdateien in der Quellcodeverwaltung zu behalten?
Wenn Ihre Jenkins-Jobs in einer Jenkins-Datei definiert sind, können Sie sie in einem Git-Repository speichern und mithilfe von Pipeline laden .
Da leider nicht alle Jenkins-Plugins Jenkinsfile und Pipeline unterstützen, müssen Sie neue Jenkins-Dateien manuell erstellen, wenn Sie vorhandene Jobs in dieses Format verschieben möchten.
Das SCM Sync Configuration Plugin macht genau das, was Sie wollen. Funktioniert entweder mit svn oder git, um Ihre Jenkins-Kern- und Jobkonfiguration zu sichern, sodass Sie leicht nachverfolgen können, wer Änderungen vorgenommen hat, sowie eine Sicherung durchführen können.
Es gibt nur wenige Möglichkeiten, Jenkins-Daten und Masterkonfigurationen zu sichern. Die beste Möglichkeit zum Sichern ist die Verwendung des Thinbackup-Plugins. Sie können zeitnahe Sicherungen mit cron-Ausdrücken planen. Sie können auch eine vollständige Sicherung und eine inkrementelle Sicherung konfigurieren.
Eine andere Möglichkeit zum Sichern von Daten und der Konfiguration besteht darin, den Datenträger-Snapshot Ihres Jenkins-Masterservers zu erstellen. Der ideale Weg, dies zu tun, indem Sie eine Festplatte einhängen und das Konfigurationsverzeichnis von jenkins mit dem Einhängepunkt der Festplatte verknüpfen
Beide Szenarien werden in diesem Blogbeitrag ausführlich erläutert . Sie erhalten eine bessere Vorstellung und Schritte für die Konfigurationen.
Ich verwende Skripte von sue445/jenkins-backup-script
.
Es archiviert Jenkins Einstellungen und Plugins wie:
$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
Sie können das thinBackup- Plugin ausprobieren (auch wenn es nicht aktiv gewartet wird) [wenn Sie nur ein logisches Backup erstellen möchten] (dh die meisten Konfigurations-XML-Dateien, Jobs, Knoten usw.). Die Backup-Größe wird nicht sehr groß sein.
Ich musste ein Jenkins von einer Windows Server-Instanz auf eine andere migrieren. Endlich habe ich es so geschafft:
C:\Program Files x86\Jenkins
)jenkins.exe install
Dadurch werden die frisch eingefügten Jenkins als Dienst auf der neuen Maschine registriert und funktionieren zu 100% gleich.
Wenn dies funktioniert, kopieren Sie den Jenkins-Ordner irgendwo, wenn Sie zur zukünftigen Sicherheit ein Backup benötigen. Es wird wie ein Schnappschuss funktionieren.