Upgrade von GitHub Enterprise Server
Führen Sie ein GitHub Enterprise Server-Upgrade durch, um die neuesten Features und Sicherheitsupdates zu erhalten.
In diesem Handbuch
- 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“.
-
Wenn Sie ein Upgrade von GitHub Enterprise Server 2.14 auf 2.15 oder von 2.12 auf 2.13 vornehmen, laden Sie ein Migrationsskript herunter, und führen Sie es aus, um Ihre Webhook-Indizes zu ElasticSearch 5.6 zu migrieren. Weitere Informationen finden Sie unter „ElasticSearch-Indizes zu GitHub Enterprise Server 2.14 oder höher migrieren“.
-
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
You can upgrade GitHub Enterprise Server to the latest patch release using a hotpatch, which does not require a maintenance window and usually does not require a reboot. You can use hotpatching to upgrade to a newer patch release, but not a feature release. For example, you can upgrade from 2.10.1
to 2.10.5
because they are in the same feature series, but not from 2.10.9
to 2.11.0
because they are in a different feature series.
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“.
Upgrade einer einzelnen Appliance mit einem Hotpatch durchführen
Hotpatch mit der Managementkonsole installieren
In Clusterumgebungen ist die Installation eines Hotpatches mittels Managementkonsole nicht verfügbar. Informationen zum Installieren eines Hotpatches in einer Clusterumgebung finden Sie unter „Hotpatch mit der Verwaltungsshell installieren“.
-
Aktivieren Sie automatisch Updates. For more information, see "Enabling automatic updates."
-
In the upper-right corner of any page, click .
-
In the left sidebar, click Managementkonsole.
-
At the top of the Managementkonsole, click 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
Note: If you've enabled automatic update checks, you don't need to download the upgrade package and can use the file that was automatically downloaded. For more information, see "Enabling automatic update checks."
-
SSH into Ihre GitHub Enterprise Server-Instanz.
$ ssh -p 122 admin@HOSTNAME
-
Browse to the GitHub Enterprise Server Releases page. Next to the release you are upgrading to, click Download, then click the Upgrading tab. Kopieren Sie die URL für das Upgrade-Hotpackage (Datei .hpkg).
-
Download the upgrade package to Ihre GitHub Enterprise Server-Instanz using
curl
: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
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.
-
Connect to the replica instance over SSH as the "admin" user on port 122:
$ ssh -p 122 admin@replica-host
-
Verify the upgrade by running:
$ ghe-version
Hotpatch-Installation rückgängig machen
If a hotpatch installation introduces any problems or unexpected behavior, you can use the ghe-upgrade --allow-patch-rollback
command to install a regular upgrade package (.pkg) of the previous 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
Note: If you've enabled automatic update checks, you don't need to download the upgrade package and can use the file that was automatically downloaded. For more information, see "Enabling automatic update checks."
-
SSH into Ihre GitHub Enterprise Server-Instanz.
$ ssh -p 122 admin@HOSTNAME
-
Browse to the GitHub Enterprise Server Releases page. Next to the release you are upgrading to, click Download, then click the Upgrading tab. Wählen Sie die entsprechende Plattform aus, und kopieren Sie die URL für das Upgrade-Paket (Datei .pkg).
-
Download the upgrade package to Ihre GitHub Enterprise Server-Instanz using
curl
: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-numberCurrent 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. For more information, see "Enabling maintenance mode."
-
Connect to the replica instance over SSH as the "admin" user on port 122:
$ 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.
-
Connect to the replica instance over SSH as the "admin" user on port 122:
$ ssh -p 122 admin@replica-host
-
Verify the upgrade by running:
$ ghe-version
-
On the replica instance, to start replication, run
ghe-repl-start
. -
On the replica instance, to make sure replication services are running correctly, run
ghe-repl-status
. This command will returnOK
for all services when a successful replication is in progress and the replica has upgraded. 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. -
On the replica instance, to start replication, run
ghe-repl-start
. -
On the replica instance, to make sure replication services are running correctly, run
ghe-repl-status
. This command will returnOK
for all services when a successful replication is in progress and the replica has upgraded.
-
-
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 --allow-patch-rollback
aus, um ein Rollback einer Patch-Veröffentlichung durchzuführen. 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“.