Upgrade von GitHub Enterprise Server
Führen Sie ein GitHub Enterprise Server-Upgrade durch, um die neuesten Features und Sicherheitsupdates zu erhalten.
Inhalt dieses Artikels
- Upgrade vorbereiten
- Snapshot erstellen
- Upgrade mit einem Hotpatch
- Upgrade mit einem Upgrade-Paket
- Wiederherstellung nach einem fehlgeschlagenen Upgrade
Upgrade vorbereiten
-
Bestimmen Sie eine Upgrade-Strategie, und wählen Sie eine Version aus, auf die das Upgrade durchgeführt werden soll. Weitere Informationen finden Sie unter „Upgrade-Anforderungen“.
-
Erstellen Sie mit den GitHub Enterprise Server-Backup-Dienstprogramme ein neues Backup Ihrer primären Instanz. Weitere Informationen finden Sie in der „GitHub Enterprise Server-Backup-Dienstprogramme-Datei 'README.md'“.
-
Wenn Sie mithilfe eines Upgrade-Pakets ein Upgrade durchführen, sollten Sie ein Wartungsfenster für GitHub Enterprise Server-Endbenutzer planen. Bei Verwendung eines Hotpatches muss der Wartungsmodus nicht verwendet werden.
Hinweis: Das Wartungsfenster hängt vom Typ des Upgrades ab, das Sie ausführen. Für Upgrades mittels Hotpatch ist in der Regel kein Wartungsfenster erforderlich. Manchmal ist ein Neustart erforderlich, den Sie später durchführen können. Entsprechend dem Versionierungsschema von MAJOR.FEATURE.PATCH führen Patch-Veröffentlichungen mit einem Upgrade-Paket in der Regel zu weniger als fünf Minuten Ausfallzeit. Feature-Veröffentlichungen mit enthaltenen Datenmigrationen dauern anhand der Speicherleistung und der zu migrierenden Daten entsprechend länger. Weitere Informationen finden Sie unter „Wartungsmodus aktivieren und planen“.
Snapshot erstellen
Ein Snapshot ist ein Checkpoint einer virtuellen Maschine (VM) zu einem bestimmten Zeitpunkt. Es wird dringend empfohlen, ein Snapshot zu erstellen, bevor Sie Ihre virtuelle Maschine upgraden, damit Sie bei einem Fehlschlagen eines Upgrades Ihre VM auf den Snapshot zurücksetzen können. Wenn Sie ein Upgrade auf eine neue Feature-Veröffentlichung durchführen, müssen Sie einen VM-Snapshot erstellen. Wenn Sie ein Upgrade auf eine Patch-Veröffentlichung durchführen, können Sie die vorhandene Daten-Disk anhängen.
Es gibt zwei Snapshot-Typen:
-
VM-Snapshots speichern den gesamten VM-Zustand, einschließlich der Benutzer- und Konfigurationsdaten. Für diese zeitraubende Snapshot-Methode ist viel Speicherplatz erforderlich.
-
Daten-Disk-Snapshots speichern nur die Benutzerdaten.
Hinweise:
- Einige Plattformen ermöglichen es Ihnen nicht, einen Snapshot nur von Ihrer Daten-Disk zu erstellen. Bei diesen Plattformen müssen Sie einen Snapshot der gesamten VM erstellen.
- Wenn von Ihrem Hypervisor keine vollständigen VM-Snapshots unterstützt werden, können Sie in schneller Abfolge einen Snapshot der Root- und Daten-Disk erstellen.
Plattform | Snapshot-Methode | URL zur Snapshot-Dokumentation |
---|---|---|
Amazon AWS | Disk | https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html |
Azure | VM | https://docs.microsoft.com/de-de/azure/backup/backup-azure-vms-first-look-arm |
Hyper-V | VM | https://technet.microsoft.com/en-us/library/dd851843.aspx |
Google Compute Engine | Disk | https://cloud.google.com/compute/docs/disks/create-snapshots |
VMware | VM | https://pubs.vmware.com/vsphere-50/index.jsp#com.vmware.vsphere.vm_admin.doc_50/GUID-9720B104-9875-4C2C-A878-F1C351A4F3D8.html |
XenServer | VM | https://support.citrix.com/article/CTX122978 |
Upgrade mit einem Hotpatch
Sie können ein Upgrade von GitHub Enterprise Server auf die neueste Patch-Version durchführen. Verwenden Sie dazu einen Hotpatch, für den kein Wartungsfenster und in der Regel kein Neustart erforderlich ist. Mittels Hotpatching können Sie ein Upgrade auf eine neuere Patch-Version durchführen, jedoch keine Feature-Veröffentlichung. So können Sie beispielsweise ein Upgrade von 2.10.1
auf 2.10.5
durchführen, da sie sich in derselben Featureserie befinden, jedoch nicht von 2.10.9
auf 2.11.0
, da sie sich in unterschiedlichen Featureserien befinden.
Mit der Managementkonsole können Sie einen Hotpatch sofort installieren oder dessen Installation für einen späteren Zeitpunkt planen. An der Verwaltungsshell können Sie mit dem Dienstprogramm ghe-upgrade
einen Hotpatch installieren. Weitere Informationen finden Sie unter „Upgrade-Anforderungen“.
Hinweis: In Clusterumgebungen ist die Installation eines Hotpatches mittels Managementkonsole nicht verfügbar. Informationen zum Installieren eines Hotpatches in einer Clusterumgebung finden Sie unter „Cluster-Upgrade“.
Upgrade einer einzelnen Appliance mit einem Hotpatch durchführen
Hotpatch mit der Managementkonsole installieren
-
Aktivieren Sie automatisch Updates. Weitere Informationen finden Sie unter „Automatische Updates aktivieren“.
-
Klicken Sie in der oberen rechten Ecke einer beliebigen Seite auf .
-
Klicken Sie auf der linken Seitenleiste auf Managementkonsole.
-
Klicken Sie im oberen Bereich der Managementkonsole auf Updates.
-
Verwenden Sie nach dem Download eines neuen Hotpatches das Dropdownmenü für das Installationspaket:
- Wählen Sie zur sofortigen Installation Now (Jetzt) aus:
- Wählen Sie für die spätere Installation ein späteres Datum aus.
-
Klicken Sie auf Install (Installieren).
Hotpatch mit der Verwaltungsshell installieren
Hinweis: Wenn Sie die Prüfung auf automatische Updates aktiviert haben, müssen Sie das Upgrade-Paket nicht herunterladen und können die automatisch heruntergeladene Datei verwenden. Weitere Informationen finden Sie unter „Prüfung auf automatische Updates aktivieren“.
-
Stellen Sie eine SSH-Verbindung zu Ihre GitHub Enterprise Server-Instanz her.
$ ssh -p 122 admin@HOSTNAME
-
Navigieren Sie zur Seite GitHub Enterprise Server-Veröffentlichungen. Klicken Sie neben der Version, auf die Sie ein Upgrade durchführen, auf Download, und klicken Sie dann auf die Registerkarte Upgrading (Upgrade). Kopieren Sie die URL für das Upgrade-Hotpackage (Datei .hpkg).
-
Laden Sie das Upgrade-Paket mit
curl
auf Ihre GitHub Enterprise Server-Instanz herunter:admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
-
Führen Sie den Befehl
ghe-upgrade
aus, und verwenden Sie dabei den Paketdateinamen:admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg *** verifying upgrade package signature...
-
Wenn für den Kernel, MySQL, ElasticSearch oder andere Programme ein Neustart erforderlich ist, werden Sie vom Hotpatch-Upgrade-Skript dahingehend benachrichtigt.
Upgrade einer über Replikatinstanzen verfügenden Appliance mit einem Hotpatch durchführen
Hinweis: Zur Installation eines Hotpatches müssen Sie nicht in den Wartungsmodus wechseln oder die Replikation beenden.
Für die Hochverfügbarkeit und Geo-Replikation konfigurierte Appliances verwenden zusätzlich zu den primären Instanzen Replikatinstanzen. Zum Upgraden dieser Appliances müssen Sie die primäre Instanz und alle Replikatinstanzen nacheinander upgraden.
Upgrade der primären Instanz durchführen
- Führen Sie ein Upgrade der primären Instanz durch. Befolgen Sie dazu die unter „Hotpatch mit der Verwaltungsshell installieren“ beschriebenen Anweisungen.
Upgrade einer Replikatinstanz durchführen
Hinweis: Wenn Sie als Teil der Geo-Replikation mehrere Replikatinstanzen ausführen, sollten Sie diese Prozedur für jede Replikatinstanz nacheinander wiederholen.
-
Führen Sie ein Upgrade der Replikatinstanz durch. Befolgen Sie dazu die unter „Hotpatch mit der Verwaltungsshell installieren“ beschriebenen Anweisungen. Wenn Sie mehrere Replikate für die Geo-Replikation verwenden, müssen Sie diese Prozedur wiederholen, um für jedes Replikat nacheinander ein Upgrade durchzuführen.
-
Stellen Sie über die SSH als der Benutzer „admin“ auf Port 122 eine Verbindung zur SSH-Verwaltungsshell her:
$ ssh -p 122 admin@replica-host
-
Führen Sie Folgendes aus, um das Upgrade zu überprüfen:
$ ghe-version
Upgrade mit einem Upgrade-Paket
Obwohl Sie einen Hotpatch verwenden können, um ein Upgrade auf die neueste Patch-Veröffentlichung in einer Featureserie durchzuführen, müssen Sie ein Upgrade-Paket verwenden, um ein Upgrade auf eine neuere Feature-Veröffentlichung durchzuführen. Wenn Sie beispielsweise ein Upgrade von 2.11.10
auf 2.12.4
durchführen möchten, müssen Sie ein Upgrade-Paket verwenden, da es sich um unterschiedliche Featureserien handelt. Weitere Informationen finden Sie unter „Upgrade-Anforderungen“.
Upgrade einer einzelnen Appliance mit einem Upgrade-Paket durchführen
Hinweis: Wenn Sie die Prüfung auf automatische Updates aktiviert haben, müssen Sie das Upgrade-Paket nicht herunterladen und können die automatisch heruntergeladene Datei verwenden. Weitere Informationen finden Sie unter „Prüfung auf automatische Updates aktivieren“.
-
Stellen Sie eine SSH-Verbindung zu Ihre GitHub Enterprise Server-Instanz her.
$ ssh -p 122 admin@HOSTNAME
-
Navigieren Sie zur Seite GitHub Enterprise Server-Veröffentlichungen. Klicken Sie neben der Version, auf die Sie ein Upgrade durchführen, auf Download, und klicken Sie dann auf die Registerkarte Upgrading (Upgrade). Wählen Sie die entsprechende Plattform aus, und kopieren Sie die URL für das Upgrade-Paket (Datei .pkg).
-
Laden Sie das Upgrade-Paket mit
curl
auf Ihre GitHub Enterprise Server-Instanz herunter:admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
-
Aktivieren Sie den Wartungsmodus, und warten Sie, bis alle aktiven Prozesse auf der GitHub Enterprise Server-Instanz abgeschlossen sind. Weitere Informationen finden Sie unter „Wartungsmodus aktivieren und planen“.
Hinweis: Wenn Sie in einer Hochverfügbarkeitskonfiguration ein Upgrade der primären Appliance durchführen, sollte sich die Appliance bereits im Wartungsmodus befinden, sofern Sie die unter „Upgrade der primären Instanz durchführen“ beschriebenen Anweisungen befolgen.
-
Führen Sie den Befehl
ghe-upgrade
aus, und verwenden Sie dabei den Paketdateinamen:admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg *** verifying upgrade package signature...
-
Bestätigen Sie, dass Sie das Upgrade fortsetzen möchten, und führen Sie nach der Überprüfung der Paketsignatur einen Neustart durch. Das neue Root-Dateisystem schreibt in die sekundäre Partition, und die Instanz startet automatisch im Wartungsmodus neu:
*** applying update... This package will upgrade your installation to version version-number Current root partition: /dev/xvda1 [version-number] Target root partition: /dev/xvda2 Proceed with installation? [y/N]
-
Deaktivieren Sie bei einzelnen Appliance-Upgrades den Wartungsmodus, damit Benutzer Ihre GitHub Enterprise Server-Instanz verwenden können.
Hinweis: Wenn Sie in einer Hochverfügbarkeitskonfiguration ein Upgrade der Appliances durchführen, sollten Sie im Wartungsmodus bleiben, bis ein Upgrade sämtlicher Replikate durchgeführt wurde und die Replikation aktuell ist. Weitere Informationen finden Sie unter „Upgrade einer Replikatinstanz durchführen“.
Upgrade einer über Replikatinstanzen verfügenden Appliance mit einem Upgrade-Paket durchführen
Für die Hochverfügbarkeit und Geo-Replikation konfigurierte Appliances verwenden zusätzlich zu den primären Instanzen Replikatinstanzen. Zum Upgraden dieser Appliances müssen Sie die primäre Instanz und alle Replikatinstanzen nacheinander upgraden.
Upgrade der primären Instanz durchführen
Warnung: Wenn die Replikation angehalten wird, geht im Falle eines Fehlschlagens der primären Instanz die Arbeit verloren, die vor dem Upgrade des Replikats und dem Start der Replikation erledigt wird.
-
Aktivieren Sie auf der primären Instanz den Wartungsmodus, und warten Sie auf den Abschluss sämtlicher aktiver Prozesse. Weitere Informationen finden Sie unter „Wartungsmodus aktivieren“.
-
Stellen Sie über die SSH als der Benutzer „admin“ auf Port 122 eine Verbindung zur SSH-Verwaltungsshell her:
$ ssh -p 122 admin@replica-host
-
Führen Sie auf der Replikatinstanz oder auf allen Replikatinstanzen, falls Sie als Teil der Geo-Replikation mehrere Replikatinstanzen ausführen, den Befehl
ghe-repl-stop
zum Anhalten der Replikation aus. -
Führen Sie ein Upgrade der primären Instanz durch. Befolgen Sie dazu die unter „Upgrade einer einzelnen Appliance mit einem Upgrade-Paket durchführen“ beschriebenen Anweisungen.
Upgrade einer Replikatinstanz durchführen
Hinweis: Wenn Sie als Teil der Geo-Replikation mehrere Replikatinstanzen ausführen, sollten Sie diese Prozedur für jede Replikatinstanz nacheinander wiederholen.
-
Führen Sie ein Upgrade der Replikatinstanz durch. Befolgen Sie dazu die unter „Upgrade einer einzelnen Appliance mit einem Upgrade-Paket durchführen“ beschriebenen Anweisungen. Wenn Sie mehrere Replikate für die Geo-Replikation verwenden, müssen Sie diese Prozedur wiederholen, um für jedes Replikat nacheinander ein Upgrade durchzuführen.
-
Stellen Sie über die SSH als der Benutzer „admin“ auf Port 122 eine Verbindung zur SSH-Verwaltungsshell her:
$ ssh -p 122 admin@replica-host
-
Führen Sie Folgendes aus, um das Upgrade zu überprüfen:
$ ghe-version
-
Führen Sie auf der Replikatinstanz zum Starten der Replikation den Befehl
ghe-repl-start
aus. -
Führen Sie auf der Replikatinstanz den Befehl
ghe-repl-status
aus, um sicherzustellen, dass die Replikationsdienste ordnungsgemäß ausgeführt werden. Dieser Befehl gibt für alle DiensteOK
zurück, wenn eine erfolgreiche Replikation verarbeitet wird und für das Replikat ein Upgrade durchgeführt wurde. Wenn der BefehlReplication is not running
zurückgibt, wird die Replikation möglicherweise noch gestartet. Warten Sie etwa eine Minute, bevor Sieghe-repl-status
erneut ausführen.Hinweis: Während die erneute Synchronisierung verarbeitet wird, gibt der Befehl „ghe-repl-status“ ggf. erwartete Meldungen dahingehend zurück, dass die Replikation im Rückstand ist. Zum Beispiel:
CRITICAL: git replication is behind the primary by more than 1007 repositories and/or gists
Falls der Befehl
ghe-repl-status
nicht den WertOK
zurückgibt, sollten Sie die folgenden Schritte befolgen, um die Replikation manuell neu zu starten.-
Führen Sie auf der Replikatinstanz den Befehl
ghe-repl-setup <primary-instance-ip>
erneut aus. -
Führen Sie auf der Replikatinstanz zum Starten der Replikation den Befehl
ghe-repl-start
aus. -
Führen Sie auf der Replikatinstanz den Befehl
ghe-repl-status
aus, um sicherzustellen, dass die Replikationsdienste ordnungsgemäß ausgeführt werden. Dieser Befehl gibt für alle DiensteOK
zurück, wenn eine erfolgreiche Replikation verarbeitet wird und für das Replikat ein Upgrade durchgeführt wurde.
-
-
Deaktivieren Sie nach dem Upgrade-Abschluss des letzten Replikats und nach dem Abschluss der erneuten Synchronisierung den Wartungsmodus, damit Benutzer Ihre GitHub Enterprise Server-Instanz verwenden können.
Wiederherstellung nach einem fehlgeschlagenen Upgrade
Wenn ein Upgrade fehlschlägt oder unterbrochen wird, sollten Sie Ihre Instanz in ihren vorherigen Zustand zurücksetzen. Der entsprechende Prozess hängt vom Upgrade-Typ ab.
Rollback einer Patch-Veröffentlichung durchführen
Führen Sie den Befehl ghe-upgrade
mit der Option --allow-patch-rollback
aus, um ein Rollback einer Patch-Veröffentlichung durchzuführen. Wenn Sie ein Rollback eines Upgrades durchführen, müssen Sie eine Upgrade-Paketdatei mit der Dateinamenerweiterung .pkg verwenden. Hotpatch-Paketdateien mit der Dateinamenerweiterung .hpkg werden nicht unterstützt.
ghe-upgrade --allow-patch-rollback EARLIER-RELEASE-UPGRADE-PACKAGE.pkg
Nach der Ausführung des Befehls ist ein Neustart erforderlich. Der Rollback wirkt sich nicht auf die Datenpartition aus, da Migrationen nicht mit Patch-Veröffentlichung ausgeführt werden.
Weitere Informationen finden Sie unter „Befehlszeilenprogramme“.
Rollback einer Feature-Veröffentlichung durchführen
Um ein Rollback von einer Feature-Veröffentlichung durchzuführen, stellen Sie diese über einen VM-Snapshot wieder her, um sicherzustellen, dass die Root- und Datenpartitionen einen konsistenten Zustand aufweisen. Weitere Informationen finden Sie unter „Snapshot erstellen“.