Skip to main content

Inicializar la agrupación

Una agrupación de GitHub Enterprise Server se debe configurar con una licencia y se debe inicializar mediante un shell administrativo (SSH).

¿Quién puede utilizar esta característica?

GitHub determina la idoneidad para la agrupación en clústeres y debe habilitar la configuración de la licencia de la instancia. La agrupación en clústeres conlleva una planeación cuidadosa y una sobrecarga administrativa adicional. Para obtener más información, vea «Acerca de las agrupaciones».

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.

  1. 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.
  2. 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.

  1. Conéctate al nodo que se designará como principal de MySQL en cluster.conf. Para más información, consulta Inicializar la agrupación.
  2. En el explorador web, ve a https://<ip address>:8443/setup/.
  3. 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».
  4. En Consola de administración, configura y guarda la configuración deseada.
  5. 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.

  1. 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.
  2. Ejecute ghe-cluster-config-apply. De esta manera se validará el archivo cluster.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 denominadosghes-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.

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