Freigeben über


Konfigurieren von GitHub Enterprise Server in Azure VMware Solution

In diesem Artikel erfahren Sie, wie Sie GitHub Enterprise Server, die „lokale“ Version von GitHub.com, in Ihrer privaten Azure VMware Solution-Cloud einrichten. Das Szenario gilt für eine GitHub Enterprise Server-Instanz mit Unterstützung von bis zu 3.000 Entwicklern, die bis zu 25 Aufträge pro Minute in GitHub Actions ausführen. Dazu gehört die Einrichtung von Features wie GitHub Actions (bei der Erstellung dieses Dokuments lediglich als Vorschau verfügbar). Informationen zum Anpassen der Einrichtung an Ihre speziellen Anforderungen finden Sie in den Anforderungen zum Installieren von GitHub Enterprise Server unter VMware.

Voraussetzungen

Für GitHub Enterprise Server ist ein gültiger Lizenzschlüssel erforderlich. Sie können sich für eine Testlizenz registrieren. Wenn Sie die Funktionen von GitHub Enterprise Server über eine Integration erweitern möchten, können Sie eine kostenlose Entwicklerlizenz für fünf Arbeitsplätze beantragen. Sie können sich im Rahmen des GitHub-Partnerprogramms für diese Lizenz bewerben.

Installieren von GitHub Enterprise Server unter VMware

  1. Laden Sie die aktuelle Version von GitHub Enterprise Server für VMware ESXi/vSphere (OVA) herunter, und stellen Sie die heruntergeladene OVA-Vorlage bereit.

    Screenshot: Optionen der GitHub Enterprise Server-Installation in VMware

    Screenshot: Menüoption für das Bereitstellen der OVA-Vorlage

  2. Geben Sie einen erkennbaren Namen für den neuen virtuellen Computer an, z. B. GitHubEnterpriseServer. Sie müssen keine Versionsdetails in den VM-Namen einfügen, da diese Details beim Upgrade der Instanz belanglos werden.

  3. Wählen Sie vorerst alle Standardwerte aus (diese Details in Kürze werden bearbeitet), und warten Sie, bis die OVA importiert wurde.

  4. Passen Sie die Hardwarekonfiguration nach dem Import Ihren Anforderungen entsprechend an. In unserem Beispielszenario wird die folgende Konfiguration benötigt.

    Resource Standardeinrichtung Standardeinrichtung + „Beta-Features“ (Actions)
    vCPUs 4 8
    Arbeitsspeicher 32 GB 61 GB
    Angeschlossener Speicher 250 GB 300 GB
    Stammspeicher 200 GB 200 GB

    Ihre Anforderungen können variieren. Weitere Informationen finden Sie in den Überlegungen zur Hardware bei der Installation von GitHub Enterprise Server unter VMware. Informationen zum Anpassen der Hardwarekonfiguration abhängig von der jeweiligen Situation finden Sie in der Beschreibung zum Hinzufügen von CPU- oder Arbeitsspeicherressourcen für VMware.

Konfigurieren der GitHub Enterprise Server-Instanz

Screenshot: Fenster „GitHub Enterprise installieren“

Wenn der neu bereitgestellte virtuelle Computer hochgefahren ist, konfigurieren Sie ihn über Ihren Browser. Sie müssen Ihre Lizenzdatei hochladen und ein Kennwort für die Verwaltungskonsole festlegen. Sie sollten dieses Kennwort unbedingt notieren und an einem sicheren Ort aufbewahren.

Screenshot: GitHub Enterprise-Bildschirm für SSH-Zugriff zum Hinzufügen eines neuen SSH-Schlüssels

Es wird empfohlen, zumindest die folgenden Schritte auszuführen:

  1. Laden Sie einen öffentlichen SSH-Schlüssel in die Verwaltungskonsole hoch, damit Sie über SSH auf die Verwaltungsshell zugreifen können.

  2. Konfigurieren Sie TLS für Ihre Instanz, damit Sie ein Zertifikat verwenden können, das von einer vertrauenswürdigen Zertifizierungsstelle signiert wurde. Wenden Sie Ihre Einstellungen an.

    Screenshot: Anwenden der Einstellungen auf Ihre Instanz

  3. Während die Instanz neu gestartet wird, konfigurieren Sie den Blobspeicher für GitHub Actions.

    Um GitHub Actions in GitHub Enterprise Server (derzeit als "Beta"-Feature verfügbar) zu aktivieren, ist ein externer Blobspeicher erforderlich. Actions verwendet diesen externen Blobspeicher zum Speichern von Artefakten und Protokollen. GitHub Actions in GitHub Enterprise Server unterstützt u. a. Azure Blob Storage als Speicheranbieter. Sie müssen ein neues Azure-Speicherkonto mit dem Speicherkontotyp BlobStorage erstellen.

    Screenshot: einzugebende Informationen zur Instanz beim Bereitstellen eines Azure Blob Storage-Kontos

  4. Sobald die Bereitstellung der neuen BlobStorage-Ressource abgeschlossen ist, speichern Sie die Verbindungszeichenfolge (diese finden Sie unter „Zugriffsschlüssel“) für die spätere Verwendung.

  5. Nachdem die Instanz neu gestartet wurde, erstellen Sie ein neues Administratorkonto auf der Instanz. Sie sollten das Kennwort dieses Benutzers ebenfalls unbedingt notieren und sicher aufbewahren.

    Screenshot: GitHub Enterprise-Bildschirm zum Erstellen eines Administratorkontos

Weitere Konfigurationsschritte

Zum Schützen Ihrer Instanz für die Verwendung in der Produktion werden die folgenden optionalen Einrichtungsschritte empfohlen:

  1. Konfigurieren Sie die Hochverfügbarkeit zum Schutz vor:

    • Softwareabstürzen (Betriebssystem- oder Anwendungsebene)
    • Hardwarefehlern (Speicher, CPU, RAM usw.)
    • Fehlern im Virtualisierungshostsystem
    • Trennung vom logischen oder physischen Netzwerk
  2. Konfigurieren Sie Sicherungsdienstprogramme, die versionierte Momentaufnahmen für die Notfallwiederherstellung bereitstellen, die getrennt von der primären Instanz verfügbar gehostet werden.

  3. Richten Sie die Isolation von Unterdomänen unter Verwendung eines gültigen TLS-Zertifikats ein, um Cross-Site Scripting und andere damit verbundene Sicherheitsrisiken zu minimieren.

Einrichten des GitHub Actions-Runners

An diesem Punkt sollten Sie über eine aktive Instanz von GitHub Enterprise Server verfügen, für die ein Administratorkonto erstellt wurde. Darüber hinaus sollten Sie auch über externen Blobspeicher verfügen, den GitHub Actions zur dauerhaften Speicherung verwendet.

Erstellen Sie einen Computer, in dem GitHub Actions ausgeführt wird. Verwenden Sie dafür ebenfalls Azure VMware Solution.

  1. Stellen Sie eine neue VM im Cluster bereit, und verwenden Sie als Basis ein neues Release von Ubuntu Server.

    Screenshot: Name und Speicherort der VM zur Bereitstellung einer neuen VM

  2. Fahren Sie mit dem Setup fort, und wählen Sie Computeressource, Speicher und Kompatibilität aus.

  3. Wählen Sie das Gastbetriebssystem aus, das auf der VM installiert werden soll.

    Screenshot: Familie und Version des Gastbetriebssystems, das auf der VM installiert werden soll

  4. Schalten Sie den virtuellen Computer ein, nachdem er erstellt wurde, und stellen Sie über SSH eine Verbindung her.

  5. Installieren Sie die Anwendung Actions-Runner, die einen Auftrag aus einem GitHub Actions-Workflow ausführt. Ermitteln Sie die neueste Version der Linux x64-Version des Actions-Runners (entweder auf der Seite mit den Versionen oder durch Ausführen des folgenden Kurzskripts) und laden Sie diese Version herunter. Für dieses Skript müssen sowohl curl als auch jq in der VM vorhanden sein.

    LATEST\_RELEASE\_ASSET\_URL=$( curl https://api.github.com/repos/actions/runner/releases/latest | \
    
    jq -r '.assets | .[] | select(.name | match("actions-runner-linux-arm64")) | .url' )
    
    DOWNLOAD\_URL=$( curl $LATEST\_RELEASE\_ASSET\_URL | \
    
    jq -r '.browser\_download\_url' )
    
    curl -OL $DOWNLOAD\_URL
    

    Sie sollten jetzt über eine lokale Datei in Ihrer VM verfügen: actions-runner-linux-arm64-*.tar.gz. Extrahieren Sie diese TAR-Datei lokal:

    tar xzf actions-runner-linux-arm64-\*.tar.gz
    

    Dadurch werden einige Dateien lokal entpackt, z. B. die Skripte config.sh und run.sh.

Aktivieren von GitHub Actions

Konfigurieren und aktivieren Sie GitHub Actions auf der GitHub Enterprise Server-Instanz.

  1. Greifen Sie über SSH auf die Verwaltungsshell der GitHub Enterprise Server-Instanz zu, und führen Sie dann die folgenden Befehle aus:

  2. Legen Sie eine Umgebungsvariable fest, die die Verbindungszeichenfolge für Ihren Blobspeicher enthält.

    export CONNECTION\_STRING="<your connection string from the blob storage step>"
    
  3. Konfigurieren Sie einen Actions-Speicher.

    ghe-config secrets.actions.storage.blob-provider azure
    
    ghe-config secrets.actions.storage.azure.connection-string "$CONNECTION\_STRING`      
    
  4. Wenden Sie die Einstellungen an.

    ghe-config-apply
    
  5. Führen Sie eine Vorabprüfung aus, um zusätzliche, von Actions in GitHub Enterprise Server benötigte Softwarekomponenten zu installieren.

    ghe-actions-precheck -p azure -cs "$CONNECTION\_STRING"
    
  6. Aktivieren Sie Actions, und wenden Sie die Konfiguration dann erneut an.

    ghe-config app.actions.enabled true
    
    ghe-config-apply      
    
  7. Überprüfen Sie die Integrität Ihres Blobspeichers.

    ghe-actions-check -s blob
    

    Folgendes sollte angezeigt werden: Blob Storage ist fehlerfrei.

  8. Nachdem GitHub Actions konfiguriert wurde, können Sie das Feature für Benutzer aktivieren. Melden Sie sich als Administrator bei Ihrer GitHub Enterprise Server-Instanz an, und wählen Sie das Symbol aus, das in der rechten oberen Ecke jeder Seite verfügbar ist.

  9. Wählen Sie in der linken Randleiste Enterprise overview, Policies, Actions und dann die Option zum Aktivieren von GitHub Actions für alle Organisationen aus.

  10. Konfigurieren Sie den Runner über die Registerkarte Selbstgehostete Runner. Wählen Sie aus der Dropdownliste Neu hinzufügen und dann Neuer Runner aus. Es wird eine Reihe von Befehlen angezeigt, die ausgeführt werden können.

  11. Kopieren Sie den Befehl zum Konfigurieren des Runners, z. B.:

    ./config.sh --url https://10.1.1.26/enterprises/octo-org --token AAAAAA5RHF34QLYBDCHWLJC7L73MA
    
  12. Kopieren Sie den config.sh-Befehl, und fügen Sie ihn in eine Sitzung im (zuvor erstellten) Actions-Runner ein.

    Screenshot: Registrierung und Einstellungen des GitHub Actions-Runners

  13. Verwenden Sie den Befehl ./run.sh, um den Runner auszuführen:

    Tipp

    Um diesen Runner für Organisationen in Ihrem Unternehmen verfügbar zu machen, bearbeiten Sie den entsprechenden Zugriff für Organisationen. Sie können den Zugriff auf einen Teil der Organisationen und sogar auf bestimmte Repositorys beschränken.

    Screenshot: Bearbeiten des Zugriffs für selbstgehostete Runner

(Optional) Konfigurieren von GitHub Connect

Obwohl dieser Schritt optional ist, wird er empfohlen, wenn Sie beabsichtigen, auf GitHub.com verfügbare Open-Source-Aktionen zu nutzen. Auf diese Weise können Sie auf der Arbeit anderer Benutzer aufbauen, indem Sie in Ihren Workflows auf diese wiederverwendbaren Aktionen verweisen.

Führen Sie die Schritte in den Anweisungen zum Aktivieren des automatischen Zugriffs auf GitHub.com-Aktionen mit GitHub Connect aus, um GitHub Connect zu aktivieren.

Wählen Sie die Option Server to use actions from GitHub.com in workflow runs aus, nachdem GitHub Connect aktiviert wurde.

Screenshot: aktivierte Option „Server kann Aktionen von GitHub.com in Workflowausführungen verwenden“

Einrichten und Ausführen Ihres ersten Workflows

Nachdem GitHub Actions und GitHub Connect eingerichtet wurden, können wir all unsere Mühen vorteilhaft nutzen. Nachstehend sehen Sie ein Beispiel für einen Workflow, der auf octokit/request-action verweist, sodass wir GitHub über Interaktionen mithilfe der GitHub-API und Unterstützung von GitHub Actions "skriptgesteuert" verwenden können.

In diesem einfachen Workflow verwenden wir octokit/request-action, um ein GitHub-Issue mithilfe der API zu öffnen.

Screenshot: Beispielworkflow

Hinweis

GitHub.com hostet die Aktion. Wird diese Aktion allerdings auf GitHub Enterprise Server ausgeführt, wird automatisch die GitHub Enterprise Server-API verwendet.

Wenn Sie GitHub Connect nicht aktivieren möchten, können Sie den folgenden alternativen Workflow verwenden.

Screenshot: alternativer Beispielworkflow

  1. Navigieren Sie zu einem Repository in der Instanz, und fügen Sie den obigen Workflow als .github/workflows/hello-world.yml hinzu.

    Screenshot: weiterer alternativer Beispielworkflow

  2. Warten Sie auf der Registerkarte Actions für Ihr Repository, bis der Workflow ausgeführt wird.

    Screenshot: ausgeführter Beispielworkflow

    Sie können die Ausführung sehen.

    Screenshot: durch den Runner verarbeiteter Workflow

Wenn alles erfolgreich ausgeführt wurde, sollte in Ihrem Repository ein neues Issue mit dem Titel "Hello World" angezeigt werden.

Screenshot: durch github-actions erstelltes Hello World-Issue in GitHub

Herzlichen Glückwunsch! Sie haben soeben ihren ersten Actions-Workflow in GitHub Enterprise Server ausgeführt, der in Ihrer privaten Azure VMware Solution-Cloud ausgeführt wird.

In diesem Artikel wurde in Ihrer privaten Azure VMware Solution-Cloud eine neue GitHub Enterprise Server-Instanz eingerichtet – das selbstgehostete Äquivalent zu GitHub.com. Die Instanz bietet Unterstützung für GitHub Actions und verwendet Azure Blob Storage zum dauerhaften Speichern von Protokollen und Artefakten. Hier wurde aber nur ein geringer Teil der Möglichkeiten aufgezeigt, die GitHub Actions bietet. Sehen Sie sich die Liste der Aktionen im Marketplace von GitHub an, oder erstellen Sie eigene Aktionen.

Nächste Schritte

Nachdem Sie nun erfahren haben, wie GitHub Enterprise Server in Ihrer privaten Azure VMware Solution-Cloud eingerichtet wird, informieren Sie sich über die folgenden Themen: