Skip to main content
Skip to content

Automatisieren eines Upgrades

Sie können Upgradevorgänge mithilfe der REST-API oder einer GitHub CLI Erweiterung automatisieren.

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

Automatisieren eines Upgrades mithilfe der REST-API

  1. 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"}'
    
  2. 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/status
    

    Warten Sie, bis status sie angezeigt wird COMPLETED.

  3. 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"}'
    
  4. Ü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``completed angezeigt wird und is_running``false angezeigt wird.

  5. 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}'
    
  6. 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"}'
    
  7. 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
    
  8. 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

  1. Laden Sie das Upgradepaket herunter. Um eine bestimmte Version herunterzuladen, geben Sie das --version Kennzeichen 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
    
  2. Vergewissern Sie sich, dass der Download abgeschlossen ist, bevor Sie fortfahren.

    gh es upgrade download status
    

    Warten Sie, bis status``COMPLETED anzeigt.

  3. Wenden Sie die Vorphase des Upgrades an.

    gh es upgrade apply --version VERSION --phase pre-upgrade
    
  4. Überwachen Sie die Phase vor dem Upgrade, bis sie abgeschlossen ist.

    gh es upgrade status --verbose
    

    Warten Sie, bis status``completed anzeigt und is_running``false anzeigt.

  5. Aktivieren Sie die Wartungsmodus.

    gh es maintenance set --enabled true
    
  6. Führen Sie die Upgradephase aus.

    gh es upgrade apply --version VERSION --phase upgrade
    
  7. Vergewissern Sie sich, dass die Version aktualisiert wurde.

    gh es release version
    
  8. 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

  1. Laden Sie das Paket auf alle Knoten herunter.

    gh es upgrade download --version VERSION
    
  2. Warten Sie, bis der Download auf allen Knoten abgeschlossen ist.

    gh es upgrade download status
    
  3. 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
    
  4. Warten Sie, bis die Phase vor dem Upgrade abgeschlossen ist.

    gh es upgrade status --verbose
    
  5. Aktivieren Sie die Wartungsmodus.

    gh es maintenance set --enabled true
    
  6. Stoppen Sie die Replikation auf dem Replikat.

    ghe-repl-stop
    
  7. 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
    
  8. 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
    
  9. Starten Sie die Replikation erneut im Replikat.

    ghe-repl-start
    
  10. Ü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

  1. 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"}'
    
  2. 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
    
  3. 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"}'
    
  4. 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"
    
  5. 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}'
    
  6. Stoppen Sie die Replikation auf dem Replikat.

    ghe-repl-stop
    
  7. 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"
    
  8. 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"
    
  9. Starten Sie die Replikation erneut im Replikat.

    ghe-repl-start
    
  10. Ü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}'