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
-
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".
-
Desde un navegador, dirígete a la nueva dirección IP del aparato réplica y carga tu licencia de GitHub Enterprise.
-
Establece una contraseña de administrador que coincida con la contraseña del aparato principal y continúa.
-
Haz clic en Configure as Replica (Configurar como réplica).
-
En "Agregar nueva clave SSH", escribe tu clave SSH.
-
Haz clic en Add key (Agregar clave), luego haz clic en Continue (Continuar).
-
Conectarse a la dirección IP del aparato réplica usando SSH.
$ ssh -p 122 admin@REPLICA IP
-
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
-
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. -
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
-
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, ejecutaghe-maintenance -s
en el nodo principal antes de ejecutarghe-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 conghe-maintenance -u
. La replicación de Git no progresará mientras el nodo primario esté en modo de mantenimiento. -
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."
-
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
-
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
-
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. -
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
-
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>