Skip to main content

Cette version de GitHub Enterprise Server n'est plus disponible depuis le 2024-03-26. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

Initialisation du cluster

Un cluster GitHub Enterprise Server doit être configuré avec une licence et initialisé à l’aide de l’interpréteur de commandes d’administration (SSH).

Qui peut utiliser cette fonctionnalité ?

GitHub détermine l’éligibilité au clustering et doit activer la configuration de la licence de votre instance. Le clustering nécessite une planification minutieuse et une surcharge administrative supplémentaire. Pour plus d’informations, consultez « À propos du clustering ».

À propos de l’initialisation d’un cluster GitHub Enterprise Server

Pour déployer un cluster GitHub Enterprise Server dans votre environnement, vous devez installer GitHub Enterprise Server, charger une licence compatible cluster, configurer le premier nœud et initialiser le nœud avec un fichier de configuration.

Remarque : le clustering GitHub Enterprise Server doit être configuré avec HTTPS.

Installation de GitHub Enterprise Server

Pour commencer à configurer le cluster, installez l’appliance GitHub Enterprise Server sur la machine virtuelle de chaque nœud, puis configurez une adresse IP.

  1. Sur chaque nœud du cluster, provisionnez et installez GitHub Enterprise Server. Pour plus d’informations, consultez « Configuration d’une instance GitHub Enterprise Server ».
  2. 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 nœud MySQL principal, installez votre licence GitHub Enterprise Server.

  1. 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 ».
  2. Dans votre navigateur web, accédez à https://<ip address>:8443/setup/.
  3. À l’invite, chargez votre fichier de licence et définissez un mot de passe pour la console de gestion. Pour plus d’informations, consultez « Gestion de votre licence pour GitHub Enterprise ».
  4. Dans la Management Console, configurez et enregistrez les paramètres de votre choix.
  5. 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 ».

  1. À 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.
  2. Exécutez ghe-cluster-config-apply. Cette commande valide le fichier cluster.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 garantir que les nœuds peuvent être résolus localement les uns par rapport aux autres, GitHub Enterprise Server ajoute un enregistrement pour chaque nom d’hôte à /etc/hosts sur chaque nœud.

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