Informationen zur Initialisierung eines GitHub Enterprise Server-Clusters
Um einen GitHub Enterprise Server-Cluster in deiner Umgebung bereitzustellen, musst du GitHub Enterprise Server installieren, eine clusterfähige Lizenz hochladen, den ersten Knoten konfigurieren und diesen mit einer Konfigurationsdatei initialisieren.
Hinweis: GitHub Enterprise Server-Clustering muss mit HTTPS konfiguriert werden.
GitHub Enterprise Server installieren
Um mit dem Einrichten des Clusters zu beginnen, installiere die GitHub Enterprise Server-Appliance auf dem virtuellen Computer (VM) jedes Knotens, und konfiguriere dann eine IP-Adresse.
- Stelle auf jedem Clusterknoten GitHub Enterprise Server bereit, und installiere es. Weitere Informationen findest du unter GitHub Enterprise Server-Instanz einrichten.
- Konfiguriere mithilfe der Verwaltungsshell oder DHCP nur die IP-Adresse jedes Knotens. Konfiguriere keine anderen Einstellungen.
Ersten Knoten konfigurieren
Installiere deine GitHub Enterprise Server-Lizenz auf dem Knoten, der als primärer MySQL-Knoten fungiert.
- Stelle eine Verbindung mit dem Knoten her, der in
cluster.conf
als primäre MySQL-Instanz gekennzeichnet wird. Weitere Informationen findest du unter Cluster initialisieren. - Wechsle in deinem Webbrowser zu
https://<ip address>:8443/setup/
. - Lade an der Eingabeaufforderung Deine Lizenzdatei hoch, und lege das Passwort für die Managementkonsole fest. Weitere Informationen findest du unter Verwalten deiner Lizenz für GitHub Enterprise.
- Konfiguriere und speichere deine gewünschten Einstellungen in der Verwaltungskonsole.
- Die Instanz wird automatisch neu gestartet.
Cluster initialisieren
Um den Cluster zu initialisieren, benötigst du eine Clusterkonfigurationsdatei (cluster.conf
). Weitere Informationen findest du unter Cluster initialisieren.
- Führe auf dem ersten Knoten, der konfiguriert wurde,
ghe-cluster-config-init
aus. Dadurch wird der Cluster initialisiert, wenn in der Clusterkonfigurationsdatei nicht konfigurierte Knoten vorhanden sind. - Führe aus
ghe-cluster-config-apply
. Dieser Befehl validiert die Dateicluster.conf
, wendet die Konfiguration auf jede Knotendatei an und lädt die konfigurierten Dienste auf jeden Knoten.
Um den Status eines ausgeführten Clusters zu überprüfen, verwende den Befehl ghe-cluster-status
.
Informationen zur Clusterkonfigurationsdatei
Die Clusterkonfigurationsdatei (cluster.conf
) definiert die Knoten im Cluster und die von ihnen ausgeführten Dienste.
Weitere Informationen findest du unter Informationen zu Clusterknoten.
Diese cluster.conf
-Beispieldatei definiert einen Cluster mit 11 Knoten.
- Zwei Knoten mit dem Namen
ghes-front-end-node-\*
führen die für die Reaktion auf Clientanforderungen zuständigen Dienste aus - Drei Knoten mit dem Namen
ghes-database-node-\*
führen Dienste aus, die für die Speicherung, den Abruf und die Replikation von Datenbankdaten verantwortlich sind - Drei Knoten mit dem Namen
ghes-search-node-\*
führen Dienste aus, die für die Suchfunktionalität verantwortlich sind - Drei Knoten mit dem Namen
ghes-storage-node-\*
führen Dienste aus, die für die Speicherung, den Abruf und die Replikation von Daten verantwortlich sind
Für jeden Knoten müssen Sie einen gültigen und eindeutigen Hostnamen und eine IPv4-Adresse auswählen. Damit die Knoten gegenseitig lokal auflösbar sind, fügt GitHub Enterprise Server den /etc/hosts
auf jedem Knoten einen Eintrag für den Hostnamen der einzelnen Knoten hinzu.
- Weitere Informationen zu gültigen Hostnamen für GitHub Enterprise Server finden Sie unter „Configuring the hostname for your instance“.
- Jede IPv4-Adresse muss eine Adresse in einem privaten Netzwerk sein. Siehe dazu RFC 1918 auf der IETF-Website.
Gib den ersten Clusterknoten an, den du über mysql-server
und mysql-master
als primär MySQL-Instanz konfiguriert hast.
[cluster]
mysql-master = ghes-database-node-1
redis-master = ghes-database-node-1
primary-datacenter = primary
[cluster "ghes-front-end-node-1"]
hostname = ghes-front-end-node-1
ipv4 = 192.168.0.2
# ipv6 = fd12:3456:789a:1::2
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-front-end-node-2"]
hostname = ghes-front-end-node-2
ipv4 = 192.168.0.3
# ipv6 = fd12:3456:789a:1::3
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-database-node-1"]
hostname = ghes-database-node-1
ipv4 = 192.168.0.4
# ipv6 = fd12:3456:789a:1::4
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-2"]
hostname = ghes-database-node-2
ipv4 = 192.168.0.5
# ipv6 = fd12:3456:789a:1::5
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-3"]
hostname = ghes-database-node-3
ipv4 = 192.168.0.6
# ipv6 = fd12:3456:789a:1::6
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-search-node-1"]
hostname = ghes-search-node-1
ipv4 = 192.168.0.7
# ipv6 = fd12:3456:789a:1::7
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-2"]
hostname = ghes-search-node-2
ipv4 = 192.168.0.8
# ipv6 = fd12:3456:789a:1::8
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-3"]
hostname = ghes-search-node-3
ipv4 = 192.168.0.9
# ipv6 = fd12:3456:789a:1::9
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-storage-node-1"]
hostname = ghes-storage-node-1
ipv4 = 192.168.0.10
# ipv6 = fd12:3456:789a:1::10
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-2"]
hostname = ghes-storage-node-2
ipv4 = 192.168.0.11
# ipv6 = fd12:3456:789a:1::11
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-3"]
hostname = ghes-storage-node-3
ipv4 = 192.168.0.12
# ipv6 = fd12:3456:789a:1::12
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
Erstelle die Datei /data/user/common/cluster.conf
auf dem konfigurierten ersten Knoten. Beispielsweise gilt bei Verwendung von vim
:
ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf