Puede actualizar su instancia GitHub Enterprise Server mediante la API Manage GitHub Enterprise Server o la extensión gh es para GitHub CLI. Estas herramientas automatizan el proceso de descarga del paquete de actualización, la ejecución de comprobaciones previas a la actualización y la aplicación de la nueva versión.
Prerequisites
- Realice una copia de seguridad de los datos con GitHub Enterprise Server Backup Utilities.
- Programar una ventana de mantenimiento para los usuarios finales.
- Asegúrese de que puede autenticarse en la API de administración GitHub Enterprise Server . Para obtener más información, vea Puntos de conexión de la API REST para la administración de GitHub Enterprise.
Automatización de una actualización mediante la API REST
-
Descargue el paquete de actualización.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download \ -d '{"version":"VERSION"}' -
Confirme que la descarga se ha completado antes de continuar.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download/statusEspere hasta que
statusmuestreCOMPLETED. -
Aplique la fase previa de la actualización.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION", "phase":"pre-upgrade"}' -
Supervise la fase de actualización previa hasta que finalice.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?is_verbose=true"Espere hasta que
statusmuestrecompletedyis_runningmuestrefalse. -
Habilite el modo de mantenimiento.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":true}' -
Aplique la fase de actualización del proceso de actualización.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION", "phase":"upgrade"}' -
Confirme que se ha actualizado la versión de lanzamiento.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/version -
Deshabilita el modo de mantenimiento.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":false}'
Automatización de una actualización mediante la GitHub CLI extensión
-
Descargue el paquete de actualización. Para descargar una versión específica, especifique la
--versionmarca; de lo contrario, se descarga la versión más reciente disponible.# Download a specific version gh es upgrade download --version VERSION # Or download the latest available version gh es upgrade download -
Confirme que la descarga se ha completado antes de continuar.
gh es upgrade download statusEspere hasta que
statusmuestreCOMPLETED. -
Aplique la fase previa de la actualización.
gh es upgrade apply --version VERSION --phase pre-upgrade -
Supervise la fase de actualización previa hasta que finalice.
gh es upgrade status --verboseEspere hasta que
statusmuestrecompletedyis_runningmuestrefalse. -
Habilite el modo de mantenimiento.
gh es maintenance set --enabled true -
Aplique la fase de actualización del proceso de actualización.
gh es upgrade apply --version VERSION --phase upgrade -
Confirme que se ha actualizado la versión de lanzamiento.
gh es release version -
Deshabilita el modo de mantenimiento.
gh es maintenance set --enabled false
Actualización de una implementación de alta disponibilidad
Por ejemplo, con una réplica de alta disponibilidad (HA), las fases de descarga y actualización previa no son perjudiciales y pueden ejecutarse en todos los nodos a la vez. La especificación del UUID de destino solo es necesaria para la propia fase de actualización, que provoca el reinicio. Esto le permite controlar el orden en que se reinician los nodos: reinicie primero la réplica y, a continuación, el principal.
Para recuperar los UUID de nodo, ejecute gh es config get-metadata o consulte GET /manage/v1/config/nodes.
Actualización de una implementación de alta disponibilidad mediante GitHub CLI
-
Descargue el paquete en todos los nodos.
gh es upgrade download --version VERSION -
Espere a que se complete la descarga en todos los nodos.
gh es upgrade download status -
Ejecute la fase de actualización previa en todos los nodos a la vez. Esta fase no provoca interrupciones.
gh es upgrade apply --version VERSION --phase pre-upgrade -
Espere a que se complete la fase de actualización previa.
gh es upgrade status --verbose -
Habilite el modo de mantenimiento.
gh es maintenance set --enabled true -
Detenga la replicación en la réplica.
ghe-repl-stop -
Actualice primero la principal, que desencadena el reinicio y, a continuación, supervise su progreso.
gh es upgrade apply --version VERSION --phase upgrade --uuid PRIMARY-UUID gh es upgrade status --uuid PRIMARY-UUID --verbose -
Cuando el nodo principal finalice, actualice la réplica y supervise su progreso.
gh es upgrade apply --version VERSION --phase upgrade --uuid REPLICA-UUID gh es upgrade status --uuid REPLICA-UUID --verbose -
Vuelva a iniciar la replicación en la réplica.
ghe-repl-start -
Compruebe el estado de replicación y la versión y, a continuación, deshabilite el modo de mantenimiento.
gh es replication status gh es release version gh es maintenance set --enabled false
Actualización de una implementación de alta disponibilidad mediante la API REST
-
Descargue el paquete en todos los nodos.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download \ -d '{"version":"VERSION"}' -
Espere a que se complete la descarga en todos los nodos.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download/status -
Ejecute la fase de actualización previa en todos los nodos a la vez. Esta fase no provoca interrupciones.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION","phase":"pre-upgrade"}' -
Espere a que se complete la fase de actualización previa.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?is_verbose=true" -
Habilite el modo de mantenimiento.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":true}' -
Detenga la replicación en la réplica.
ghe-repl-stop -
Actualice primero la principal, que desencadena el reinicio y, a continuación, supervise su progreso.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION","phase":"upgrade","uuid":"PRIMARY-UUID"}' curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?uuid=PRIMARY-UUID&is_verbose=true" -
Cuando finalice la instancia principal, actualice la réplica y supervise su progreso.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION","phase":"upgrade","uuid":"REPLICA-UUID"}' curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?uuid=REPLICA-UUID&is_verbose=true" -
Vuelva a iniciar la replicación en la réplica.
ghe-repl-start -
Compruebe el estado de replicación y la versión y, a continuación, deshabilite el modo de mantenimiento.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/replication/status curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/version curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":false}'