Acerca de la inicialización de un clúster de GitHub Enterprise Server
Para implementar un clúster GitHub Enterprise Server en el entorno, debes instalar GitHub Enterprise Server, cargar una licencia habilitada para clúster, configurar el primer nodo e inicializar el nodo con un archivo de configuración.
Note
La agrupación en clústeres de GitHub Enterprise Server se debe configurar con HTTPS.
Instalar GitHub Enterprise Server
Para empezar a configurar el clúster, instala el dispositivo GitHub Enterprise Server en la máquina virtual (VM) de cada nodo y, a continuación, configura una dirección IP.
- En cada nodo de agrupación, suministra e instala GitHub Enterprise Server. Para más información, consulta Configurar una instancia del servidor de GitHub Enterprise.
- Mediante el shell administrativo o DHCP, configura solo la dirección IP de cada nodo. No configures los otros parámetros.
Configurar el primer nodo
En el nodo que funcionará como nodo MySQL principal, instala la licencia de GitHub Enterprise Server.
- Conéctate al nodo que se designará como principal de MySQL en
cluster.conf
. Para más información, consulta Inicializar la agrupación. - En el explorador web, ve a
https://<ip address>:8443/setup/
. - En el prompt, carga tu archivo de licencia y configura una contraseña de consola de administración. Para obtener más información, vea «Administrar tu licencia de GitHub Enterprise».
- En Consola de administración, configura y guarda la configuración deseada.
- La instancia se reiniciará automáticamente.
Inicializar la agrupación
Para inicializar el clúster, necesitas un archivo de configuración del clúster (cluster.conf
). Para más información, consulta Inicializar la agrupación.
- Desde el primer nodo que se configuró, ejecuta
ghe-cluster-config-init
. De esta manera, se inicializará la agrupación si existen nodos en el archivo de configuración de la agrupación que no están configurados. - Ejecute
ghe-cluster-config-apply
. De esta manera se validará el archivocluster.conf
, se aplicará la configuración a cada archivo del nodo y se traerán los servicios configurados en cada nodo.
Para comprobar el estado de un clúster en ejecución, usa el comando ghe-cluster-status
.
Acerca del archivo de configuración de la agrupación
El archivo de configuración del clúster (cluster.conf
) define los nodos del clúster y qué servicios ejecutan.
Para más información, consulta Acerca de los nodos de agrupación.
En este ejemplo, cluster.conf
define un clúster con 11 nodos.
- Dos nodos denominados
ghes-front-end-node-\*
ejecutan los servicios responsables de responder a las solicitudes de cliente. - Tres nodos denominados
ghes-database-node-\*
ejecutan los servicios responsables del almacenamiento, recuperación y replicación de datos de una base de datos. - Tres nodos denominados
ghes-search-node-\*
ejecutan los servicios responsables de la funcionalidad de búsqueda. - Tres nodos denominados
ghes-storage-node-\*
ejecutan los servicios responsables del almacenamiento, recuperación y replicación de datos.
Debes elegir un nombre de host válido y único y una dirección IPv4 para cada nodo. Para asegurarse de que los nodos se pueden resolver localmente entre sí, GitHub Enterprise Server agregará un registro para el nombre de host de cada nodo a /etc/hosts
en cada nodo.
- Para más información sobre los nombres de host válidos para GitHub Enterprise Server, consulta Configuración del nombre de host para la instancia.
- Cada dirección IPv4 debe ser una dirección en una red privada. Consulta RFC 1918 en el sitio web de IETF.
Especifica el primer nodo de clúster que configuraste como principal de MySQL mediante mysql-server
y 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
Crea el archivo /data/user/common/cluster.conf
en el primer nodo configurado. Por ejemplo, al usar vim
:
ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf