Sie können Ihre GitHub Enterprise Server-Instanz über die Manage GitHub Enterprise Server API oder mit der gh es-Erweiterung für GitHub CLI aktualisieren. Diese Tools automatisieren den Prozess des Herunterladens des Upgradepakets, das Ausführen von Vorabupgradeprüfungen und das Anwenden der neuen Version.
Voraussetzungen
- Sichern Sie Ihre Daten mit GitHub Enterprise Server Backup Utilities.
- Planen sie ein Wartungsfenster für Endbenutzer.
- Stellen Sie sicher, dass Sie sich bei der Verwalten-API GitHub Enterprise Server authentifizieren können. Weitere Informationen findest du unter REST-API-Endpunkte für GitHub Unternehmensverwaltung.
Automatisieren eines Upgrades mithilfe der REST-API
-
Laden Sie das Upgradepaket herunter.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download \ -d '{"version":"VERSION"}' -
Vergewissern Sie sich, dass der Download abgeschlossen ist, bevor Sie fortfahren.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download/statusWarten Sie, bis
statussie angezeigt wirdCOMPLETED. -
Führen Sie die Vorab-Upgrade-Phase des Upgrades aus.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION", "phase":"pre-upgrade"}' -
Überwachen Sie die Phase vor dem Upgrade, bis sie abgeschlossen ist.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?is_verbose=true"Warten Sie, bis
status``completedangezeigt wird undis_running``falseangezeigt wird. -
Aktivieren Sie die Wartungsmodus.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":true}' -
Wenden Sie die Upgradephase der Aktualisierung an.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION", "phase":"upgrade"}' -
Vergewissern Sie sich, dass die Version aktualisiert wurde.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/version -
Deaktivieren Sie den Wartungsmodus.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":false}'
Automatisieren eines Upgrades mithilfe der GitHub CLI Erweiterung
-
Laden Sie das Upgradepaket herunter. Um eine bestimmte Version herunterzuladen, geben Sie das
--versionKennzeichen an. Andernfalls wird die neueste verfügbare Version heruntergeladen.# Download a specific version gh es upgrade download --version VERSION # Or download the latest available version gh es upgrade download -
Vergewissern Sie sich, dass der Download abgeschlossen ist, bevor Sie fortfahren.
gh es upgrade download statusWarten Sie, bis
status``COMPLETEDanzeigt. -
Wenden Sie die Vorphase des Upgrades an.
gh es upgrade apply --version VERSION --phase pre-upgrade -
Überwachen Sie die Phase vor dem Upgrade, bis sie abgeschlossen ist.
gh es upgrade status --verboseWarten Sie, bis
status``completedanzeigt undis_running``falseanzeigt. -
Aktivieren Sie die Wartungsmodus.
gh es maintenance set --enabled true -
Führen Sie die Upgradephase aus.
gh es upgrade apply --version VERSION --phase upgrade -
Vergewissern Sie sich, dass die Version aktualisiert wurde.
gh es release version -
Deaktivieren Sie den Wartungsmodus.
gh es maintenance set --enabled false
Aktualisierung einer Hochverfügbarkeitsbereitstellung
Für Instanzen mit einem Replikat mit hoher Verfügbarkeit (HA) sind die Download- und Vorabupgrade-Phasen ohne Unterbrechung und können gleichzeitig auf allen Knoten ausgeführt werden. Die UUID-Zielbestimmung ist nur für die Upgradephase selbst erforderlich, wodurch der Neustart ausgelöst wird. Damit können Sie steuern, in welcher Reihenfolge die Knoten neu gestartet werden: Aktualisieren Sie zuerst das Replikat und dann den Primärknoten.
Um Knoten-UUIDs abzurufen, führen Sie die Ausführung gh es config get-metadata oder Abfrage GET /manage/v1/config/nodesaus.
Aktualisieren einer Bereitstellung mit hoher Verfügbarkeit mithilfe der GitHub CLI
-
Laden Sie das Paket auf alle Knoten herunter.
gh es upgrade download --version VERSION -
Warten Sie, bis der Download auf allen Knoten abgeschlossen ist.
gh es upgrade download status -
Führen Sie die Phase vor dem Upgrade auf allen Knoten gleichzeitig aus. Diese Phase ist nicht störend.
gh es upgrade apply --version VERSION --phase pre-upgrade -
Warten Sie, bis die Phase vor dem Upgrade abgeschlossen ist.
gh es upgrade status --verbose -
Aktivieren Sie die Wartungsmodus.
gh es maintenance set --enabled true -
Stoppen Sie die Replikation auf dem Replikat.
ghe-repl-stop -
Führen Sie zuerst das Upgrade des primären Systems durch, was einen Neustart auslöst, und überwachen Sie dann den Fortschritt.
gh es upgrade apply --version VERSION --phase upgrade --uuid PRIMARY-UUID gh es upgrade status --uuid PRIMARY-UUID --verbose -
Aktualisieren Sie das Replikat nach Abschluss des primären Vorgangs, und überwachen Sie dann den Fortschritt.
gh es upgrade apply --version VERSION --phase upgrade --uuid REPLICA-UUID gh es upgrade status --uuid REPLICA-UUID --verbose -
Starten Sie die Replikation erneut im Replikat.
ghe-repl-start -
Überprüfen Sie den Replikationsstatus und die Version, und deaktivieren Sie dann den Wartungsmodus.
gh es replication status gh es release version gh es maintenance set --enabled false
Aktualisieren einer Bereitstellung mit hoher Verfügbarkeit mithilfe der REST-API
-
Laden Sie das Paket auf alle Knoten herunter.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download \ -d '{"version":"VERSION"}' -
Warten Sie, bis der Download auf allen Knoten abgeschlossen ist.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download/status -
Führen Sie die Phase vor dem Upgrade auf allen Knoten gleichzeitig aus. Diese Phase ist nicht störend.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION","phase":"pre-upgrade"}' -
Warten Sie, bis die Phase vor dem Upgrade abgeschlossen ist.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?is_verbose=true" -
Aktivieren Sie die Wartungsmodus.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":true}' -
Stoppen Sie die Replikation auf dem Replikat.
ghe-repl-stop -
Führen Sie zuerst das Upgrade des primären Systems durch, wodurch der Neustart ausgelöst wird, und überwachen Sie dann den Fortschritt.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION","phase":"upgrade","uuid":"PRIMARY-UUID"}' curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?uuid=PRIMARY-UUID&is_verbose=true" -
Aktualisieren Sie das Replikat nach Abschluss des primären Vorgangs, und überwachen Sie dann den Fortschritt.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION","phase":"upgrade","uuid":"REPLICA-UUID"}' curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?uuid=REPLICA-UUID&is_verbose=true" -
Starten Sie die Replikation erneut im Replikat.
ghe-repl-start -
Überprüfen Sie den Replikationsstatus und die Version, und deaktivieren Sie dann den Wartungsmodus.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/replication/status curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/version curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":false}'