GitHub Enterprise Server auf Google Cloud Platform installieren

Um GitHub Enterprise Server auf Google Cloud Platform zu installieren, müssen Sie es auf einem unterstützten Maschinentyp bereitstellen und eine persistente Standard-Disk oder ein persistentes SSD verwenden.

Vorrausetzungen

  • Sie müssen über eine GitHub Enterprise-Lizenzdatei verfügen. Besuche enterprise.github.com, um eine vorhandene Lizenzdatei herunterzuladen oder eine Testlizenz anzufordern. Weitere Informationen findest Du unter „Deine GitHub Enterprise-Lizenz verwalten."
  • Sie müssen über ein Google Cloud Platform-Konto verfügen, mit dem VM-Instanzen (virtuelle Maschine) in Google Compute Engine (GCE) gestartet werden können. Weitere Informationen finden Sie auf der „Google Cloud Platform-Website und in der Google Cloud Platform-Dokumentation“.
  • Die meisten Aktionen, die zum Starten Ihrer Instanz erforderlich sind, können auch mit der Google Cloud Platform Console ausgeführt werden. Zur Ersteinrichtung sollten Sie jedoch das Befehlszeilentool „gcloud compute“ installieren. Im Folgenden finden Sie Beispiele zur Verwendung des Befehlszeilentools „gcloud compute“. Weitere Informationen finden Sie in der Google-Dokumentation zur Installations- und Einrichtungsanleitung für „gcloud compute“.

Grundlegendes zur Hardware

Minimum requirements

We recommend different hardware configurations depending on the number of user licenses for your GitHub Enterprise Server instance. If you provision more resources than the minimum requirements, your instance will perform and scale better.

BenutzerlizenzenvCPUsArbeitsspeicherAttached-StorageRoot-Storage
Test, Demo oder 10 Benutzer mit eingeschränkten Funktionen432 GB150 GB200 GB
10–3000848 GB300 GB200 GB
3000–50001264 GB500 GB200 GB
5000–80001696 GB750 GB200 GB
8000–10000+20160 GB1000 GB200 GB

If you plan to enable GitHub Actions for the users of your instance, review the requirements for hardware, external storage, and runners in "Getting started with GitHub Actions for GitHub Enterprise Server."

For more information about adjusting resources for an existing instance, see "Increasing storage capacity" and "Increasing CPU or memory resources."

Speicher

We recommend a high-performance SSD with high input/output operations per second (IOPS) and low latency for GitHub Enterprise Server. Workloads are I/O intensive. If you use a bare metal hypervisor, we recommend directly attaching the disk or using a disk from a storage area network (SAN).

Your instance requires a persistent data disk separate from the root disk. Weitere Informationen findest Du unter „Systemübersicht“.

To configure GitHub Actions, you must provide external blob storage. For more information, see "Getting started with GitHub Actions for GitHub Enterprise Server."

You can resize your instance's root disk by building a new instance or using an existing instance. Weitere Informationen findest Du unter „Speicherkapazität erhöhen“.

CPU and memory

The CPU and memory resources that GitHub Enterprise Server requires depend on the levels of activity for users, automations, and integrations.

If you plan to enable GitHub Actions for the users of your GitHub Enterprise Server instance, you may need to provision additional CPU and memory resources for your instance. For more information, see "Getting started with GitHub Actions for GitHub Enterprise Server."

When you increase CPU resources, we recommend adding at least 6.5 GB of memory for each vCPU (up to 16 vCPUs) that you provision for the instance. When you use more than 16 vCPUs, you don't need to add 6.5 GB of memory for each vCPU, but you should monitor your instance to ensure it has enough memory.

Warning: We recommend that users configure webhook events to notify external systems of activity on GitHub Enterprise Server. Automated checks for changes, or polling, will negatively impact the performance and scalability of your instance. For more information, see "About webhooks."

For more information about monitoring the capacity and performance of GitHub Enterprise Server, see "Monitoring your appliance."

You can increase your instance's CPU or memory resources. For more information, see "Increasing CPU or memory resources."

Maschinentyp bestimmen

Bevor Sie your GitHub Enterprise Server instance auf Google Cloud Platform starten, müssen Sie den Maschinentyp ermitteln, der den Anforderungen Ihrer Organisation am besten gerecht wird. To review the minimum requirements for GitHub Enterprise Server, see "Minimum requirements."

Hinweis: Du kannst Deine CPU oder Deinen Arbeitsspeicher jederzeit hochskalieren, indem Du die Größe Deiner Instanz anpasst. Da das Anpassen Deiner CPU- oder Arbeitsspeichergröße jedoch Ausfallzeiten für Deine Benutzer bedeutet, empfehlen wir ein Over-Provisioning der zu skalierenden Ressourcen.

GitHub recommends a general-purpose, high-memory machine for GitHub Enterprise Server. For more information, see "Machine types" in the Google Compute Engine documentation.

GitHub Enterprise Server-Image auswählen

  1. Listen Sie mithilfe des Befehlszeilentools gcloud compute die öffentlichen GitHub Enterprise Server-Images auf:

    $ gcloud compute images list --project github-enterprise-public --no-standard-images
  2. Notieren Sie sich den Image-Namen für das neueste GCE-Image von GitHub Enterprise Server.

Firewall konfigurieren

GCE-VMs werden als Mitglied eines Netzwerks erstellt, das eine Firewall besitzt. Für das der GitHub Enterprise Server-VM zugeordnete Netzwerk müssen Sie die Firewall so konfigurieren, dass die in der folgenden Tabelle aufgelisteten erforderlichen Ports zugelassen werden. Weitere Informationen zu den Firewallregeln auf Google Cloud Platform finden Sie im Leitfaden „Übersicht über Firewallregeln“.

  1. Erstellen Sie mithilfe des Befehlszeilentools „gcloud compute“ das Netzwerk. Weitere Informationen finden Sie unter „gcloud compute networks create“ in der Google-Dokumentation.

    $ gcloud compute networks create NETWORK-NAME --subnet-mode auto
  2. Erstellen Sie eine Firewallregel für jeden der Ports in der folgenden Tabelle. Weitere Informationen finden Sie unter „gcloud compute firewall-rules“ in der Google-Dokumentation.

    $ gcloud compute firewall-rules create RULE-NAME \
       --network NETWORK-NAME \
       --allow tcp:22,tcp:25,tcp:80,tcp:122,udp:161,tcp:443,udp:1194,tcp:8080,tcp:8443,tcp:9418,icmp

    Diese Tabelle zeigt die erforderlichen Ports und wofür sie verwendet werden.

    PortDienstBeschreibung
    22SSHGit über SSH-Zugriff. Unterstützt das Klonen, Abrufen und Übertragen von Vorgängen an öffentliche/private Repositorys.
    25SMTPSMTP mit Verschlüsselung (STARTTLS) wird unterstützt.
    80HTTPWebanwendungszugriff. Alle Anforderungen werden an den HTTPS-Port weitergeleitet, wenn SSL aktiviert ist.
    122SSHShellzugriff auf die Instanz. Der standardmäßige SSH-Port (22) ist für den Git- und SSH-Netzwerk-Traffic der Anwendung vorgesehen.
    161/UDPSNMPFür Netzwerküberwachungs-Protokollvorgänge erforderlich.
    443HTTPSWebanwendung und Git über HTTPS-Zugriff.
    1194/UDPVPNSicherer Replikationsnetzwerktunnel in einer hochverfügbaren Konfiguration.
    8080HTTPWebbasierte Managementkonsole in Nur-Text. Nur erforderlich, wenn SSL manuell deaktiviert wird.
    8443HTTPSSichere webbasierte Managementkonsole. Für die grundlegende Installation und Konfiguration erforderlich.
    9418GitEinfacher Git-Protokollport. Nur Klon- und Abrufvorgänge zu öffentlichen Repositorys. Unencrypted network communication. If you have enabled private mode on your instance, then opening this port is only required if you also enabled anonymous Git read access. For more information, see "Enforcing repository management policies in your enterprise."

Statische IP zuordnen und mit der VM verknüpfen

Wenn es sich hierbei um eine Produktions-Appliance handelt, wird dringend empfohlen, eine statische externe IP-Adresse zu reservieren und sie der GitHub Enterprise Server-VM zuzuordnen. Andernfalls wird die öffentliche IP-Adresse der VM nach Neustarts nicht beibehalten. Weitere Informationen finden Sie im Google-Leitfaden unter „Statische externe IP-Adresse reservieren“.

In Hochverfügbarkeitskonfigurationen in der Produktion sollten primären und Replikat-Appliances separate statische IP-Adressen zugewiesen werden.

GitHub Enterprise Server-Instanz erstellen

Zum Erstellen der GitHub Enterprise Server-Instanz müssen Sie eine GCE-Instanz mit Ihrem GitHub Enterprise Server-Image erstellen und ein zusätzliches Storage-Volume für Ihre Instanzdaten anhängen. Weitere Informationen finden Sie unter „Grundlegendes zur Hardware“.

  1. Erstelle mit Hilfe des Befehlszeilen-Werkzeugs gcloud einen Datenträger, der als angehängtes Speicher-Volume für Deine Instanzdaten dient, und konfiguriere die Größe entsprechend der Anzahl Deiner Benutzerlizenzen. Weitere Informationen finden Sie unter „gcloud compute disks create“ in der Google-Dokumentation.

    $ gcloud compute disks create DATA-DISK-NAME --size DATA-DISK-SIZE --type DATA-DISK-TYPE --zone ZONE
  2. Erstellen Sie anschließend eine Instanz mit dem Namen des von Ihnen ausgewählten GitHub Enterprise Server-Images, und hängen Sie die Daten-Disk an. Weitere Informationen finden Sie unter „gcloud compute instances create“ in der Google-Dokumentation.

    $ gcloud compute instances create INSTANCE-NAME \
    --machine-type n1-standard-8 \
    --image GITHUB-ENTERPRISE-IMAGE-NAME \
    --disk name=DATA-DISK-NAME \
    --metadata serial-port-enable=1 \
    --zone ZONE \
    --network NETWORK-NAME \
    --image-project github-enterprise-public

Instanz konfigurieren

  1. Kopiere den Namen des öffentlichen DNS der virtuellen Maschine, und füge ihn in einen Webbrowser ein.
  2. Lade an der Eingabeaufforderung Deine Lizenzdatei hoch, und lege das Passwort für die Managementkonsole fest. Weitere Informationen findest Du unter „Deine GitHub Enterprise-Lizenz verwalten."
  3. Konfigurieren Sie in der Managementkonsole Ihre gewünschten Einstellungen, und speichern Sie sie. Weitere Informationen finden Sie unter „GitHub Enterprise Server-Appliance konfigurieren“.
  4. Die Instanz wird automatisch neu gestartet.
  5. Klicke auf Visit your instance (Instanz aufrufen).

Weiterführende Informationen

Did this doc help you?Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Oder, learn how to contribute.