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.

Actualizar el servidor de GitHub Enterprise

Actualizar el GitHub Enterprise Server para obtener las funciones y las actualizaciones de seguridad más recientes.

Preparar para una actualización

  1. Determina una estrategia de actualización y elige una versión a la que actualizar. Para obtener más información, consulta "Requisitos de actualización."

  2. Crea una copia de seguridad nueva de tu instancia principal con las Utilidades de respaldo del servidor de GitHub Enterprise. Para obtener más información, consulta el archivo README.md en Utilidades de respaldo del servidor de GitHub Enterprise.

  3. Si estás actualizando con un paquete de actualización, programa una ventana de mantenimiento para los usuarios finales del GitHub Enterprise Server. Si estás usando un hotpatch, no se necesita el modo mantenimiento.

    Nota: la ventana de mantenimiento depende del tipo de actualización que realices. Las actualizaciones que utilizan un hotpatch por lo general no necesitan una ventana de mantenimiento. A veces se necesita reiniciar; puedes hacerlo más tarde. Siguiendo el esquema de control de versiones de MAJOR.FEATURE.PATCH, los lanzamientos de patch que utilizan un paquete de actualización normalmente necesitan menos de cinco minutos de tiempo de inactividad. Los lanzamientos de funciones que incluyen migraciones de datos toman más tiempo dependiendo del desempeño del almacenamiento y de la cantidad de datos que se migran. Para obtener más información, consulta "Habilitar y programar el modo mantenimiento."

Acerca de los requisitos mínimos para GitHub Enterprise Server 3.0 y superior

Antes de actualizar a GitHub Enterprise Server 3.0 o superior, revisa los recursos de hardware que has aprovisionado para tu instancia. GitHub Enterprise Server 3.0 presenta características nuevas tales como GitHub Actions y el Registro del paquete de GitHub, y requiere más recursos que la versión 2.22 y anteriores. Para obtener más información, consulta la sección de notas de lanzamiento para GitHub Enterprise Server 3.0.

Los requisitos que incrementan para GitHub Enterprise Server 3.0 y posterior se muestran en negritas en la siguiente tabla.

Licencias de usuariovCPUMemoriaAlmacenamiento conectadoAlmacenamiento raíz
Prueba, Demo o 10 usuarios no frecuentes4
Aumentando desde 2
32 GB
Aumentando desde 16 GB
150 GB
Aumentando desde 100 GB
200 GB
10-30008
Aumentando desde 4
48 GB
Aumentando desde 32 GB
300 GB
Aumentando desde 250 GB
200 GB
3000-500012
Aumentando desde 8
64 GB500 GB200 GB
5000-800016
Aumentando desde 12
96 GB750 GB200 GB
8000-10000+20
Aumentando desde 16
160 GB
Aumentando desde 128 GB
1000 GB200 GB

Para obtener más información acerca de los requisitos de hardware para las GitHub Actions, consulta la sección "Comenzar con las GitHub Actions para GitHub Enterprise Server".

Para obtener más información sobre el ajuste de recursos para una instancia existente, consulta las secciones "Incrementar la capacidad de almacenamiento" e "Incrementar los recursos de memoria o de CPU".

Tomar una instantánea

Una instantánea es un punto de verificación de una máquina virtual (VM) en un momento en el tiempo. Recomendamos firmemente tomar una instantánea antes de actualizar tu máquina virtual para que si falla una actualización, puedas revertir tu VM nuevamente a la instantánea. Si no estás actualizando a un nuevo lanzamiento de característica, debes tomar una instantánea de VM. Si estás actualizando a un nuevo lanzamiento de patch, puedes adjuntar el disco de datos existente.

Hay dos tipos de instantáneas:

  • Las instantáneas de VM guardan el estado completo de tu VM, incluidos los datos del usuario y los datos de configuración. Este método de instantáneas requiere una gran cantidad de espacio de disco e insume mucho tiempo.

  • Las instantáneas de disco de datos únicamente guardan tus datos de usuario.

    Notas:

    • Algunas plataformas no permiten que tomes una instantánea solo de tu disco de datos. Para estas plataformas, necesitarás tomar una instantánea de tu VM completa.
    • Si tu hipervisor no admite instantáneas de VM completas, debes tomar una instantánea de tu disco raíz y de tu disco de datos en rápida sucesión.
PlataformaMétodo de instantáneaURL de documentación de instantánea
Amazon AWSDiscohttps://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html
AzureVMhttps://docs.microsoft.com/azure/backup/backup-azure-vms-first-look-arm
Hyper-VVMhttps://docs.microsoft.com/windows-server/virtualization/hyper-v/manage/enable-or-disable-checkpoints-in-hyper-v
Google Compute EngineDiscohttps://cloud.google.com/compute/docs/disks/create-snapshots
VMwareVMhttps://pubs.vmware.com/vsphere-50/topic/com.vmware.wssdk.pg.doc_50/PG_Ch11_VM_Manage.13.3.html
XenServerVMhttps://docs.citrix.com/en-us/xencenter/current-release/vms-snapshots.html

Actualizar con un hotpatch

Puedes mejorar GitHub Enterprise Server al último lanzamiento parchado utilizando un hotpatch, lo cual no requerirá una ventana de mantenimiento y, habitualmente, no requiere un reinicio. Puedes utilizar los hotpatches para subir de categoría a un nuevo lanzamiento parchado, pero no a un lanzamiento de características. Por ejemplo, puedes mejorar de 2.10.1 a 2.10.5 porque pertenecen a la misma serie de características, pero no de 2.10.9 a 2.11.0, porque están en una serie de características diferente. Utilizando la Consola de administración, puedes instalar un hotpatch de forma inmediata o programar la instalación para más tarde. Puedes utilizar el shell administrativo para instalar un hotpatch con la herramienta ghe-upgrade. Para obtener más información, consulta "Requisitos de actualización."

Nota:

No hay disponibilidad para instalar un parche utilizando la Consola de administración en los ambientes de clúster. Para instalar un parche en un entorno de agrupación, consulta "Actualizar una agrupación."

Actualizar un aparato único con un hotpatch

Instalar un hotpatch utilizando la Consola de administración

  1. Habilitar actualizaciones automáticas. Para obtener más información, consulta "Habilitar actualizaciones automáticas."
  2. Desde una cuenta administrativa en GitHub Enterprise Server, da clic en la esquina superior derecha de cualquier página. Ícono de cohete para acceder a las configuraciones de administrador del sitio
  3. En la barra lateral izquierda, haz clic en Consola de administración. pestaña Consola de administración en la barra lateral izquierda
  4. En la parte superior de Consola de administración, da clic en Actualizaciones. Actualiza el elemento del menú
  5. Cuando se ha descargado un nuevo hotpatch, utiliza el menú desplegable del paquete de instalación:
    • Para instalar de forma inmediata, selecciona Now (Ahora):
    • Para instalarlo más tarde, selecciona una fecha posterior. Menú desplegable de fecha de instalación de hotpatch
  6. Da clic en Instalar. Botón de instalación de hotpatch

Instalar un hotpatch utilizando un shell administrativo

Nota: Si habilitaste las verificaciones de actualizaciones automáticas, no necesitas descargar el paquete de actualizaciones y puedes usar el archivo que se descargó automáticamente. Para obtener más información, consulta "Enabling automatic update checks" (Habilitar verificaciones de actualizaciones automáticas).

  1. SSH en tu instancia de GitHub Enterprise Server. Para obtener más información, consulta "Acceder al shell administrativo (SSH)."
    $ ssh -p 122 admin@HOSTNAME
  2. Visita la GitHub Enterprise Server Página de lanzamientos. Junto a la versión a la que vas a actualizar, haz clic en Download (Descargar), luego haz clic en la pestaña Upgrading (Actualización). Copia el URL para obtener el paquete de actualización (.hpkg file).
  3. Descarga el paquete de actualizaciones a tu instancia de GitHub Enterprise Server con curl:
    admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
  4. Ejecuta el comando ghe-upgrade utilizando el nombre del archivo del paquete:
    admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg
    *** verifying upgrade package signature...
  5. Si se requiere un reinicio para las actualizaciones de kernel, MySQL, Elasticsearch u otros programas, el script de actualización de hotpatch te avisa.

Actualizar un aparato que tiene instancias de réplica utilizando un hotpatch

Nota: si estás instalando un hotpatch, no necesitas entrar en modo de mantenimiento o detener la replicación.

Los aparatos configurados para alta disponibilidad y de replicación geográfica utilizan instancias de réplica además de las instancias principales. Para actualizar estos aparatos, necesitarás actualizar tanto la instancia principal y todas las instancias de réplica, una a la vez.

Actualizar la instancia principal

  1. Actualiza la instancia principal siguiendo las instrucciones en "Instalar un hotpatch utilizando el shell administrativo."

Actualizar una instancia de réplica

Nota: si estás ejecutando múltiples instancias de réplica como parte de la replicación geográfica, repite este procedimiento para cada instancia de réplica, una a la vez.

  1. Mejora la instancia de répica siguiendo las instrucciones en "Instalar un hotpatch utilizando el shell administrativo". Si estás utilizando varias replicas para la replicación geográfica, deberás repetir este procedimiento para actualizar cada réplica una a la vez.

  2. Conéctate a la instancia réplica a través de SSH como el usuario "admin" en el puerto 122:

    $ ssh -p 122 admin@replica-host
  3. Verifica la mejora ejecutando:

    $ ghe-version

Actualizar con un paquete de actualización

Al mismo tiempo que puedes utilizar un hotpatch para actualizar al lanzamiento de patch más reciente dentro de una serie de características, debes utilizar un paquete de actualización para actualizar a un lanzamiento de característica más nuevo. Por ejemplo para actualizar de 2.11.10 a 2.12.4 debes utilizar un paquete de actualización ya que están en series de características diferentes. Para obtener más información, consulta "Requisitos de actualización."

Actualizar un aparato único con un paquete de actualización

Nota: Si habilitaste las verificaciones de actualizaciones automáticas, no necesitas descargar el paquete de actualizaciones y puedes usar el archivo que se descargó automáticamente. Para obtener más información, consulta "Enabling automatic update checks" (Habilitar verificaciones de actualizaciones automáticas).

  1. SSH en tu instancia de GitHub Enterprise Server. Para obtener más información, consulta "Acceder al shell administrativo (SSH)."

    $ ssh -p 122 admin@HOSTNAME
  2. Visita la GitHub Enterprise Server Página de lanzamientos. Junto a la versión a la que vas a actualizar, haz clic en Download (Descargar), luego haz clic en la pestaña Upgrading (Actualización). Selecciona la plataforma adecuada y copia el URL para obtener el paquete de actualización (.pkg file).

  3. Descarga el paquete de actualizaciones a tu instancia de GitHub Enterprise Server con curl:

    admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
  4. Habilita el modo mantenimiento y espera que se completen todos los procesos activos en la instancia del GitHub Enterprise Server. Para obtener más información, consulta "Habilitar y programar el modo mantenimiento."

    Nota: cuando se actualiza el aparato primario en una configuración de alta disponibilidad, el aparato debería estar ya en modo mantenimiento si estás siguiendo las instrucciones en "Actualizar la instancia primaria."

  5. Ejecuta el comando ghe-upgrade utilizando el nombre del archivo del paquete:

    admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg
    *** verifying upgrade package signature...
  6. Confirma que te gustaría continuar con la actualización y reinicia después de que se verifique la firma del paquete. El nuevo sistema de archivos raíz escribe en la segunda partición y la instancia de forma automática se reinicia en modo mantenimiento:

    *** aplicando actualización...
    This package will upgrade your installation to version version-number
    Current root partition: /dev/xvda1 [version-number]
    Target root partition:  /dev/xvda2
    Proceed with installation? [s/N]
  7. Para las actualizaciones de aparato único, deshabilita el modo mantenimiento para que los usuarios puedan utilizar tu instancia de GitHub Enterprise Server.

    Nota: cuando se actualizan aparatos en configuración de alta disponibilidad, deberías mantener el modo mantenimiento hasta que hayas actualizado todas las réplicas y la replicación esté en curso. Para obtener más información, consulta "Actualizar una instancia de réplica."

Actualizar un aparato que tiene instancias de réplica utilizando un paquete de actualización

Los aparatos configurados para alta disponibilidad y de replicación geográfica utilizan instancias de réplica además de las instancias principales. Para actualizar estos aparatos, necesitarás actualizar tanto la instancia principal y todas las instancias de réplica, una a la vez.

Actualizar la instancia principal

Advertencia: Cuando se detiene una replicación, si falla la primaria, se perderá cualquier trabajo que se realice antes de que la réplica esté actualizada y comience nuevamente la replicación.

  1. En la instancia primaria, habilita el modo mantenimiento y espera a que se completen todos los procesos activos. Para obtener más información, consulta "Habilitar el modo mantenimiento."
  2. Conéctate a la instancia réplica a través de SSH como el usuario "admin" en el puerto 122:
    $ ssh -p 122 admin@replica-host
  3. En la instancia de réplica, o en todas las instancias de réplica si estás ejecutando múltiples instancias de réplica como parte de una replicación geográfica, ejecuta ghe-repl-stop para detener la replicación.
  4. Actualiza la instancia primaria siguiendo las instrucciones en "Actualizar un aparato único con un paquete de actualización."

Actualizar una instancia de réplica

Nota: si estás ejecutando múltiples instancias de réplica como parte de la replicación geográfica, repite este procedimiento para cada instancia de réplica, una a la vez.

  1. Actualiza la instancia de la réplica siguiendo las instrucciones en la sección "Mejorar un solo aplicativo con un paquete de mejora". Si estás utilizando varias replicas para la replicación geográfica, deberás repetir este procedimiento para actualizar cada réplica una a la vez.

  2. Conéctate a la instancia réplica a través de SSH como el usuario "admin" en el puerto 122:

    $ ssh -p 122 admin@replica-host
  3. Verifica la mejora ejecutando:

    $ ghe-version
  4. En la instancia réplica, para comenzar la replicación, ejecuta ghe-repl-start.

  5. En la instancia replicada, para garantizar que se estén ejecutando correctamente los servicios de replicación, ejecuta ghe-repl-status. Este comando devolverá un OK para todos los servicios cuando exista una replicación exitosa en progreso y la réplica se haya mejorado. Si el comando devuelve La replicación no se está ejecutando, la replicación puede estar comenzando. Espera alrededor de un minuto antes de volver a ejecutar ghe-repl-status.

    Nota: mientras la resincronización está en progreso, ghe-repl-status puede devolver mensajes esperados que indiquen que la replicación está de forma subyacente. Por ejemplo: CRITICO: la replicación de git está de forma subyacente de la primaria por más de 1007 repositorios o gists

    Si ghe-repl-status no devuelve OK, sigue los pasos de abajo para iniciar la replicación de forma manual.

    1. En la instancia de réplica, ejecuta nuevamente ghe-repl-setup <primary-instance-ip>.
    2. En la instancia réplica, para comenzar la replicación, ejecuta ghe-repl-start.
    3. En la instancia replicada, para garantizar que se estén ejecutando correctamente los servicios de replicación, ejecuta ghe-repl-status. Este comando devolverá un OK para todos los servicios cuando exista una replicación exitosa en progreso y la réplica se haya mejorado.
  6. Cuando hayas completado la actualización de la última réplica, y se haya completado la resincronización, deshabilita el modo mantenimiento para que los usuarios puedan utilizar tu instancia de GitHub Enterprise Server.

Restaurar desde una actualización fallida

Si una actualización falla o se interrumpe, deberías revertir tu instancia a su estado anterior. El proceso para completar esto depende del tipo de actualización.

Revertir un lanzamiento de patch

Para volver a lanzar una versión de parche, usa el comando ghe-upgrade con el comando --allow-patch-rollback switch. Cuando bajes de categoría una mejora que ya hayas hecho, deberás utilizar un archivo de paquete de mejora con la extensión .pkg. No hay compatibilidad con los archivos de paquete de hotpatch con la extensión .hpkg.

ghe-upgrade --allow-patch-rollback EARLIER-RELEASE-UPGRADE-PACKAGE.pkg

Se requiere que reinicies después de ejecutar el comando. Bajar de categoría una mejora previa no afecta la partición de datos, ya que las migraciones no se ejecutan en lanzamientos parchados.

Para obtener más información, consulta "Herramientas de línea de comando."

Revertir un lanzamiento de característica

Para revertir un lanzamiento de característica, restaura desde una instantánea de VM para garantizar que las particiones raíz y de datos estén en un estado consistente. Para obtener más información, consulta "Tomar una instantánea."