Upgrade vorbereiten
-
Bestimme eine Upgrade-Strategie, und wähle eine Version aus, auf die das Upgrade durchgeführt werden soll. Weitere Informationen findest du unter Upgrade-Anforderungen und Upgrade assistant, um den Upgrade-Pfad für deine aktuelle Version zu finden.
-
Erstelle mit den GitHub Enterprise Server Backup Utilities ein neues Backup deiner primären Instanz. Weitere Informationen findest du in der README.md-Datei in der GitHub Enterprise Server Backup Utilities-Projektdokumentation.
Hinweis: Deine GitHub Enterprise Server Backup Utilities-Version darf nicht älter als die vorletzte Version von your GitHub Enterprise Server instance sein. Weitere Informationen findest du unter Aktualisieren von GitHub Enterprise Server Backup Utilities.
-
Wenn your GitHub Enterprise Server instance kurzlebige selbstgehostete Runner für GitHub Actions verwendet und du automatische Updates deaktiviert hast, führe für deine Runner ein Upgrade auf die Version der Runneranwendung durch, die auf deiner aktualisierten Instanz ausgeführt werden soll.
-
Wenn du mithilfe eines Upgrade-Pakets ein Upgrade durchführst, solltest du ein Wartungsfenster für GitHub Enterprise Server-Endbenutzer*innen einplanen. Bei Verwendung eines Hotpatches muss der Wartungsmodus nicht verwendet werden.
Hinweis: Das Wartungsfenster hängt vom Typ des Upgrades ab, das du ausführst. Für Upgrades mittels Hotpatch ist in der Regel kein Wartungsfenster erforderlich. Manchmal ist ein Neustart erforderlich, den du später durchführen kannst. 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 findest du unter Aktivieren und Planen des Wartungsmodus.
Snapshot erstellen
Ein Snapshot ist ein Checkpoint einer virtuellen Maschine (VM) zu einem bestimmten Zeitpunkt. Es wird dringend empfohlen, eine Momentaufnahme zu erstellen, bevor du ein Upgrade für deinen virtuellen Computer durchführst, damit du bei einem Fehlschlagen des Upgrades deine VM auf die Momentaufnahme zurücksetzen kannst. Es wird nur empfohlen, eine VM-Momentaufnahme zu erstellen, wenn die Appliance heruntergefahren oder im Wartungsmodus ausgeführt wird und alle Hintergrundaufträge abgeschlossen sind.
Wenn du ein Upgrade auf ein neues Featurerelease durchführst, musst du eine VM-Momentaufnahme erstellen. Wenn du ein Upgrade auf ein Patchrelease durchführst, kannst du den vorhandenen Datenträger anhängen.
Es gibt zwei Snapshot-Typen:
-
VM-Momentaufnahmen speichern den gesamten VM-Zustand, einschließlich der Benutzer- und Konfigurationsdaten. Für diese zeitraubende Snapshot-Methode ist viel Speicherplatz erforderlich.
-
Datendatenträger-Momentaufnahmen speichern nur deine Benutzerdaten.
Hinweise:
- Bei einigen Plattformen kannst du nicht nur eine Momentaufnahme deines Datenträgers erstellen. Bei diesen Plattformen musst du eine Momentaufnahme der gesamten VM erstellen.
- Wenn von deinem Hypervisor keine vollständigen VM-Momentaufnahmen unterstützt werden, kannst du in schneller Abfolge Momentaufnahmen von Root-Disk und Datenträger erstellen.
Plattform | Momentaufnahmenmethode | URL zur Snapshot-Dokumentation |
---|---|---|
Amazon AWS | Datenträger | https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html |
Azure | VM | https://docs.microsoft.com/azure/backup/backup-azure-vms-first-look-arm |
Hyper-V | VM | https://docs.microsoft.com/windows-server/virtualization/hyper-v/manage/enable-or-disable-checkpoints-in-hyper-v |
Google Compute Engine | Datenträger | https://cloud.google.com/compute/docs/disks/create-snapshots |
VMware | VM | https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.hostclient.doc/GUID-64B866EF-7636-401C-A8FF-2B4584D9CA72.html |
Upgrade mit einem Hotpatch
Du kannst GitHub Enterprise Server auf das neueste Patchrelease mithilfe eines Hotpatches upgraden.
Mittels Hotpatching kannst Du ein Upgrade auf einen neueren Patch-Release durchführen, jedoch keine Feature-Veröffentlichung. Du kannst z. B. ein Upgrade von 2.10.1
auf 2.10.5
durchführen, weil sich beide Releases in derselben Featurereihe befinden. Ein Upgrade von 2.10.9
auf 2.11.0
ist hingegen nicht möglich, weil diese Releases unterschiedlichen Featurereihen angehören.
Hotpatches erfordern in der Regel keinen Neustart. Wenn ein Hotpatch einen Neustart erfordert, geben die GitHub Enterprise Server-Versionshinweise die Anforderung an.
Hotpatches erfordern eine Konfigurationsausführung, was für einige oder alle Dienste auf your GitHub Enterprise Server instance zu einer kurzen Fehlerperiode oder zu einer ausbleibenden Reaktion führen kann. Du musst den Wartungsmodus während der Installation eines Hotpatches nicht aktivieren, aber dadurch wird sichergestellt, dass Benutzer*innen eine Wartungsseite anstelle von Fehlern oder Timeouts angezeigt wird. Weitere Informationen findest du unter „Aktivieren und Planen des Wartungsmodus“.
Mit der Management Console kannst du einen Hotpatch sofort installieren oder für die spätere Installation planen. Über die Verwaltungsshell kannst du mit dem ghe-upgrade
-Hilfsprogramm einen Hotpatch installieren. Weitere Informationen findest du unter Upgradeanforderungen.
Notes :
-
Wenn your GitHub Enterprise Server instance einen Release Candidate-Build ausführt, kannst du kein Upgrade mit einem Hotpatch durchführen.
-
In Cluster-Umgebungen ist die Installation eines Hotpatches mittels Management Console nicht verfügbar. Informationen zum Installieren eines Hotpatches in einer Clusterumgebung findest du unter Durchführen eines Upgrades für einen Cluster.
Upgrade einer einzelnen Appliance mit einem Hotpatch durchführen
Hotpatch mit der Management Console installieren
Du kannst die Management Console verwenden, um ein Upgrade mit einem Hotpatch durchzuführen, indem du automatische Updates aktivierst. Anschließend erhältst du die neueste verfügbare Version von GitHub Enterprise Server, auf die du ein Upgrade ausführen kannst.
Wenn das Upgrade-Ziel ein Featurerelease anstatt eines Patchrelease ist, kannst du die Management Console nicht verwenden, um einen Hotpatch zu installieren. Du musst den Hotpatch stattdessen mithilfe der Verwaltungsshell installieren. Weitere Informationen findest du unter Installieren eines Hotpatches mithilfe der Verwaltungsshell.
-
Aktivieren automatischer Updates. Weitere Informationen findest du unter Aktivieren automatischer Updates.
-
Klicke in einem Verwaltungskonto auf GitHub Enterprise Server, und klicke in der oberen rechten Ecke einer beliebigen Seite auf .
-
Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.
1. Klicke auf der linken Seitenleiste auf Management Console .
1. Klicke im oberen Bereich der Management Console auf Updates.
-
Verwende nach dem Herunterladen eines neuen Hotpatches die Dropdownliste „Paket installieren“:
- Wähle Jetzt zum sofortigen Installieren aus:
- Wähle für die spätere Installation ein späteres Datum aus.
-
Klicke auf Installieren.
Hotpatch mit der Verwaltungsshell installieren
Hinweis: Wenn du die Prüfung auf automatische Updates aktiviert hast, musst du das Upgradepaket nicht herunterladen und kannst die automatisch heruntergeladene Datei verwenden. Weitere Informationen findest du unter Aktivieren der Prüfungen auf automatische Updates.
-
Melde dich über SSH bei your GitHub Enterprise Server instance an. Wenn deine Instanz mehrere Knoten umfasst, wenn z. B. Hochverfügbarkeit oder Georeplikation konfiguriert ist, wird SSH im primären Knoten konfiguriert. Wenn du einen Cluster verwendest, kannst du SSH in einen beliebigen Knoten einfügen. Weitere Informationen findest du unter Zugreifen auf die Verwaltungsshell (SSH).
$ ssh -p 122 admin@HOSTNAME
-
Navigiere zur Seite „GitHub Enterprise Server-Releases“. Klicke neben dem Release, auf welches das Upgrade durchgeführt wird, auf Herunterladen, und klicke dann auf die Registerkarte Upgrade. Kopiere die URL für das Upgrade-Hotpackage (.hpkg-Datei).
-
Lade das Upgradepaket mithilfe von
curl
auf your GitHub Enterprise Server instance herunter:admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
-
Führe den
ghe-upgrade
-Befehl mithilfe des Paketdateinamens aus: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, wirst du vom Hotpatch-Upgradeskript dahingehend benachrichtigt.
Upgrade einer über Replikatinstanzen verfügenden Appliance mit einem Hotpatch durchführen
Hinweis: Zum Installieren eines Hotpatches musst du 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 Aktualisieren dieser Appliances musst du Upgrades für die primäre Instanz und alle Replikatinstanzen nacheinander durchführen.
Upgrade der primären Instanz durchführen
- Aktualisiere die primäre Instanz, indem du die Anweisungen unter Installieren eines Hotpatches mithilfe der Verwaltungsshell befolgst.
Upgrade einer Replikatinstanz durchführen
Hinweis: Wenn du als Teil der Georeplikation mehrere Replikatinstanzen ausführst, solltest du diese Prozedur für jede Replikatinstanz einzeln nacheinander wiederholen.
-
Aktualisiere die Replikatinstanz, indem du die Anweisungen unter Installieren eines Hotpatches mithilfe der Verwaltungsshell befolgst. Wenn du mehrere Replikate für die Georeplikation verwendest, musst du diese Prozedur wiederholen, um jedes Replikat nacheinander zu aktualisieren.
-
Verbinden Dich mit der Replika-Instanz über SSH als "admin" Benutzer auf Port 122:
1. Führe Folgendes aus, um das Upgrade zu überprüfen:$ ssh -p 122 admin@REPLICA_HOST
$ ghe-version
Upgrade mit einem Upgrade-Paket
Obwohl du einen Hotpatch verwenden kannst, um ein Upgrade auf den neuesten Patchrelease in einer Featureserie durchzuführen, musst du ein Upgradepaket verwenden, um ein Upgrade auf ein neueres Featurerelease durchzuführen. Wenn du beispielsweise ein Upgrade von 2.11.10
auf 2.12.4
durchführen möchtest, musst du ein Upgradepaket verwenden, da es sich um unterschiedliche Featureserien handelt. Weitere Informationen findest du unter Upgradeanforderungen.
Upgrade einer einzelnen Appliance mit einem Upgrade-Paket durchführen
Hinweis: Wenn du die Prüfung auf automatische Updates aktiviert hast, musst du das Upgradepaket nicht herunterladen und kannst die automatisch heruntergeladene Datei verwenden. Weitere Informationen findest du unter Aktivieren der Prüfungen auf automatische Updates.
-
Melde dich über SSH bei your GitHub Enterprise Server instance an. Wenn deine Instanz mehrere Knoten umfasst, wenn z. B. Hochverfügbarkeit oder Georeplikation konfiguriert ist, wird SSH im primären Knoten konfiguriert. Wenn du einen Cluster verwendest, kannst du SSH in einen beliebigen Knoten einfügen. Weitere Informationen findest du unter Zugreifen auf die Verwaltungsshell (SSH).
$ ssh -p 122 admin@HOSTNAME
-
Navigiere zur Seite „GitHub Enterprise Server-Releases“. Klicke neben dem Release, auf welches das Upgrade durchgeführt wird, auf Herunterladen, und klicke dann auf die Registerkarte Upgrade. Wähle die geeignete Plattform aus, und kopiere die URL für das Upgradepaket (.pkg-Datei).
-
Lade das Upgradepaket mithilfe von
curl
auf your GitHub Enterprise Server instance herunter:admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
-
Aktiviere den Wartungsmodus, und warte, bis alle aktiven Prozesse auf der GitHub Enterprise Server-Instanz abgeschlossen sind. Weitere Informationen findest du unter Aktivieren und Planen des Wartungsmodus.
Hinweis: Wenn du in einer Hochverfügbarkeitskonfiguration ein Upgrade der primären Appliance durchführst, sollte sich die Appliance bereits im Wartungsmodus befinden, sofern du die unter Durchführen eines Upgrades der primären Instanz beschriebenen Anweisungen befolgst.
-
Führe den
ghe-upgrade
-Befehl mithilfe des Paketdateinamens aus:admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg *** verifying upgrade package signature...
-
Bestätige, dass du das Upgrade fortsetzen möchtest, und führe 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]
-
Optional kannst du zum Validieren des Upgrades eine IP-Ausnahmeliste konfigurieren, um den Zugriff auf eine bestimmte Liste von IP-Adressen zuzulassen. Weitere Informationen findest du unter Überprüfen von Änderungen im Wartungsmodus mithilfe der IP-Ausnahmeliste.
-
Deaktiviere bei einzelnen Appliance-Upgrades den Wartungsmodus, damit Benutzer your GitHub Enterprise Server instance verwenden können.
Hinweis: Wenn du in einer Hochverfügbarkeitskonfiguration ein Upgrade der Appliances durchführst, solltest du im Wartungsmodus bleiben, bis ein Upgrade sämtlicher Replikate durchgeführt wurde und die Replikation aktuell ist. Weitere Informationen findest du unter Durchführen eines Upgrades einer Replikatinstanz.
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 Aktualisieren dieser Appliances musst du Upgrades für die primäre Instanz und alle Replikatinstanzen nacheinander durchführen.
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.
- Aktiviere auf der primären Instanz den Wartungsmodus, und warte auf den Abschluss sämtlicher aktiver Prozesse. Weitere Informationen findest du unter Aktivieren des Wartungsmodus.
- Verbinden Dich mit der Replika-Instanz über SSH als "admin" Benutzer auf Port 122:
$ ssh -p 122 admin@REPLICA_HOST
- Führe auf der Replikatinstanz oder auf allen Replikatinstanzen, falls du als Teil der Georeplikation mehrere Replikatinstanzen ausführst,
ghe-repl-stop
zum Anhalten der Replikation aus. - Aktualisiere die primäre Instanz, indem du die Anweisungen unter Durchführen eines Upgrades einer einzelnen Appliance mit einem Upgradepaket befolgst.
Upgrade einer Replikatinstanz durchführen
Hinweis: Wenn du als Teil der Georeplikation mehrere Replikatinstanzen ausführst, solltest du diese Prozedur für jede Replikatinstanz einzeln nacheinander wiederholen.
-
Aktualisiere die primäre Instanz, indem du die Anweisungen in Durchführen eines Upgrades einer einzelnen Appliance mit einem Upgradepaket befolgst. Wenn du mehrere Replikate für die Georeplikation verwendest, musst du diese Prozedur wiederholen, um jedes Replikat nacheinander zu aktualisieren.
-
Verbinden Dich mit der Replika-Instanz über SSH als "admin" Benutzer auf Port 122:
1. Führe Folgendes aus, um das Upgrade zu überprüfen:$ ssh -p 122 admin@REPLICA_HOST
$ ghe-version
-
Führe zum Starten der Replikation auf der Replikatinstanz den Befehl
ghe-repl-start
aus. -
Führe
ghe-repl-status
auf der Replikatinstanz aus, um sicherzustellen, dass 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. Warte ungefähr eine Minute, bevor dughe-repl-status
erneut ausführst.Hinweis: Während der Neusynchronisierung kann
ghe-repl-status
anzeigen, dass die Replikation im Rückstand ist. Es wird möglicherweise die folgende Meldung angezeigt.CRITICAL: git replication is behind the primary by more than 1007 repositories and/or gists
-
Wenn du für jeden Knoten ein Upgrade auf GitHub Enterprise Server 3.6.0 oder höher durchgeführt und die Replikation gestartet hast, aber nach 45 Minuten immer noch die Meldung
git replication is behind the primary
erscheint, wende dich an den GitHub Enterprise Support. Weitere Informationen findest du unter Anfordern von Unterstützung beim GitHub Support. -
Andernfalls, wenn
ghe-repl-status
nichtOK
zurückgegeben hat, wende dich an den GitHub Enterprise Support. Weitere Informationen findest du unter Anfordern von Unterstützung beim GitHub Support.
-
-
Wenn das Upgrade des letzten Replikats abgeschlossen und die Neusynchronisierung beendet ist, deaktiviere den Wartungsmodus, damit die Benutzer your GitHub Enterprise Server instance verwenden können.
Wiederherstellung nach einem fehlgeschlagenen Upgrade
Wenn ein Upgrade fehlschlägt oder unterbrochen wird, solltest du deine Instanz in ihren vorherigen Zustand zurücksetzen. Der entsprechende Prozess hängt vom Upgrade-Typ ab.
Rollback einer Patch-Veröffentlichung durchführen
Um einen Patchrelease zurückzusetzen, verwende den ghe-upgrade
-Befehl mit dem --allow-patch-rollback
-Parameter. Bevor sie zurückgesetzt werden, muss die Replikation vorübergehend beendet werden, indem sie auf allen Replikatinstanzen ghe-repl-stop
ausgeführt wird. Wenn du ein Rollback eines Upgrades durchführst, musst du eine Upgradepaketdatei mit der Erweiterung .pkg verwenden. Hotpatchpaketdateien mit der Erweiterung .hpkg werden nicht unterstützt.
ghe-upgrade --allow-patch-rollback EARLIER-RELEASE-UPGRADE-PACKAGE.pkg
Nach Ausführung des Befehls ist ein Neustart erforderlich. Der Rollback wirkt sich nicht auf die Datenpartition aus, da Migrationen nicht mit Patch-Releases ausgeführt werden.
Sobald der Rollback abgeschlossen ist, starte die Replikation neu, indem du ghe-repl-start
auf allen Replikaten ausführst.
Weitere Informationen findest du unter Befehlszeilenprogramme.
Rollback einer Feature-Veröffentlichung durchführen
Um ein Rollback eines Featurereleases durchzuführen, führe eine Wiederherstellung über eine VM-Momentaufnahme aus, um sicherzustellen, dass die Root- und Datenpartitionen einen konsistenten Zustand aufweisen. Weitere Informationen findest du unter Eine Momentaufnahme erstellen.