Esta versión de GitHub Enterprise se discontinuó el 2021-09-23. 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.

Crear una réplica de alta disponibilidad

En una configuración activa/pasiva, el aparato réplica es una copia redundante del aparato principal. Si el aparato principal falla, el modo de alta disponibilidad permite que la réplica actúe como aparato principal, lo que posibilita que la interrupción del servicio sea mínima.

Nota: Hay un máximo de 8 réplicas de disponibilidad alta (tanto pasivas como activas/geo replicas) que se permiten para GitHub Enterprise Server.

Crear una réplica de alta disponibilidad

  1. Configurar un aparato GitHub Enterprise Server nuevo en la plataforma que desees. El aparato réplica debe espejar la CPU, la RAM y los ajustes de almacenamiento del aparato principal. Recomendamos que instales el aparato réplica en un entorno separado. El hardward subyacente, el software y los componentes de red deben estar aislados de los del aparato principal. Si estás usando un proveedor de nube, utiliza una región o zona separada. Para obtener más información, consulta "Configurar una instancia GitHub Enterprise Server".

  2. Desde un navegador, dirígete a la nueva dirección IP del aparato réplica y carga tu licencia de GitHub Enterprise.

  3. Establece una contraseña de administrador que coincida con la contraseña del aparato principal y continúa.

  4. Haz clic en Configure as Replica (Configurar como réplica). Opciones de instalación con enlace para configurar tu nueva instancia como una réplica

  5. En "Agregar nueva clave SSH", escribe tu clave SSH. Agrega la clave SSH

  6. Haz clic en Add key (Agregar clave), luego haz clic en Continue (Continuar).

  7. Conectarse a la dirección IP del aparato réplica usando SSH.

    $ ssh -p 122 admin@REPLICA IP
  8. Para generar un par de claves para la replicación, usa el comando ghe-repl-setup con la dirección IP del aparato principal y copia la clave pública que este devuelve.

    $ ghe-repl-setup PRIMARY IP
  9. Para agregar una llave pública a la lista de llaves autorizadas en el aparato principal, ingresa a https://PRIMARY-HOSTNAME/setup/settings y agrega a la lista la llave que copiaste de la réplica.

  10. Para verificar la conexión con la primaria y habilitar el modo de réplica para una nueva réplica, ejecuta nuevamente ghe-repl-setup.

    $ ghe-repl-setup PRIMARY IP
  11. Para comenzar la replicación de las bases de datos, utiliza el comando ghe-repl-start.

    $ ghe-repl-start

    Advertencia: ghe-repl-start causa una breve interrupción en el servidor principal, durante la cual los usuarios pueden ver errores internos del servidor. Para proporcionar un mensaje más amigable, ejecuta ghe-maintenance -s en el nodo principal antes de ejecutar ghe-repl-start en el nodo réplica para poner la aplicación en modo de mantenimiento. Una vez que se inicie la replicación, deshabilita el modo de mantenimiento con ghe-maintenance -u. La replicación de Git no progresará mientras el nodo primario esté en modo de mantenimiento.

  12. Para verificar el estado de cada canal de replicación del almacén de datos, utiliza el comando ghe-repl-status.

    $ ghe-repl-status

Crear réplicas de replicación geográfica

Esta configuración de ejemplo utiliza una réplica primaria y dos réplicas, que se encuentran en tres regiones geográficas diferentes. Aunque los tres nodos pueden estar en redes diferentes, se necesitan todos los nodos para que sean accesibles desde todos los demás nodos. Como mínimo, los puertos administrativos requeridos deben estar abiertos para todos los demás nodos. Para obtener más información acerca de los requisitos de puerto, consulta "Puertos de red."

  1. Crea la primera réplica de la misma manera en que lo harías para una configuración de dos nodos estándar ejecutando ghe-repl-setup en la primera réplica.

    (replica1)$ ghe-repl-setup PRIMARY IP
    (replica1)$ ghe-repl-start
  2. Crea una segunda réplica y utiliza el comando ghe-repl-setup --add. La marca --add evita que sobrescriba la configuración de la replicación existente y agrega la nueva réplica a la configuración.

    (replica2)$ ghe-repl-setup --add PRIMARY IP
    (replica2)$ ghe-repl-start
  3. Predeterminadamente, las replicas se configuran en el mismo centro de datos, y ahora intentarán poblar los datos desde un nodo existente en el mismo centro de datos. Configura las réplicas para diferentes centros de datos estableciendo un valor diferente para la opción de centro de datos. Los valores específicos pueden ser los que tú quieras, siempre que sean diferentes entre sí. Ejecuta el comando ghe-repl-node en cada nodo y especifica el centro de datos.

    En la primaria:

    (primary)$ ghe-repl-node --datacenter [PRIMARY DC NAME]

    En la primera réplica:

    (replica1)$ ghe-repl-node --datacenter [FIRST REPLICA DC NAME]

    En la segunda réplica:

    (replica2)$ ghe-repl-node --datacenter [SECOND REPLICA DC NAME]

    Consejo: puedes establecer las opciones --datacenter y --active al mismo tiempo.

  4. Un nodo de réplica activo almacenará copias de los datos del aparato y responderá las solicitudes de usuario final. Un nodo inactivo almacenará copias de los datos del aparato, pero no podrá atender las solicitudes de usuario final. Habilita el modo activo usando la marca --active o el modo inactivo usando la marca --inactive.

    En la primera réplica:

    (replica1)$ ghe-repl-node --active

    En la segunda réplica:

    (replica2)$ ghe-repl-node --active
  5. Para aplicar la configuración, usa el comando ghe-config-apply en el principal.

    (primary)$ ghe-config-apply

Configurar el DNS para replicación geográfica

Configurar Geo DNS usando las direcciones IP de los nodos primarios y réplica. También puedes crear un DNS CNAME para el nodo principal (p. ej., primary.github.example.com) para acceder al nodo principal a través de SSH o hacerle una copia de seguridad a través de backup-utils.

Para probarlo, puedes agregar entradas al archivo de hosts de la estación de trabajo local (por ejemplo, /etc/hosts). Estas entradas de ejemplo resolverán las solicitudes de HOSTNAME para replica2. Puedes apuntar a hosts específicos comentando en diferentes líneas.

# <primary IP>     <em>HOSTNAME</em>
# <replica1 IP>    <em>HOSTNAME</em>
<replica2 IP>    <em>HOSTNAME</em>

Leer más