À propos de l’initialisation d’un GitHub Enterprise Server cluster
Pour déployer un GitHub Enterprise Server cluster dans votre environnement, vous devez installer GitHub Enterprise Server, charger une licence prenant en charge le cluster, configurer le premier nœud et initialiser le nœud avec un fichier de configuration.
Remarque
GitHub Enterprise Server doit être configuré avec HTTPS.
Installation de GitHub Enterprise Server
Pour démarrer la configuration du cluster, installez l’appliance GitHub Enterprise Server sur la machine virtuelle de chaque nœud, puis configurez une adresse IP.
- Sur chaque nœud de cluster, provisionnez et installez GitHub Enterprise Server. Pour plus d’informations, consultez « Configuration d’une instance GitHub Enterprise Server ».
- En utilisant l’interpréteur de commandes d’administration ou DHCP, configurez uniquement l’adresse IP de chaque nœud. Ne configurez pas d’autres paramètres.
Configuration du premier nœud
Sur le nœud qui fonctionnera comme votre nœud MySQL principal, installez votre GitHub Enterprise Server licence.
- Connectez-vous au nœud qui sera désigné comme nœud principal MySQL dans
cluster.conf. Pour plus d’informations, consultez « Initialisation du cluster ». - Dans votre navigateur web, accédez à
https://<ip address>:8443/setup/. - À l’invite, chargez votre fichier de licence et définissez un mot de passe pour la console de gestion. Pour plus d’informations, consultez « Téléchargement de votre licence pour GitHub Entreprise ».
- Dans Console de gestion, configurez et enregistrez les paramètres souhaités.
- L’instance redémarre automatiquement.
Initialisation du cluster
Pour initialiser le cluster, vous avez besoin d’un fichier de configuration de cluster (cluster.conf). Pour plus d’informations, consultez « Initialisation du cluster ».
- À partir du premier nœud qui a été configuré, exécutez
ghe-cluster-config-init. Le cluster est alors initialisé si des nœuds ne sont pas configurés dans le fichier de configuration de cluster. - Exécutez
ghe-cluster-config-apply. Cette commande valide le fichiercluster.conf, applique la configuration à chaque fichier de nœud et fait apparaître les services configurés sur chaque nœud.
Pour vérifier l’état d’un cluster en cours d’exécution, utilisez la commande ghe-cluster-status.
À propos du fichier de configuration de cluster
Le fichier de configuration de cluster (cluster.conf) définit les nœuds qui composent le cluster ainsi que les services qu’ils exécutent.
Pour plus d’informations, consultez « À propos des nœuds de cluster ».
Cet exemple de cluster.conf définit un cluster à 11 nœuds.
- Deux nœuds appelés
ghes-front-end-node-\*exécutent des services chargés de répondre aux demandes des clients. - Trois nœuds appelés
ghes-database-node-\*exécutent des services chargés du stockage, de la récupération et de la réplication des données de base de données. - Trois nœuds appelés
ghes-search-node-\*exécutent des services chargés des fonctionnalités de recherche. - Trois nœuds appelés
ghes-storage-node-\*exécutent des services chargés du stockage, de la récupération et de la réplication des données.
Vous devez choisir un nom d’hôte valide et unique ainsi qu’une adresse IPv4 pour chaque nœud. Pour que les nœuds puissent se résoudre localement entre eux, GitHub Enterprise Server ajoutera une entrée pour le nom d’hôte de chaque nœud dans /etc/hosts sur chaque nœud.
- Pour plus d’informations sur les noms d’hôte valides pour GitHub Enterprise Server, consultez Configuration du nom d'hôte pour votre instance.
- Chaque adresse IPv4 doit correspondre à une adresse sur un réseau privé. Voir RFC 1918 sur le site web IETF.
Spécifiez le premier nœud de cluster que vous avez configuré comme nœud principal MySQL via mysql-server et mysql-master.
[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
Créez le fichier /data/user/common/cluster.conf sur le premier nœud configuré. Par exemple, en utilisant vim :
ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf