Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Upgrade von GitHub Enterprise Server

Führe ein GitHub Enterprise Server-Upgrade durch, um die neuesten Features und Sicherheitsupdates zu erhalten.

Upgrade vorbereiten

  1. 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.

  2. 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.

  3. 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.

  4. 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.
PlattformMomentaufnahmenmethodeURL zur Snapshot-Dokumentation
Amazon AWSDatenträgerhttps://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html
AzureVMhttps://docs.microsoft.com/azure/backup/backup-azure-vms-first-look-arm
Hyper-VVMhttps://docs.microsoft.com/windows-server/virtualization/hyper-v/manage/enable-or-disable-checkpoints-in-hyper-v
Google Compute EngineDatenträgerhttps://cloud.google.com/compute/docs/disks/create-snapshots
VMwareVMhttps://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.

  1. Aktivieren automatischer Updates. Weitere Informationen findest du unter Aktivieren automatischer Updates.

  2. Klicke in einem Verwaltungskonto auf GitHub Enterprise Server, und klicke in der oberen rechten Ecke einer beliebigen Seite auf .

    Screenshot des Raketensymbols für den Zugriff auf Websiteadministratoreinstellungen

  3. Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.

    Screenshot des Links „Websiteadministrator“ 1. Klicke auf der linken Seitenleiste auf Management Console . Registerkarte Management Console auf der linken Seitenleiste 1. Klicke im oberen Bereich der Management Console auf Updates. Menüelement „Updates“

  4. 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. Dropdownmenü mit Hotpatch-Installationsdatum
  5. Klicke auf Installieren. Schaltfläche zum Installieren eines Hotpatches

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.

  1. 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
  2. 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).

  3. Lade das Upgradepaket mithilfe von curl auf your GitHub Enterprise Server instance herunter:

    admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
  4. Führe den ghe-upgrade-Befehl mithilfe des Paketdateinamens aus:

    admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg
    *** verifying upgrade package signature...
  5. 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

  1. 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.

  1. 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.

  2. Verbinden Dich mit der Replika-Instanz über SSH als "admin" Benutzer auf Port 122:

    $ ssh -p 122 admin@REPLICA_HOST
    1. Führe Folgendes aus, um das Upgrade zu überprüfen:
    $ 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.

  1. 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
  2. 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).

  3. Lade das Upgradepaket mithilfe von curl auf your GitHub Enterprise Server instance herunter:

    admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
  4. 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.

  5. Führe den ghe-upgrade-Befehl mithilfe des Paketdateinamens aus:

    admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg
    *** verifying upgrade package signature...
  6. 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]
  7. 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.

  8. 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.

  1. 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.
  2. Verbinden Dich mit der Replika-Instanz über SSH als "admin" Benutzer auf Port 122:
    $ ssh -p 122 admin@REPLICA_HOST
  3. 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.
  4. 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.

  1. 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.

  2. Verbinden Dich mit der Replika-Instanz über SSH als "admin" Benutzer auf Port 122:

    $ ssh -p 122 admin@REPLICA_HOST
    1. Führe Folgendes aus, um das Upgrade zu überprüfen:
    $ ghe-version
  3. Führe zum Starten der Replikation auf der Replikatinstanz den Befehl ghe-repl-start aus.

  4. Führe ghe-repl-status auf der Replikatinstanz aus, um sicherzustellen, dass Replikationsdienste ordnungsgemäß ausgeführt werden. Dieser Befehl gibt für alle Dienste OK zurück, wenn eine erfolgreiche Replikation verarbeitet wird und für das Replikat ein Upgrade durchgeführt wurde. Wenn der Befehl Replication is not running zurückgibt, wird die Replikation möglicherweise noch gestartet. Warte ungefähr eine Minute, bevor du ghe-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 nicht OK zurückgegeben hat, wende dich an den GitHub Enterprise Support. Weitere Informationen findest du unter Anfordern von Unterstützung beim GitHub Support.

  5. 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.

Weiterführende Themen