Skip to main content

Configurar copias de seguridad en tu aparato

Como parte de un plan de recuperación ante desastres, puedes proteger los datos de producción en your GitHub Enterprise Server instance configurando copias de seguridad automáticas.

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 your GitHub Enterprise Server instance en 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, consulta "Versiones 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 utilizar GitHub Enterprise Server Backup Utilities, debe tener un sistema de host Linux o Unix independiente de your GitHub Enterprise Server instance.

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 your GitHub Enterprise Server instance. 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:

HardwareRecomendación
vCPU2
Memoria2 GB
StorageCinco 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, se recomienda clonar el repositorio Git del proyecto. Este enfoque permite capturar nuevas versiones directamente mediante Git y el archivo de configuración de copia de seguridad existente, backup.config, se conservará al instalar una nueva versión.

Como alternativa, si el equipo host no puede acceder a Internet, puedes descargar cada versión de GitHub Enterprise Server Backup Utilities como archivo comprimido y, después, extraer e instalar el contenido. Para obtener más información, consulta Introducción de la documentación del proyecto de GitHub Enterprise Server Backup Utilities.

Las instantáneas de copia de seguridad se escriben en la ruta de acceso del disco establecida por la variable de directorio de datos GHE_DATA_DIR del archivo backup.config. Las 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.

  1. Ejecuta el siguiente comando para clonar el repositorio del proyecto de GitHub Enterprise Server Backup Utilities en un directorio local del host de copia de seguridad.

    $ git clone https://github.com/github/backup-utils.git /path/to/target/directory/backup-utils
    
  2. Ejecuta el siguiente comando para cambiar al directorio del repositorio local.

    cd backup-utils
    
  3. Para actualizar a la versión de lanzamiento del proyecto más reciente, usa la rama stable ejecutando el comando git checkout stable.

    git checkout stable

    Como alternativa, para usar una versión de proyecto específica, ejecuta el siguiente comando, reemplazando X.Y.Z por la versión de lanzamiento deseada.

    $ git checkout vX.Y.Z
  4. Ejecuta el siguiente comando para copiar el archivo backup.config-example incluido en backup.config.

    cp backup.config-example backup.config
  5. Para personalizar la configuración, edita backup.config en un editor de texto.

    1. 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 your GitHub Enterprise Server instance se implementa como un clúster o en una configuración de alta disponibilidad utilizando un equilibrador de carga, el GHE_HOSTNAME puede ser el nombre de host del equilibrador de carga siempre y cuando permita acceso por SSH a your GitHub Enterprise Server instance (por el puerto 122).

      Para garantizar que un dispositivo recuperado esté disponible de inmediato, realiza copias de seguridad centradas en la instancia principal, incluso en una configuración de replicación geográfica.

    2. 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, pero fuera de donde se clonó el repositorio Git en el paso 1.

  6. 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, consulte"Acceso al shell administrativo (SSH)".

  7. En el host de copia de seguridad, comprueba la conectividad SSH con your GitHub Enterprise Server instance con el comando ghe-host-check.

    ./bin/ghe-host-check
  8. 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 your GitHub Enterprise Server instance 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 actualizar GitHub Enterprise Server Backup Utilities en un repositorio Git mediante la captura y extracción del repositorio de los cambios más recientes.

Como alternativa, si no usas un repositorio Git para la instalación, puedes extraer un nuevo archivo o cambiar el enfoque para usar un repositorio Git en su lugar.

Comprobación del tipo de instalación

Puedes comprobar el método de instalación de GitHub Enterprise Server Backup Utilities y determinar la mejor manera de actualizar la versión instalada.

  1. En el host de copia de seguridad, ve al directorio de GitHub Enterprise Server Backup Utilities, normalmente backup-utils.

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

    Si la salida es true, GitHub Enterprise Server Backup Utilities se instaló mediante la clonación del repositorio Git del proyecto. Si la salida incluye fatal: not a git repository (or any of the parent directories), es probable que GitHub Enterprise Server Backup Utilities se instalase extrayendo un archivo de archivo comprimido. Si la instalación está en un repositorio Git, puedes instalar la versión más reciente mediante Git. Si la instalación procede de un archivo comprimido, puedes descargar y extraer la versión más reciente, o bien puedes volver a instalar GitHub Enterprise Server Backup Utilities mediante Git para simplificar las actualizaciones futuras.

Actualización de una instalación en un repositorio Git

  1. En el host de copia de seguridad, ve al directorio de GitHub Enterprise Server Backup Utilities, normalmente backup-utils.

    Nota: Se recomienda crear una copia del archivo backup.config existente en una ubicación temporal, como $HOME/backup.config, antes de actualizar GitHub Enterprise Server Backup Utilities.

  2. Descarga las actualizaciones más recientes del proyecto mediante la ejecución del comando git fetch.

    git fetch
  3. Para actualizar a la versión de lanzamiento del proyecto más reciente, usa la rama stable ejecutando el comando git checkout stable.

    git checkout stable

    Como alternativa, para usar una versión de proyecto específica, ejecuta el siguiente comando, reemplazando X.Y.Z por la versión de lanzamiento deseada.

    $ git checkout vX.Y.Z
    1. Ejecuta el siguiente comando para comprobar que se ha aplicado la actualización correctamente.
    ./bin/ghe-backup --version
  4. Ejecuta el siguiente comando para comprobar la conectividad SSH entre los GitHub Enterprise Server configurados.

    ./bin/ghe-host-check

Uso de Git en lugar de archivos comprimidos para actualizaciones

Si el host de copia de seguridad tiene conectividad a Internet y se usó previamente un archivo comprimido (.tar.gz) para instalar o actualizar GitHub Enterprise Server Backup Utilities, se recomienda usar un repositorio Git para la instalación en su lugar. La actualización mediante Git requiere menos trabajo y conserva la configuración de copia de seguridad.

  1. En el host de copia de seguridad, ve al directorio de GitHub Enterprise Server Backup Utilities, normalmente backup-utils.

  2. Para realizar una copia de seguridad de la configuración de GitHub Enterprise Server Backup Utilities existente, copia el archivo backup.config actual en una ubicación segura, como el directorio principal.

    $ cp backup.config $HOME/backup.config.saved-$(date +%Y%m%d-%H%M%S)
    
  3. Cambia al directorio local del host de copia de seguridad donde deseas instalar el repositorio Git GitHub Enterprise Server Backup Utilities.

  4. Ejecuta el siguiente comando para clonar el repositorio del proyecto en el directorio del host de copia de seguridad.

    git clone https://github.com/github/backup-utils.git
    
  5. Ejecuta el siguiente comando para cambiar al repositorio clonado.

    cd backup-utils
    
  6. Para actualizar a la versión de lanzamiento del proyecto más reciente, usa la rama stable ejecutando el comando git checkout stable.

    git checkout stable

    Como alternativa, para usar una versión de proyecto específica, ejecuta el siguiente comando, reemplazando X.Y.Z por la versión de lanzamiento deseada.

    $ git checkout vX.Y.Z
  7. Para restaurar la configuración de copia de seguridad anterior, copia el archivo de configuración de copia de seguridad existente en el directorio del repositorio local. Reemplaza la ruta de acceso del comando por la ubicación del archivo guardado en el paso 2.

    $ cp PATH/TO/BACKUP/FROM/STEP/2 backup.config
    

    Nota: Puedes elegir dónde restaurar el archivo de configuración de copia de seguridad después de la clonación. Para obtener más información sobre dónde se pueden encontrar los archivos de configuración, consulta Introducción en la documentación del proyecto de GitHub Enterprise Server Backup Utilities.

  8. Revisa el archivo en un editor de texto para confirmar que las rutas de acceso a directorios o scripts del archivo de configuración de copia de seguridad son correctas.

  9. Ejecuta el siguiente comando para comprobar que se ha aplicado la actualización correctamente.

    ./bin/ghe-backup --version
  10. Ejecuta el siguiente comando para comprobar la conectividad SSH entre los GitHub Enterprise Server configurados.

    ./bin/ghe-host-check
  11. Elimina el antiguo directorio de GitHub Enterprise Server Backup Utilities del paso 1 (donde se encuentra la instalación del archivo comprimido).

Programar una copia de seguridad

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

En el caso de una interrupción de red prolongada o de un evento catastrófico en el sitio principal, puede restablecer your GitHub Enterprise Server instance proporcionando otro dispositivo para GitHub Enterprise y realizando un restablecimiento desde el host de copias de seguridad. Debes agregar la clave SSH del host de copias de seguridad en el aparato objetivo GitHub Enterprise como una clave SSH autorizada antes de restablecer un aparato.

Nota: Cuando realice restauraciones de copias de seguridad en your GitHub Enterprise Server instance, se aplicarán las mismas reglas de compatibilidad de versión. Solo puedes restablecer datos de por lo mucho dos lanzamientos 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 de 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.

Para restaurar your GitHub Enterprise Server instance desde la última instantánea correcta, use el comando ghe-restore.

Nota: Antes de restaurar una copia de seguridad, asegúrate de que:

Al ejecutar el comando ghe-restore, deberías ver un resultado similar al siguiente:

$ 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, consulta "Validación de cambios en el modo de mantenimiento mediante la lista de excepciones de IP".

Nota: La configuración de red se excluye de la instantánea de copia de seguridad. Debes configurar manualmente la red en el aparato objetivo para el GitHub Enterprise Server como obligatoria para tu entorno.

Puede usar estas opciones adicionales con el comando 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 sobre el uso de comandos de copia de seguridad y restauración del archivo README de GitHub Enterprise Server Backup Utilities en la documentación del proyecto de GitHub Enterprise Server Backup Utilities.
  • La marca -s le permite seleccionar una instantánea de copia de seguridad diferente.