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, überprüfen Sie, ob Sie sich für eine kostenlose Fünf-Platz-Entwicklerlizenz qualifizieren. 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 showing the GitHub Enterprise Server on VMware installation options.

    Screenshot showing the Deploy the OVA Template menu option.

  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 jetzt alle Standardwerte aus (Details, die später bearbeitet werden sollen), und warten Sie, bis die OVA importiert wird.

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

    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 of the Install GitHub Enterprise window.

Nachdem der neu bereitgestellte virtuelle Computer (VM) eingeschaltet ist, konfigurieren Sie ihn über Ihren Browser. Sie müssen Ihre Lizenzdatei hochladen und ein Verwaltungskonsole Kennwort festlegen. Sie sollten dieses Kennwort unbedingt notieren und an einem sicheren Ort aufbewahren.

Screenshot of the GitHub Enterprise SSH access screen to add a new SSH key.

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 showing the settings being applied to your instance.

  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 einem Speicherkontotyp von BlobStorage erstellen.

    Screenshot showing the instance details to enter for provisioning an Azure Blob Storage account.

  4. Nachdem die neue BlobStorage-Ressourcenbereitstellung abgeschlossen ist, speichern Sie die Verbindungszeichenfolge (verfügbar unter Access-Schlüsseln), um sie später zu verwenden.

  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 showing the Create admin account for GitHub Enterprise.

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 eine beliebige Stelle für GitHub-Aktionen, die mit Azure VMware Solution ausgeführt werden sollen.

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

    Screenshot showing the virtual machine name and location to provision a new VM.

  2. Fahren Sie mit dem Setup fort, indem Sie die Computeressource, den Speicher und die Kompatibilität auswählen.

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

    Screenshot showing the Guest OS Family and Guest OS version to install on the VM.

  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 weitere Software zu installieren, die von Aktionen auf GitHub Enterprise Server benötigt wird.

    ghe-actions-precheck -p azure -cs "$CONNECTION\_STRING"
    
  6. Aktivieren Sie Aktionen, und führen Sie die Konfiguration erneut aus.

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

  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 showing the GitHub Actions runner registration and settings.

  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 of how to edit access for the self-hosted runners.

(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 of the Server can use actions from GitHub.com in workflow runs Enabled.

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.

Verwenden Sie octokit/request-action in diesem grundlegenden Workflow, um ein Problem auf GitHub mithilfe der API zu öffnen.

Screenshot of an example workflow.

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 of an alternative example workflow.

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

    Screenshot of another alternative example workflow.

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

    Screenshot of an executed example workflow.

    Sie können sehen, dass sie verarbeitet wird.

    Screenshot of the workflow processed by runner.

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

Screenshot of the Hello world issue in GitHub created by github-actions.

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 die Einrichtung von GitHub Enterprise Server in Ihrer privaten Azure VMware Solution-Cloud behandelt haben, erfahren Sie mehr über Folgendes: