Obecnie używam Jenkinsa na moim komputerze deweloperskim. Zainstalowałem go na moim komputerze deweloperskim, ponieważ miałem ograniczoną wiedzę na temat tego narzędzia; więc przetestowałem to na moim komputerze deweloperskim. Teraz czuję się dobrze z Jenkinsem jako moim długoterminowym „partnerem” w procesie budowania i chciałbym „przenieść” tego Jenkinsa na dedykowany serwer.
Wcześniej wykonałem kilka kompilacji i zarchiwizowałem artefakty z każdej kompilacji. W szczególności numer kompilacji jest dla mnie bardzo ważny przy kontroli wersji.
Jak mogę wyeksportować wszystkie informacje Jenkins z mojego obecnego komputera na nowy serwer?
jenkins
data-migration
huahsin68
źródło
źródło
Odpowiedzi:
Postępując zgodnie z wiki Jenkins , będziesz musiał:
chown -R jenkins:jenkins $JENKINS_HOME
JENKINS_HOME jest domyślnie znajduje się
~/.jenkins
na instalację systemu Linux, jeszcze dokładnie dowiedzieć się, gdzie się znajduje, przejdź na http: // your_jenkins_url / configure stronie i sprawdzić wartość pierwszego parametru:Home directory
; to jest JENKINS_HOME.źródło
W przypadku, gdy katalog JENKINS_HOME jest zbyt duży, aby go skopiować , a wszystko, czego potrzebujesz, to skonfigurować te same zadania, wtyczki Jenkins i konfiguracje Jenkins (i nie potrzebujesz starych artefaktów i raportów Job), możesz użyć wtyczki ThinBackup :
Skonfiguruj katalog kopii zapasowych na obu (w Manage Jenkins -> ThinBackup -> Settings)
W Sourse Jenkins przejdź do ThinBackup -> Backup Now
Jeśli brakuje niektórych wtyczek lub zadań, skopiuj zawartość kopii zapasowej bezpośrednio do docelowego JENKINS_HOME.
Jeśli miałeś uwierzytelnianie użytkownika w źródłowym Jenkinsie, a teraz jest zablokowany na docelowym Jenkinsie, edytuj plik Jenkins config.xml, ustaw
<useSecurity>
na false i zrestartuj Jenkins.źródło
Pomogło mi to w przejściu z Ubuntu 12.04 (Jenkins w wersji 1.628) na Ubuntu 16.04 (Jenkins w wersji 1.651.2). Najpierw zainstalowałem Jenkins z repozytoriów .
Skopiuj
JENKINS_HOME
(np. / Var / lib / jenkins) ze starego serwera na nowy. Z konsoli na nowym serwerze:rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/
Uruchom nowy serwer Jenkins
Możesz tego nie potrzebować, ale ja musiałem
Manage Jenkins
iReload Configuration from Disk
.Configure System > Jenkins Location
,Jenkins URL
jest poprawnie przypisany do nowego serwera Jenkins.źródło
/configureSecurity
dostajęjava.lang.AssertionError: InstanceIdentity is missing its singleton
Automatyzacja serwera Jenkins:
Krok 1:
Skonfiguruj repozytorium, aby przechowywać dom Jenkinsa (zadania, konfiguracje, wtyczki itp.) W lokalnym repozytorium GitLab lub w prywatnym repozytorium GitHub i regularnie je aktualizuj, wprowadzając wszelkie nowe zmiany w zadaniach Jenkinsa, wtyczkach itp.
Krok 2:
Skonfiguruj grupę / rolę hosta Puppet dla Jenkins, której można użyć do uruchomienia nowych serwerów Jenkins. Wykonaj całą podstawową konfigurację w przepisie Puppet i upewnij się, że instaluje najnowszą wersję Jenkinsa i ustawia osobny katalog / mount dla
JENKINS_HOME
.Krok 3:
Uruchom nową maszynę, korzystając z powyższej konfiguracji Jenkins-puppet. Po zainstalowaniu wszystkiego pobierz / sklonuj konfigurację Jenkinsa z repozytorium Git do katalogu głównego Jenkinsa i zrestartuj Jenkins.
Krok 4:
Przejdź do adresu URL Jenkins, Zarządzaj Jenkins → Zarządzaj wtyczkami i zaktualizuj wszystkie wtyczki, które wymagają aktualizacji.
Gotowe
Możesz użyć Docker Swarm lub Kubernetes do automatycznego skalowania węzłów podrzędnych.
źródło
Czasami możemy nie mieć dostępu do maszyny Jenkins, aby skopiować folder bezpośrednio do innej instancji Jenkins. Napisałem więc narzędzie oparte na menu, które używa wywołań API REST Jenkins do instalowania wtyczek i zadań z jednej instancji Jenkinsa do drugiej.
W przypadku migracji wtyczek:
{SOURCE_JENKINS_SERVER}/pluginManager/api/json?depth=1
wyświetli listę zainstalowanych wtyczek wraz z ich wersją.Możesz wysłać żądanie POST z następującymi parametrami, aby zainstalować te wtyczki.
W przypadku migracji zarobkowej:
{SOURCE_JENKINS_URL}/view/All/api/json
{SOURCE_JENKINS_URL}/job/{JOB_NAME}
.Stworzyłem narzędzie oparte na menu w Pythonie, które prosi użytkownika o rozpoczęcie migracji wtyczki lub Jenkinsa i używa do tego wywołań API Jenkins REST.
Możesz skierować plik JenkinsMigration.docxZ tego adresu URL jenkinsjenkinsmigrationjenkinsrestapi
źródło