Acerca de GitHub Enterprise Server Backup Utilities
GitHub Enterprise Server Backup Utilities es un sistema de copias de seguridad que se instala en un host independiente, el cual realiza instantáneas de copias de seguridad de la tu instancia de GitHub Enterprise Server a intervalos regulares a través de una conexión de red SSH segura. Puedes utilizar una instantánea para restablecer una instancia existente del GitHub Enterprise Server a su estado previo desde el host de copias de seguridad.
Solo se transferirán por la red y ocuparán espacio de almacenamiento físico adicional los datos que se hayan agregado después de esa última instantánea. Para minimizar el impacto en el rendimiento, las copias de seguridad se realizan en línea con la prioridad CPU/IO más baja. No necesitas programar una ventana de mantenimiento para realizar una copia de seguridad.
Las versiones principales y los números de versión de GitHub Enterprise Server Backup Utilities se alinean con las versiones de actualización de características de GitHub Enterprise Server. Se admiten las cuatro versiones más recientes de ambos productos. Para obtener más información, vea «Lanzamientos de GitHub Enterprise Server».
Para obtener información más detallada sobre las características, los requisitos y el uso avanzado, consulta el archivo README de GitHub Enterprise Server Backup Utilities en la documentación del proyecto de GitHub Enterprise Server Backup Utilities.
Prerrequisitos
Para usar GitHub Enterprise Server Backup Utilities, debes tener un sistema de host distinto de tu instancia de GitHub Enterprise Server. Para más información sobre cómo se debe configurar el sistema, consulta Requisitos en el repositorio github/backup-utils.
También puedes incorporar GitHub Enterprise Server Backup Utilities en un entorno existente para almacenar los datos críticos de manera permanente y a largo plazo.
Recomendamos que exista una distancia geográfica entre el host de copias de seguridad y la tu instancia de GitHub Enterprise Server. Esto asegura que las copias de seguridad estén disponibles para su recuperación en el caso de que ocurra un desastre significativo o una interrupción de red en el sitio principal.
Los requisitos de almacenamiento físico variarán en función del uso del disco del repositorio de Git y de los patrones de crecimiento esperados:
Hardware | Recomendación |
---|---|
vCPU | 4 |
Memoria | 8 GB |
Storage | Cinco veces el almacenamiento asignado de la instancia principal |
Es posible que se requieran más recursos según su uso, como la actividad del usuario y las integraciones seleccionadas.
Para obtener más información, consulta los requisitos de GitHub Enterprise Server Backup Utilities en la documentación del proyecto de GitHub Enterprise Server Backup Utilities.
Instalar GitHub Enterprise Server Backup Utilities
Para instalar GitHub Enterprise Server Backup Utilities en el host de copia de seguridad, descarga la versión más reciente de GitHub Enterprise Server Backup Utilities desde el repositoriogithub/backup-utils compatible con la versión de GitHub Enterprise Server. Por ejemplo, si ejecutas la versión 3.8.4 de GitHub Enterprise Server, descarga la última versión de GitHub Enterprise Server Backup Utilities en la serie 3.10. Esto es posible porque todas las versiones de GitHub Enterprise Server Backup Utilities son compatibles con versiones anteriores para 2 versiones, lo que significa que las series 3.10 de GitHub Enterprise Server Backup Utilities se pueden usar para realizar copias de seguridad y restaurar instancias GitHub Enterprise Server que ejecutan versiones 3.8, 3.9 o 3.10.
Después de descargar un archivo comprimido, puedes extraer e instalar el contenido. Para obtener más información, consulta Introducción en el repositorio github/backup-utils.
Si tienes un archivo de configuración de copia de seguridad existente, backup.config
, asegúrate de copiar el archivo en la ubicación de la versión recién extraída e instalada de GitHub Enterprise Server Backup Utilities.
Las instantáneas de copia de seguridad creadas por GitHub Enterprise Server Backup Utilities se escriben en la ruta de acceso del disk establecida por la variable de directorio de datos GHE_DATA_DIR
del archivo backup.config
. Estas instantáneas deben almacenarse en un sistema de archivos que admita vínculos simbólicos y físicos.
Nota: Se recomienda asegurarse de que las instantáneas no se mantienen en un subdirectorio del directorio de instalación de GitHub Enterprise Server Backup Utilities para evitar sobrescribir accidentalmente el directorio de datos al actualizar las versiones de GitHub Enterprise Server Backup Utilities.
-
Descargue la versión de GitHub Enterprise Server Backup Utilities de la página Versiones del repositorio github/backup-utils.
-
Para extraer el repositorio mediante tar, ejecute el siguiente comando.
tar -xzvf /path/to/github-backup-utils-vMAJOR.MINOR.PATCH.tar.gz
-
Ejecuta el siguiente comando para cambiar al directorio del repositorio local.
cd backup-utils
-
Ejecuta el siguiente comando para copiar el archivo
backup.config-example
incluido enbackup.config
.cp backup.config-example backup.config
-
Para personalizar la configuración, edita
backup.config
en un editor de texto.-
Si anteriormente actualizaste GitHub Enterprise Server Backup Utilities mediante Git, asegúrate de copiar la configuración existente desde
backup.config
en el nuevo archivo. Para más información, consulta “Actualizar GitHub Enterprise Server Backup Utilities”. -
Establezca el valor
GHE_HOSTNAME
en la dirección IP o el nombre del host de su instancia principal de GitHub Enterprise Server.Nota: Si la tu instancia de GitHub Enterprise Server se implementa como un clúster o en una configuración de alta disponibilidad mediante un equilibrador de carga,
GHE_HOSTNAME
puede ser el nombre de host del equilibrador de carga, siempre y cuando el equilibrador de carga permita acceso de SSH a través del puerto 122 a tu instancia de GitHub Enterprise Server.Para garantizar que una instancia recuperada esté disponible de inmediato, realiza copias de seguridad centradas en la instancia principal, incluso en una configuración de replicación geográfica.
-
Establezca el valor
GHE_DATA_DIR
para la ubicación del sistema de archivos en la que quiera almacenar las instantáneas de copias de seguridad. Se recomienda elegir una ubicación en el mismo sistema de archivos que el host de copia de seguridad.
-
-
Para conceder acceso al host de copia de seguridad a la instancia, abre la página de configuración de la instancia principal en
http(s)://HOSTNAME/setup/settings
y agrega la clave SSH del host de copia de seguridad a la lista de claves SSH autorizadas. Para obtener más información, vea «Acceder al shell administrativo (SSH)». -
En el host de copia de seguridad, comprueba la conectividad SSH con la tu instancia de GitHub Enterprise Server mediante el comando
ghe-host-check
../bin/ghe-host-check
-
Ejecuta el siguiente comando para crear una copia de seguridad completa inicial.
./bin/ghe-backup
Para obtener más información sobre el uso avanzado, consulta el archivo README de GitHub Enterprise Server Backup Utilities en la documentación del proyecto de GitHub Enterprise Server Backup Utilities.
Actualizar GitHub Enterprise Server Backup Utilities
Al actualizar GitHub Enterprise Server Backup Utilities, debes elegir una versión que funcione con la versión actual de GitHub Enterprise Server. La versión instalada de GitHub Enterprise Server Backup Utilities debe ser, al menos, la misma que la de la tu instancia de GitHub Enterprise Server, y no puede ser más de dos versiones posteriores. Para obtener más información, consulta los requisitos de la versión de GitHub Enterprise Server en la documentación del proyecto de GitHub Enterprise Server Backup Utilities.
-
Puedes comprobar el método de instalación de GitHub Enterprise Server Backup Utilities. Las versiones anteriores de GitHub Enterprise Server Backup Utilities admitían la instalación y las actualizaciones en un repositorio git local, pero este método ya no se admite.
-
En el host de copia de seguridad, ve al directorio de GitHub Enterprise Server Backup Utilities, normalmente
backup-utils
. -
Ejecuta el siguiente comando para comprobar si existe un directorio de trabajo válido dentro de un repositorio Git.
git rev-parse --is-inside-work-tree
-
-
Para determinar cómo actualizar GitHub Enterprise Server Backup Utilities, revisa la salida de
git rev-parse --is-inside-work-tree
.- Si la salida es
true
, GitHub Enterprise Server Backup Utilities se instaló mediante la clonación del repositorio Git del proyecto. Para actualizar, copia la configuración existente enbackup.config
y siga las instrucciones de "Instalación de GitHub Enterprise Server Backup Utilities". - Si la salida incluye
fatal: not a git repository (or any of the parent directories)
, GitHub Enterprise Server Backup Utilities se extrajo de un archivo de archivo comprimido. Para actualizar, sigue las instrucciones de "Instalación de GitHub Enterprise Server Backup Utilities".
- Si la salida es
Programar una copia de seguridad
Advertencia: Después de restaurar una copia de seguridad creada con GitHub Enterprise Server Backup Utilities 3.7.0 o 3.8.0, es posible que los usuarios no puedan iniciar sesión en la instancia. Para corregir este problema, además de un error que impedía la copia de seguridad de las claves de cifrado del examen de secretos, actualiza el host de copia de seguridad para que use GitHub Enterprise Server Backup Utilities 3.8.1 y genere una nueva copia de seguridad completa mediante ghe-backup
. Para más información sobre el uso de una copia de seguridad existente, consulta "Problemas conocidos con las copias de seguridad de la instancia".
Puede programar copias de seguridad con una determinada frecuencia en el host de copia de seguridad utilizando el comando cron(8)
o un servicio de programación mediante comando similar. La frecuencia de copias de seguridad configurada dictará el peor caso de Punto Objetivo de Recuperación (RPO) de tu plan de recuperación. Por ejemplo, si has programado que la copia de seguridad se ejecute todos los días a la medianoche, podrías perder hasta 24 horas de datos en un escenario de desastre. Recomendamos comenzar con un cronograma de copias de seguridad por hora, que garantice un peor caso máximo de una hora de pérdida de datos, si los datos del sitio principal se destruyen.
Si los intentos de copias de seguridad se superponen, el comando ghe-backup
se detendrá con un mensaje de error que indicará la existencia de una copia de seguridad simultánea. Si esto ocurre, recomendamos que disminuyas la frecuencia de tus copias de seguridad programadas. Para obtener más información, consulta la sección sobre programar copias de seguridad del archivo README de GitHub Enterprise Server Backup Utilities en la documentación del proyecto de GitHub Enterprise Server Backup Utilities.
Restauración de una copia de seguridad
Advertencia: Después de restaurar una copia de seguridad creada con GitHub Enterprise Server Backup Utilities 3.7.0 o 3.8.0, es posible que los usuarios no puedan iniciar sesión en la instancia. Para corregir este problema, además de un error que impedía la copia de seguridad de las claves de cifrado del examen de secretos, actualiza el host de copia de seguridad para que use GitHub Enterprise Server Backup Utilities 3.8.1 y genere una nueva copia de seguridad completa mediante ghe-backup
. Para más información sobre el uso de una copia de seguridad existente, consulta "Problemas conocidos con las copias de seguridad de la instancia".
En el caso de una interrupción de red prolongada o de un evento catastrófico en el sitio principal, puedes restaurar tu instancia de GitHub Enterprise Server aprovisionando otra instancia y realizando una restauración desde el host de copias de seguridad. Debes agregar la clave SSH del host de copias de seguridad en la instancia objetivo GitHub Enterprise como una clave SSH autorizada antes de restablecer una instancia.
Al realizar restauraciones de copia de seguridad en tu instancia de GitHub Enterprise Server, solo puedes restaurar datos de un máximo de dos versiones de características anteriores. Por ejemplo, si haces una copia de seguridad de GitHub Enterprise Server 3.0.x, puedes restaurar la copia de seguridad en una instancia que ejecute GitHub Enterprise Server 3.2.x. No se pueden restaurar datos desde una copia de seguridad de GitHub Enterprise Server 2.22.x a una instancia que ejecute 3.2.x, ya que serían tres saltos entre versiones (de 2.22 a 3.0, a 3.1 y finalmente a 3.2). Primero necesitarías restablecer a una instancia que ejecute 3.1.x y luego actualizar a 3.2.x.
La configuración de red se excluye de la instantánea de copia de seguridad. Después de la restauración, debes configurar manualmente las redes en la instancia de GitHub Enterprise Server de destino.
Requisitos previos
- El modo de mantenimiento está habilitado en la instancia principal y se han completado todos los procesos activos. Para obtener más información, vea «Habilitar y programar el modo de mantenimiento».
- Detenga la replicación en todos los nodos de réplica en una configuración de alta disponibilidad. Para obtener más información, consulta "Acerca de la configuración de alta disponibilidad".
- Aprovisiona una nueva instancia de destino de GitHub Enterprise Server para usarla como destino para la restauración de la copia de seguridad. Para obtener más información, consulta "Configurar una instancia del servidor de GitHub Enterprise".
- Si tu instancia de GitHub Enterprise Server tiene GitHub Actions habilitado, primero debes configurar el proveedor de almacenamiento externo de GitHub Actions en la instancia de repuesto. Para obtener más información, vea «Respaldar y restablecer GitHub Enterprise Server con GitHub Actions habilitadas».
Inicio de la operación de restauración
Para restaurar tu instancia de GitHub Enterprise Server desde el host de copia de seguridad mediante la última instantánea correcta, usa el comando ghe-restore
. Puedes usar las siguientes opciones adicionales con ghe-restore
.
- La marca
-c
sobrescribe los ajustes, el certificado y los datos de licencia en el host objetivo, incluso si este ya está configurado. Omite esta marca si estás configurando una instancia de preparación con fines de prueba y si quieres conservar la configuración existente en el objetivo. Para obtener más información, consulta la sección "Uso de comandos de copia de seguridad y restauración" del archivo README de GitHub Enterprise Server Backup Utilities en el repositorio github/backup-utils. - La marca
-s
le permite seleccionar una instantánea de copia de seguridad diferente.
Después de ejecutar ghe-restore
, el comando confirma la restauración y, a continuación, genera los detalles y el estado durante la operación.
$ ghe-restore -c 169.154.1.1
> Checking for leaked keys in the backup snapshot that is being restored ...
> * No leaked keys found
> Connect 169.154.1.1:122 OK (v2.9.0)
> WARNING: All data on GitHub Enterprise appliance 169.154.1.1 (v2.9.0)
> will be overwritten with data from snapshot 20170329T150710.
> Please verify that this is the correct restore host before continuing.
> Type 'yes' to continue: yes
> Starting restore of 169.154.1.1:122 from snapshot 20170329T150710
# ...output truncated
> Completed restore of 169.154.1.1:122 from snapshot 20170329T150710
> Visit https://169.154.1.1/setup/settings to review appliance configuration.
Opcionalmente, para validar la restauración, configura una lista de excepciones IP para permitir el acceso a una lista específica de direcciones IP. Para obtener más información, vea «Habilitar y programar el modo de mantenimiento».
En una instancia de una configuración de alta disponibilidad, después de restaurar en discos nuevos en una instancia existente o vacía, ghe-repl-status
puede notificar que la replicación de Git o Alambic no está sincronizada debido a UUID de servidor obsoletos. Estos UUID obsoletos pueden ser el resultado de un nodo retirado en una configuración de alta disponibilidad que sigue estando presente en la base de datos de la aplicación, pero no en la configuración de replicación restaurada.
Para corregirlo una vez completada la restauración y antes de iniciar la replicación, puedes anular los UUID obsoletos mediante ghe-repl-teardown
. Si necesitas más ayuda, ve a Soporte técnico para GitHub Enterprise.