Esta versión de GitHub Enterprise se discontinuó el 2021-06-09. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

Reemplazar un nodo de agrupación

Para reemplazar un nodo Servidor de GitHub Enterprise, debes marcar los nodos fuera de línea afectados en el archivo de configuración de la agrupación (cluster.conf) y agregar los nodos de reemplazo. Esto puede ser necesario en caso de que un nodo falle, o para agregar un nodo con más recursos a fin de aumentar el rendimiento.

Advertencia El nodo de reemplazo debe usar un nodo de nombre de host que no haya sido usado anteriormente en la agrupación para evitar conflictos.

Reemplazar un nodo funcional

  1. Aprovisiona e instala el Servidor de GitHub Enterprise con un nombre de host único en el nodo de reemplazo.

  2. Usando el shell administrativo o DHCP, configura solo la dirección IP del nodo de reemplazo. No configures los otros parámetros.

  3. Para agregar el nodo de reemplazo proporcionado recientemente, en cualquier nodo, modifica el archivo cluster.conf para eliminar el nodo fallido y agregar el nodo de reemplazo. Por ejemplo, este archivo cluster.conf modificado reemplaza el ghe-data-node-3 con el nodo proporcionado recientemente, ghe-replacement-data-node-3:

    [cluster "ghe-replacement-data-node-3"]
    hostname = ghe-replacement-data-node-3
    ipv4 = 192.168.0.7

    ipv6 = fd12:3456:789a:1::7

    git-server = true pages-server = true mysql-server = true elasticsearch-server = true redis-server = true memcache-server = true metrics-server = true storage-server = true

  4. Desde el shell administrativo del nodo con el archivo cluster.conf modificado, ejecuta ghe-cluster-config-init . Esto iniciará el nodo recién agregado en la agrupación.

  5. Desde el mismo nodo, ejecuta ghe-cluster-config-apply. Esto validará el archivo de configuración, lo copiará en cada nodo de la agrupación y configurará cada nodo según el archivo cluster.conf modificado.

  6. Si vas a tomar un nodo fuera de línea que tiene git-server = true establecido en cluster.conf, evacua el nodo. Para obtener más información, consulta "Evacuar un nodo de la agrupación".

  7. Para marcar el nodo que falló fuera de línea, en cualquier nodo, modifica el archivo de configuración de agrupación (cluster.conf) en la sección de nodo correspondiente para incluir el texto offline = true.

    Por ejemplo, este archivo cluster.conf modificado marcará el nodo ghe-data-node-3 como fuera de línea:

    [cluster "ghe-data-node-3"]
    hostname = ghe-data-node-3
    offline = true
    ipv4 = 192.168.0.6
    # ipv6 = fd12:3456:789a:1::6
    
  8. Desde el shell administrativo del nodo en el que modificaste el archivo cluster.conf, ejecuta ghe-cluster-config-init. Esto validará el archivo de configuración, lo copiará en cada nodo de la agrupación y marcará el nodo fuera de línea.

  9. Si vas a reemplazar el nodo principal de MySQL o el nodo principal de Redis, en cluster.conf, cambia el valor de mysql-master o redis-master por el nombre del nodo de reemplazo.

    Por ejemplo, este archivo cluster.conf modificado especifica un nodo de la agrupación recién aprovisionado, ghe-replacement-data-node-1, como nodo principal de MySQL y Redis:

    mysql-master = ghe-replacement-data-node-1
    redis-master = ghe-replacement-data-node-1

Reemplazar un nodo en una emergencia

  1. Aprovisiona e instala el Servidor de GitHub Enterprise con un nombre de host único en el nodo de reemplazo.

  2. Usando el shell administrativo o DHCP, configura solo la dirección IP del nodo de reemplazo. No configures los otros parámetros.

  3. Para marcar el nodo que falló fuera de línea, en cualquier nodo, modifica el archivo de configuración de agrupación (cluster.conf) en la sección de nodo correspondiente para incluir el texto offline = true.

    Por ejemplo, este archivo cluster.conf modificado marcará el nodo ghe-data-node-3 como fuera de línea:

    [cluster "ghe-data-node-3"]
    hostname = ghe-data-node-3
    offline = true
    ipv4 = 192.168.0.6
    # ipv6 = fd12:3456:789a:1::6
    
  4. Desde el shell administrativo del nodo en el que modificaste el archivo cluster.conf, ejecuta ghe-cluster-config-init. Esto validará el archivo de configuración, lo copiará en cada nodo de la agrupación y marcará el nodo fuera de línea.

  5. Para agregar el nodo de reemplazo proporcionado recientemente, en cualquier nodo, modifica el archivo cluster.conf para eliminar el nodo fallido y agregar el nodo de reemplazo. Por ejemplo, este archivo cluster.conf modificado reemplaza el ghe-data-node-3 con el nodo proporcionado recientemente, ghe-replacement-data-node-3:

    [cluster "ghe-replacement-data-node-3"]
    hostname = ghe-replacement-data-node-3
    ipv4 = 192.168.0.7

    ipv6 = fd12:3456:789a:1::7

    git-server = true pages-server = true mysql-server = true elasticsearch-server = true redis-server = true memcache-server = true metrics-server = true storage-server = true

  6. Si vas a reemplazar el nodo principal de MySQL o el nodo principal de Redis, en cluster.conf, cambia el valor de mysql-master o redis-master por el nombre del nodo de reemplazo.

    Por ejemplo, este archivo cluster.conf modificado especifica un nodo de la agrupación recién aprovisionado, ghe-replacement-data-node-1, como nodo principal de MySQL y Redis:

    mysql-master = ghe-replacement-data-node-1
    redis-master = ghe-replacement-data-node-1

  7. Desde el shell administrativo del nodo con el archivo cluster.conf modificado, ejecuta ghe-cluster-config-init . Esto iniciará el nodo recién agregado en la agrupación.

  8. Desde el mismo nodo, ejecuta ghe-cluster-config-apply. Esto validará el archivo de configuración, lo copiará en cada nodo de la agrupación y configurará cada nodo según el archivo cluster.conf modificado.

  9. Si vas a tomar un nodo fuera de línea que tiene git-server = true establecido en cluster.conf, evacua el nodo. Para obtener más información, consulta "Evacuar un nodo de la agrupación".