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
Laden Sie die aktuelle Version von GitHub Enterprise Server für VMware ESXi/vSphere (OVA) herunter, und stellen Sie die heruntergeladene OVA-Vorlage bereit.
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.
Wählen Sie vorerst alle Standardwerte aus (diese Details in Kürze werden bearbeitet), und warten Sie, bis die OVA importiert wurde.
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
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.
Es wird empfohlen, zumindest die folgenden Schritte auszuführen:
Laden Sie einen öffentlichen SSH-Schlüssel in die Verwaltungskonsole hoch, damit Sie über SSH auf die Verwaltungsshell zugreifen können.
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.
Während die Instanz neu gestartet wird, konfigurieren Sie den Blobspeicher für GitHub Actions.
Hinweis
GitHub Actions ist derzeit als eingeschränkte Beta Version für GitHub Enterprise Server, Release 2.22 verfügbar.
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.
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.
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.
Weitere Konfigurationsschritte
Zum Schützen Ihrer Instanz für die Verwendung in der Produktion werden die folgenden optionalen Einrichtungsschritte empfohlen:
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
Konfigurieren Sie Sicherungsdienstprogramme, die versionierte Momentaufnahmen für die Notfallwiederherstellung bereitstellen, die getrennt von der primären Instanz verfügbar gehostet werden.
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
Hinweis
GitHub Actions ist derzeit als eingeschränkte Beta Version für GitHub Enterprise Server, Release 2.22 verfügbar.
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.
Stellen Sie eine neue VM im Cluster bereit, und verwenden Sie als Basis ein neues Release von Ubuntu Server.
Fahren Sie mit dem Setup fort, und wählen Sie Computeressource, Speicher und Kompatibilität aus.
Wählen Sie das Gastbetriebssystem aus, das auf der VM installiert werden soll.
Schalten Sie den virtuellen Computer ein, nachdem er erstellt wurde, und stellen Sie über SSH eine Verbindung her.
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
undrun.sh
.
Aktivieren von GitHub Actions
Hinweis
GitHub Actions ist derzeit als eingeschränkte Beta Version für GitHub Enterprise Server, Release 2.22 verfügbar.
Konfigurieren und aktivieren Sie GitHub Actions auf der GitHub Enterprise Server-Instanz.
Greifen Sie über SSH auf die Verwaltungsshell der GitHub Enterprise Server-Instanz zu, und führen Sie dann die folgenden Befehle aus:
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>"
Konfigurieren Sie einen Actions-Speicher.
ghe-config secrets.actions.storage.blob-provider azure ghe-config secrets.actions.storage.azure.connection-string "$CONNECTION\_STRING`
Wenden Sie die Einstellungen an.
ghe-config-apply
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"
Aktivieren Sie Actions, und wenden Sie die Konfiguration dann erneut an.
ghe-config app.actions.enabled true ghe-config-apply
Überprüfen Sie die Integrität Ihres Blobspeichers.
ghe-actions-check -s blob
Folgendes sollte angezeigt werden: Blob Storage ist fehlerfrei.
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.
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.
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.
Kopieren Sie den Befehl zum Konfigurieren des Runners, z. B.:
./config.sh --url https://10.1.1.26/enterprises/octo-org --token AAAAAA5RHF34QLYBDCHWLJC7L73MA
Kopieren Sie den
config.sh
-Befehl, und fügen Sie ihn in eine Sitzung im (zuvor erstellten) Actions-Runner ein.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.
(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.
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.
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.
Navigieren Sie zu einem Repository in der Instanz, und fügen Sie den obigen Workflow als
.github/workflows/hello-world.yml
hinzu.Warten Sie auf der Registerkarte Actions für Ihr Repository, bis der Workflow ausgeführt wird.
Sie können die Ausführung sehen.
Wenn alles erfolgreich ausgeführt wurde, sollte in Ihrem Repository ein neues Issue mit dem Titel "Hello World" angezeigt werden.
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: