Skip to main content

Esta versión de GitHub Enterprise se discontinuó el 2022-09-28. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico 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.

Nota: Características como GitHub Actions, GitHub Packages, GitHub Mobile y GitHub Advanced Security están disponibles en GitHub Enterprise Server 3.0 o posterior. Te recomendamos ampliamente actualizar a la versión 3.0 o superior de los lanzamientos para que tengas todas las ventajas de las actualizaciones de seguridad, correcciones de errores y mejoras de características.

Preparar para una actualización

  1. Determina una estrategia de actualización y elige una versión a la que actualizar. Para más información, vea "Requisitos de actualización" y consulte Asistente de mejora para encontrar la ruta de actualización de la versión actual.

  2. Crea una copia de seguridad nueva de tu instancia principal con las GitHub Enterprise Server Backup Utilities. Para más información, consulta el archivo README.md de la documentación del proyecto de GitHub Enterprise Server Backup Utilities.

    Nota: La versión de GitHub Enterprise Server Backup Utilities debe ser la misma que la de your GitHub Enterprise Server instance o, como máximo, dos versiones posteriores. Para obtener más información, consulta "Actualizar GitHub Enterprise Server Backup Utilities".

  3. Si your GitHub Enterprise Server instance usa ejecutores autohospedados efímeros para GitHub Actions, y has deshabilitado las actualizaciones automáticas, actualiza los ejecutores a la versión de la aplicación de ejecutor que la instancia actualizada ejecutará.

  4. 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 realice. 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 más información, vea "Habilitación y programación del modo de mantenimiento".

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. Solo recomendamos tomar una captura de pantalla de la MV cuando el aplicativo esté apagado o en modo de mantenimiento y todos los jobs en segundo plano hayan terminado.

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 la VM, incluidos los datos del usuario y 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 solo guardan los 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.
PlataformaSnapshot (método)URL de documentación de instantánea
Amazon AWSDiscohttps://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html
Azuremáquina virtualhttps://docs.microsoft.com/azure/backup/backup-azure-vms-first-look-arm
Hyper-Vmáquina virtualhttps://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
VMwaremáquina virtualhttps://pubs.vmware.com/vsphere-50/topic/com.vmware.wssdk.pg.doc_50/PG_Ch11_VM_Manage.13.3.html
XenServermáquina virtualhttps://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 subir de nivel desde 2.10.1 a 2.10.5 porque están en la misma serie de características, pero no desde 2.10.9 a 2.11.0, porque están en una serie de características diferente.

Si utilizas la Consola de administración, puedes instalar un hotpatch de inmediato o programarlo para que se instale posteriormente. Puede usar el shell administrativo para instalar una revisión en caliente con la utilidad ghe-upgrade. Para más información, vea "Requisitos de actualización".

Notas :

  • Si your GitHub Enterprise Server instance está ejecutando una compilación candidata a lanzamiento, no puedes actualizarla con un hotpatch.

  • No hay disponibilidad para instalar un parche utilizando la Consola de administración en los ambientes de clúster. Para instalar una revisión en caliente en un entorno en clúster, vea "Actualización de un clúster".

Actualizar un aparato único con un hotpatch

Instalar un hotpatch utilizando la Consola de administración

Puedes utilziar la Consola de administración para hacer una mejora con un hotpatch si habilitas las actualizaciones automáticas. Entonces se te presentará la última versión disponible de GitHub Enterprise Server a la cual puedes mejorar.

Si el objetivo de actualización que se te presentó es un lanzamiento de una característica en vez de un lanzamiento de parche, no podrás utilizar la Consola de administración para instalar un hotpatch. En vez de eso, deberás instalar el hotpatch utilizando el shell administrativo. Para más información, vea "Instalación de una revisión en caliente mediante el shell administrativo".

  1. Habilitar las actualizaciones automáticas. Para más información, vea "Habilitación de actualizaciones automáticas".

  2. Desde una cuenta administrativa de GitHub Enterprise Server, en la esquina superior derecha de cualquier página, haz clic en .

    Captura de pantalla del icono de cohete para acceder a los ajustes administrativos

  3. Si todavía no está en la página "Administrador del sitio", en la esquina superior izquierda, haga clic en Administrador del sitio.

    Captura de pantalla del vínculo "Administrador del sitio" 1. En la barra lateral de la izquierda, haga clic en Consola de administración . Pestaña Consola de administración en la barra lateral de la izquierda 1. En la parte superior de Consola de administración, haga clic en Updates. Elemento de menú Updates

  4. Cuando se ha descargado un nuevo hotpatch, utiliza el menú desplegable del paquete de instalación:

    • Para realizar la instalación inmediatamente, seleccione Ahora:
    • Para instalarlo más tarde, selecciona una fecha posterior. Menú desplegable de fecha de instalación de la revisión en caliente
  5. Haga clic en Instalar. Botón de instalación de la revisión en caliente

Instalar un hotpatch utilizando un shell administrativo

Nota: Si ha habilitado las comprobaciones de actualizaciones automáticas, no es necesario descargar el paquete de actualizaciones y puede usar el archivo que se ha descargado automáticamente. Para más información, vea "Habilitación de comprobaciones automáticas de actualizaciones".

  1. SSH en your GitHub Enterprise Server instance. Si la instancia consta de varios nodos, por ejemplo, si la alta disponibilidad o la replicación geográfica están configuradas, utiliza SSH en el nodo principal. Si usas un clúster, puedes utilizar SSH en cualquier nodo. Para obtener más información acerca del acceso a SSH, consulta "Acceso al shell administrativo (SSH)".

    $ ssh -p 122 admin@HOSTNAME
  2. Vaya a la página de versiones de GitHub Enterprise Server. Junto a la versión a la que va a actualizar, haga clic en Download y después en la pestaña Upgrading. Copie la URL para obtener el paquete de actualización (archivo .hpkg).

  3. Descargue el paquete de actualización a your GitHub Enterprise Server instance mediante curl :

    admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
  4. Ejecute el comando ghe-upgrade con el nombre del archivo de 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 va a instalar una revisión en caliente, no es necesario entrar en modo de mantenimiento ni 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. Actualice la instancia principal con las instrucciones de "Instalación de una revisión en caliente mediante el shell administrativo".

Actualizar una instancia de réplica

Nota: Si va a ejecutar varias instancias de réplica como parte de la replicación geográfica, repita este procedimiento para cada instancia de réplica, de forma individual.

  1. Actualice la instancia de réplica con las instrucciones de "Instalación de una revisión en caliente mediante 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
    1. 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 debe usar un paquete de actualización, ya que se encuentran en diferentes series de características. Para más información, vea "Requisitos de actualización".

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

Nota: Si ha habilitado las comprobaciones de actualizaciones automáticas, no es necesario descargar el paquete de actualizaciones y puede usar el archivo que se ha descargado automáticamente. Para más información, vea "Habilitación de comprobaciones automáticas de actualizaciones".

  1. SSH en your GitHub Enterprise Server instance. Si la instancia consta de varios nodos, por ejemplo, si la alta disponibilidad o la replicación geográfica están configuradas, utiliza SSH en el nodo principal. Si usas un clúster, puedes utilizar SSH en cualquier nodo. Para obtener más información acerca del acceso a SSH, consulta "Acceso al shell administrativo (SSH)".

    $ ssh -p 122 admin@HOSTNAME
  2. Vaya a la página de versiones de GitHub Enterprise Server. Junto a la versión a la que va a actualizar, haga clic en Download y después en la pestaña Upgrading. Seleccione la plataforma adecuada y copia la URL para obtener el paquete de actualización (archivo .pkg).

  3. Descargue el paquete de actualización a your GitHub Enterprise Server instance mediante 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 más información, vea "Habilitación y programación del modo de mantenimiento".

    Nota: Al actualizar el dispositivo principal en una configuración de alta disponibilidad, el dispositivo ya debería estar en modo de mantenimiento si sigue las instrucciones de "Actualización de la instancia principal".

  5. Ejecute el comando ghe-upgrade con el nombre del archivo de 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:

    *** applying update...
    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? [y/N]
  7. Para las actualizaciones de un solo dispositivo, deshabilite el modo mantenimiento para que los usuarios puedan usar your GitHub Enterprise Server instance.

    Nota: Cuando se actualizan dispositivos en una configuración de alta disponibilidad, debe mantenerse en modo de mantenimiento hasta que haya actualizado todas las réplicas y la replicación sea actual. Para más información, vea "Actualización de 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 la replicación, si se produce un error en la instancia primaria, se perderá cualquier trabajo que se realice antes de que la réplica esté actualizada y vuelva a comenzar la replicación.

  1. En la instancia primaria, habilita el modo mantenimiento y espera a que se completen todos los procesos activos. Para más información, vea "Habilitación del modo de 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 ejecuta varias como parte de una replicación geográfica, ejecute ghe-repl-stop para detener la replicación.
  4. Actualice la instancia principal mediante las instrucciones de "Actualización de un único dispositivo con un paquete de actualización".

Actualizar una instancia de réplica

Nota: Si va a ejecutar varias instancias de réplica como parte de la replicación geográfica, repita este procedimiento para cada instancia de réplica, de forma individual.

  1. Actualice la instancia de réplica mediante las instrucciones de "Actualización de un único dispositivo con un paquete de actualización". 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
    1. Verifica la mejora ejecutando:
    $ ghe-version
  3. En la instancia de réplica, para iniciar la replicación, ejecuta ghe-repl-start.

  4. En la instancia de réplica, para garantizar que los servicios de replicación se ejecuten correctamente, ejecute ghe-repl-status. Este comando devolverá OK para todos los servicios cuando hay una replicación correcta en curso y la réplica se haya actualizado. Si el comando devuelve Replication is not running, es posible que la replicación todavía se esté iniciando. Espere aproximadamente un minuto antes de volver a ejecutar ghe-repl-status.

    Note: While the resync is in progress ghe-repl-status may return expected messages indicating that replication is behind. For example: CRITICAL: git replication is behind the primary by more than 1007 repositories and/or gists

    Si ghe-repl-status no ha devuelto OK, póngase en contacto con Soporte técnico para GitHub Enterprise. Para más información, vea "Recepción de ayuda de Soporte de GitHub".

  5. Cuando haya completado la actualización de la última réplica, y se haya completado la resincronización, deshabilite el modo mantenimiento para que los usuarios puedan utilizar your GitHub Enterprise Server instance.

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 revertir una versión de revisión, use el comando ghe-upgrade con el modificador --allow-patch-rollback. Antes de la reversión, la replicación se debe detener temporalmente mediante la ejecución de ghe-repl-stop en todas las instancias de réplica. Al revertir una actualización, tendrá que usar un archivo de paquete de actualización con la extensión .pkg. Los archivos de paquete de revisión en caliente con la extensión .hpkg no se admiten.

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.

Una vez que se complete la reversión, reinicie la replicación mediante la ejecución de ghe-repl-start en todas las réplicas.

Para más información, vea "Utilidades de línea de comandos".

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 más información, vea "Realización de una instantánea".

Información adicional