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 finden Sie 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.confals primäre MySQL-Instanz gekennzeichnet wird. Weitere Informationen finden Sie 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 finden Sie unter Herunterladen 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 finden Sie unter Cluster initialisieren.
- Führe auf dem ersten Knoten, der konfiguriert wurde,
ghe-cluster-config-initaus. 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 finden Sie 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 findest du unter Konfigurieren des Hostnamens für deine Instanz.
- 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