Acerca de las actualizaciones a un GitHub Enterprise Server clúster
GitHub Enterprise Server se encuentra en una mejora constante y agrega correcciones de errores y funcionalidades nuevas a través del lanzamiento de características y parches. Eres el responsable de las actualizaciones de la instancia. Para más información, consulta Acerca de las actualizaciones en los nuevos lanzamientos.
Para actualizar una instancia, debe planificar y comunicar la actualización, elegir el paquete adecuado, hacer una copia de seguridad de los datos y, a continuación, realizar la actualización.
Actualizar con un hotpatch
Puede actualizar GitHub Enterprise Server a la última versión de parche mediante un parche en caliente.
Puedes usar el hotpatching para actualizar a una versión de revisión más reciente, pero no a una versión con nuevas funcionalidades. Por ejemplo, puedes subir de nivel de 2.10.1 a 2.10.5 porque están en 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.
Los parches en caliente no siempre requieren un reinicio. Cuando instales el hotpatch, verás un mensaje en el terminal si alguno de los paquetes requiere reiniciar el sistema para completar la actualización. Puede programar este reinicio en un momento que le convenga, pero se recomienda reiniciar tan pronto como sea práctico, especialmente si hay alguna corrección de seguridad.
Los hotpatches requieren una ejecución de configuración, lo que puede provocar un breve período de errores o falta de respuesta para algunos o todos los servicios de tu instancia de GitHub Enterprise Server. No es necesario habilitar el modo de mantenimiento durante la instalación de un parche en caliente, pero hacerlo garantizará que los usuarios vean una página de mantenimiento en lugar de errores o tiempos de espera. Consulta Habilitar y programar el modo de mantenimiento. El script de instalación de hotpatch instala el hotpatch en cada nodo del clúster y reinicia los servicios en su secuencia correcta para evitar tiempo de inactividad.
-
Realice una copia de seguridad de los datos con GitHub Enterprise Server Backup Utilities.
-
Desde el shell administrativo de cualquier nodo, use el comando
ghe-cluster-hotpatchpara instalar la última revisión en caliente. Puedes proporcionar una URL para un hotpatch, o descargar manualmente el hotpatch y especificar un nombre de archivo local.ghe-cluster-hotpatch https://HOTPATCH-URL/FILENAME.hpkg
Actualizar mediante un paquete de actualización de software
Use un paquete de actualización para actualizar un GitHub Enterprise Server clúster a la versión de características más reciente. Por ejemplo, puede actualizar de 2.11 a 2.13.
Preparar para una actualización
-
Revisa Configuración de la red de agrupaciones para la versión a la que vayas a actualizar y actualiza la configuración según sea necesario.
-
Realice una copia de seguridad de los datos con GitHub Enterprise Server Backup Utilities.
-
Programe una ventana de mantenimiento para los usuarios finales del GitHub Enterprise Server clúster, ya que no estará disponible para su uso normal durante la actualización. El modo de mantenimiento bloquea el acceso de los usuarios e impide que se realicen cambios en los datos mientras la actualización de la agrupación está en curso.
-
En la GitHub Enterprise Server página de descarga, copie la dirección URL del archivo de actualización .pkg en el portapapeles.
-
Desde el shell administrativo de cualquier nodo, use el comando
ghe-cluster-eachcombinado concurla fin de descargar el paquete de versión para cada nodo en un solo paso. Usa la URL que copiaste en el paso anterior como argumento.$ ghe-cluster-each -- "cd /home/admin && curl -L -O https://PACKAGE-URL.pkg" > ghe-app-node-1: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-app-node-1: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 24.2M 0 0:00:20 0:00:20 --:--:-- 27.4M > ghe-data-node-2: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-2: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 21.3M 0 0:00:23 0:00:23 --:--:-- 25.8M > ghe-data-node-1: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-1: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.6M > ghe-app-node-2: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-app-node-2: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.8M 0 0:00:25 0:00:25 --:--:-- 17.6M > ghe-data-node-3: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-3: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.5M -
Identifique el nodo MySQL principal, que se define como
mysql-master = <hostname>encluster.conf. Este será el último nodo que se actualizará.
Actualizar los nodos de la agrupación
-
Para habilitar el modo de mantenimiento en función de la ventana de programación, conéctese al shell administrativo de cualquier nodo de clúster y ejecute
ghe-cluster-maintenance -s. -
Con la excepción del nodo mySQL principal, conéctese al shell administrativo de cada uno de los GitHub Enterprise Server nodos. Ejecuta el comando
ghe-upgradey proporciona el nombre del archivo de paquete que has descargado en el paso 4 de Preparación para la actualización:$ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A > gpg: checking the trustdb > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model > gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) > <enterprise@github.com>" -
El proceso de actualización reiniciará el nodo MySQL principal una vez que esté completo. Compruebe que puede usar
pingen cada nodo después de reiniciarlo. -
Conecta con el shell administrativo del nodo MySQL principal. Ejecuta el comando
ghe-upgradey proporciona el nombre del archivo de paquete que has descargado en el paso 4 de Preparación para la actualización:$ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A > gpg: checking the trustdb > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model > gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) > <enterprise@github.com>" -
El proceso de actualización reiniciará el nodo MySQL principal una vez que esté completo. Comprueba que puedes usar
pingen cada nodo después de reiniciarloImportante
Antes de continuar con el paso siguiente, debes esperar a que se complete la configuración posterior a la actualización. Para supervisar el progreso de la ejecución de configuración, lee la salida en
/data/user/common/ghe-config.log. Por ejemplo, puedes seguir el registro ejecutando el siguiente comando:tail -f /data/user/common/ghe-config.log -
Conéctese al shell administrativo del nodo MySQL principal y ejecute el comando
ghe-cluster-config-apply. -
Cuando termines
ghe-cluster-config-apply, ejecutaghe-cluster-statuspara comprobar que los servicios están en un estado correcto. -
Ejecute
ghe-cluster-maintenance -upara salir del modo de mantenimiento del shell administrativo de cualquier nodo.