Odpowiedzi:
Można to zrobić na wiele sposobów, ale najłatwiejszym sposobem jest wykonanie kopii zapasowej folderu Jenkins Home.
Możesz zobaczyć, gdzie jest twój dom Jenkins:
echo $JENKINS_HOME
I na przykład, jeśli chcesz wykonać kopię zapasową zadań, możesz przejść do:
cd $JENKINS_HOME/jobs
I wykonaj kopię zapasową tego folderu.
Cała ta konfiguracja będzie wiązką plików XML .
Jeśli używasz oficjalnego obrazu dokera Jenkins , dom będzie włączony:
/var/jenkins_home
$JENKINS_HOME
zmiennej środowiskowej: sudo su -s /bin/bash jenkins
, a następnie echo $JENKINS_HOME
, co było dla mnie/var/lib/jenkins
Wszystkie zadania ( jobs/
) i główne pliki konfiguracyjne ( config.xml
) można znaleźć w folderze domowym Jenkins ( JENKINS_HOME
) w następującej strukturze:
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)
Większość konfiguracji jest w formacie XML, więc wykonanie kopii zapasowej wszystkich .xml
plików powinno wystarczyć.
Wszystkie ustawienia, dzienniki kompilacji, archiwa artefaktów są przechowywane w katalogu JENKINS_HOME. Po prostu zarchiwizuj ten katalog, aby utworzyć kopię zapasową. Podobnie przywracanie danych zastępuje po prostu zawartość katalogu JENKINS_HOME z kopii zapasowej.
Kopie zapasowe można wykonywać bez zatrzymywania serwera, ale po przywróceniu zatrzymaj serwer.
Aby uzyskać spójne kopie zapasowe, dobrą praktyką jest utrzymywanie JENKINS_HOME
katalogu w repozytorium Git.
Na przykład:
cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
i wypychanie plików do zewnętrznego repozytorium. Możesz również dodać następujący .gitignore
plik, aby zignorować niektóre pliki.
Powiązane: Czy istnieje sposób na utrzymanie plików konfiguracyjnych Hudson / Jenkins w kontroli źródła?
Jeśli twoje zadania Jenkins są zdefiniowane w pliku Jenkins, możesz je przechowywać w repozytorium git i załadować za pomocą Pipeline .
Niestety, ponieważ nie wszystkie wtyczki Jenkins obsługują Jenkinsfile i Pipeline, będziesz musiał ręcznie utworzyć nowe Jenkinsfile, jeśli chcesz przenieść istniejące zadania do tego formatu.
SCM Konfiguracja Plugin Sync robi dokładnie to, co chcesz. Współpracuje z svn lub git, aby wykonać kopię zapasową rdzenia jenkins i konfiguracji zadania, więc umożliwia łatwe śledzenie, kto dokonał zmian, a także kopię zapasową.
Istnieje kilka sposobów tworzenia kopii zapasowych danych Jenkins i konfiguracji głównych. Najlepszym sposobem tworzenia kopii zapasowych jest użycie wtyczki Thinbackup. Możesz zaplanować terminowe tworzenie kopii zapasowych za pomocą wyrażeń cron. Możesz również skonfigurować pełną i przyrostową kopię zapasową.
Innym sposobem tworzenia kopii zapasowych danych i konfiguracji jest zrobienie migawki dysku z głównego serwera Jenkins. Idealny sposób na to, podłączając dysk i łącząc katalog konfiguracji jenkins z punktem montowania dysku
Oba scenariusze są dobrze wyjaśnione w tym poście na blogu . Dostaniesz lepszy pomysł i kroki dla konfiguracji.
Używam skryptów z sue445/jenkins-backup-script
.
Archiwizuje ustawienia i wtyczki Jenkins, takie jak:
$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
Możesz wypróbować wtyczkę thinBackup (nawet jeśli nie jest aktywnie utrzymywana) [jeśli wykonanie logicznej kopii zapasowej jest wszystkim, czego potrzebujesz] (tzn. Większość plików konfiguracyjnych xml, zadań, węzłów itp.). Rozmiar kopii zapasowej nie będzie ogromny.
Musiałem migrować Jenkins z jednej instancji Windows Server do drugiej. W końcu udało mi się to zrobić w ten sposób:
C:\Program Files x86\Jenkins
)jenkins.exe install
Spowoduje to zarejestrowanie świeżo wklejonej Jenkins jako usługi na nowej maszynie i będzie działać w 100% tak samo.
Jeśli to zadziała, to jeśli potrzebujesz kopii zapasowej tylko dla przyszłego bezpieczeństwa, skopiuj gdzieś folder Jenkins. Będzie działać jak migawka.