Verificar la salud de las GitHub Actions
Puedes comprobar el estado de GitHub Actions en tu instancia de GitHub Enterprise Server con la utilidad de la línea de comandos ghe-actions-check
. Para más información, consulta Utilidades de la ea de comandos y Acceder al shell administrativo (SSH).
Configurar los ejecutores auto-hospedados cuando utilizas un certificado auto-firmado para GitHub Enterprise Server
Te recomendamos ampliamente que configures el TLS en GitHub Enterprise Server con un certificado que firme una autoridad confiable. Aunque un certificado auto-firmado podría funcionar, se requeriría una configuración adicional para tus ejecutores auto-hospedados y esto no se recomienda para los ambientes productivos. Para obtener más información, consulta Configurar TLS.
Instalar el certificado en la máquina ejecutora
Para que un ejecutor auto-hospedado se conecte a GitHub Enterprise Server utilizando un certificado auto-firmado, debes instalarlo en la máquina ejecutora para que la seguridad de la conexión se fortalezca.
Para encontrar los pasos necesarios para instalar un certificado, refiérete a la documentación del sistema operativo de tu ejecutor.
Configurar Node.JS para utilizar el certificado
La mayoría de las acciones se escriben en JavaScript y se ejecutan utilizando Node.js, lo cual no utiliza el almacenamiento del certificado del sistema operativo. Para que la aplicación del ejecutor autohospedado use el certificado, debe establecer la variable de entorno NODE_EXTRA_CA_CERTS
en el equipo del ejecutor.
Puede establecer la variable de entorno como una variable de entorno del sistema o declararla en un archivo denominado .env
en el directorio de aplicaciones del ejecutor autohospedado (es decir, el directorio en el que descargó y desempaquetó el software del ejecutor).
Por ejemplo:
NODE_EXTRA_CA_CERTS=/usr/share/ca-certificates/extra/mycertfile.crt
Las variables de ambiente se leen cuando la aplicación ejecutora auto-hospedada inicia, así que debes configurar la variable de ambiente antes de configurar o iniciar la aplicación ejecutora auto-hospedada. Si cambia la configuración de tu certificado, debes reiniciar la aplicación ejecutora auto-hospedada.
Configurar los contenedores de Docker para que utilicen el certificado
Si utilizas las acciones de contenedor de Docker o los contenedores de servicio en tus flujos de trabajo, puede que también necesites instalar el certificado en tu imagen de Docker adicionalmente a configurar la variable de ambiente anterior.
Configurar los ajustes de proxy HTTP para GitHub Actions
Si tiene un servidor proxy HTTP configurado en GitHub:
- Debe agregar
.localhost
,127.0.0.1
y::1
a la lista de exclusión de proxy HTTP (en ese orden). - Si la ubicación del almacenamiento externo no es enrutable, también debes agregar la dirección URL del almacenamiento externo a la lista de exclusión.
Para más información sobre cómo cambiar la configuración del proxy, consulta "Configuración de un servidor proxy web de salida".
Si estas opciones no están configuradas correctamente, es posible que reciba errores como Resource unexpectedly moved to https://IP-ADDRESS
al establecer o cambiar la configuración de GitHub Actions.
Los ejecutores no se conectan a GitHub Enterprise Server con un nombre de host nuevo
Warning
No cambies el nombre de host de GitHub Enterprise Server después de la configuración inicial. Cambiar el nombre del host ocasionará un comportamiento inesperado que puede incluir, llegar hasta la interrupción del servicio y a la invalidación de las claves de seguridad de los usuarios. Si ha cambiado el nombre de host de la instancia y tiene problemas, póngase en contacto con Soporte técnico para GitHub Enterprise o Soporte prémium de GitHub.
Si despliegas a GitHub Enterprise Server en tu ambiente con un nombre de host nuevo y el nombre de host anterior ya no resuelve hacia tu instancia, los ejecutores auto-hospedados no podrán conectarse al nombre de host anterior y no se ejecutará ningún job.
Necesitarás actualizar la configuración de tus ejecutores auto-hospedados para utilizar el nuevo nombre de host para tu instancia de GitHub Enterprise Server. Cada ejecutor auto-hospedado necesitará alguno de los siguientes procedimientos:
- En el directorio de aplicaciones del ejecutor autohospedado, edite los archivos
.runner
y.credentials
para reemplazar todas las menciones del nombre de host antiguo por el nuevo nombre de host y, a continuación, reinicie la aplicación del ejecutor autohospedado. - Elimina al ejecutor de GitHub Enterprise Server utilizando la IU, y vuelve a agregarlo. Para más información, consulta Eliminar ejecutores autoalojados y Agrega ejecutores auto-hospedados.
Jobs atorados y límites de CPU y de memoria de las GitHub Actions
GitHub Actions se compone de varios servicios que se ejecutan en tu instancia de GitHub Enterprise Server. Predeterminadamente, estos servicios se configuran con límites predeterminados de CPU y de memoria que deberían funcionar con la mayoría de las instancias. Sin embargo, los usuarios asiduos de GitHub Actions podrían encesitar ajustar esta configuración.
Puede que estés llegando a los límites de CPU o de memoria si notas que los jobs no están iniciando (aún si hay ejecutores inactivos), o si el progreso del job no se actualiza o cambia en la IU.
1. Verifique el uso total de la memoria y la CPU en la consola de administración
Accede a la consola de administración y utiliza el tablero de monitoreo para inspeccionar las gráficas del total de memoria y de CPU debajo de "Salud del Sistema". Para más información, consulta Acerca del panel de supervisión.
Si la "Salud del sistema" para el uso total de CPU está cerca del 100 % o si ya no queda memoria libre, tu instancia de GitHub Enterprise Server se está ejecutando al total de su capacidad y necesita escalarse. Para más información, consulta Aumentar el CPU o los recursos de memoria.
2. Verifique el uso de CPU y memoria de los trabajos nómadas en la consola de administración
Si la "Salud del sistema" para el uso total de CPU y memoria están bien, desplázate a la parte inferior de la página, hacia la sección de "Jobs nómadas", y revisa las g´raficas de "Valor porcentual de CPU" y de "Uso de memoria".
Cada sección en estas gráficas corresponde a un servicio. Para los servicios de GitHub Actions, busca:
mps_frontend
mps_backend
token_frontend
token_backend
actions_frontend
actions_backend
Si cualquiera de estos servicios estan cerca de o en 100% de uso de CPU, o si la memoria está cerca de su límite (2 GB, predeterminadamente), entonces el recurso de asignación para estos servicios podría necesitar un aumento. Toma nota de cuáles de los servicios antes descritos están cerca de o en su límite.
3. Incremente la asignación de recursos para los servicios que están en su límite
-
Ingresa en el shell administrativo utilizando SSH. Para más información, consulta Acceder al shell administrativo (SSH).
-
Ejecuta el siguiente comando para ver qué recursos se encuentran disponibles para su asignación:
nomad node status -self
En la salida, encuentra la sección de "Recursos asignados". Es similar al ejemplo siguiente:
Allocated Resources CPU Memory Disk 7740/49600 MHZ 23 GiB/32 GiB 4.4 GiB/7.9 GiB
En el caso de la CPU y la memoria, se muestra cuánto se asigna al total de todos los servicios (el valor izquierdo) y cuánto está disponible (el valor derecho). En el ejemplo anterior, hay 23 GiB de memoria asignada de los 32 GiB totales. Esto significa que hay 9 GiB de memoria disponibles para asignar.
Warning
Ten cuidado de no asignar más del total de los recursos disponibles o los servicios no podrán iniciarse.
-
Cambie el directorio a
/etc/consul-templates/etc/nomad-jobs/actions
:cd /etc/consul-templates/etc/nomad-jobs/actions
En este directorio hay tres archivos que corresponden a los servicios de GitHub Actions descritos anteriormente:
mps.hcl.ctmpl
token.hcl.ctmpl
actions.hcl.ctmpl
-
Para los servicios en los que identificó una necesidad de ajuste, abra el archivo correspondiente y ubique el grupo
resources
, que tiene el siguiente aspecto:resources { cpu = 512 memory = 2048 network { port "http" { } } }
Los valores están en MHz para los recursos de CPU y en MB para los recursos de memoria.
Por ejemplo, para incrementar los límites de recursos en el ejemplo anterior a 1 GHz para el CPU y 4 GB de memoria, cámbialos a:
resources { cpu = 1024 memory = 4096 network { port "http" { } } }
-
Guarde y cierre el archivo.
-
Ejecute
ghe-config-apply
para aplicar los cambios.Al ejecutar
ghe-config-apply
, si ve una salida comoFailed to run nomad job '/etc/nomad-jobs/<name>.hcl'
, es probable que el cambio haya asignado más recursos de CPU o memoria de la cuenta. Si esto sucede, vuelva a editar los archivos de configuración y reduzca la CPU o memoria asignadas y vuelva a ejecutarghe-config-apply
. -
Una vez aplicada la configuración, ejecute
ghe-actions-check
para comprobar que los servicios de GitHub Actions estén operativos.
Solucionar los fallos cuando el Dependabot active los flujos de trabajo existentes
Después de configurar las actualizaciones del Dependabot para tu instancia de GitHub Enterprise Server, puedes ver errores cuando los flujos de trabajo existentes los desencadenan los eventos del Dependabot.
De manera predeterminada, las ejecuciones de flujo de trabajo de GitHub Actions que se activan desde Dependabot a partir de los eventos push
, pull_request
, pull_request_review
o pull_request_review_comment
se tratan como si se abrieran desde una bifurcación de repositorio. A diferencia de los flujos de trabajo que activan otros actores, esto significa que recibieron un GITHUB_TOKEN
de solo lectura y no tienen acceso a ninguno de los secretos que normalmente se encuentran disponibles. Esto ocasionará que cualquier flujo de trabajo que intente escribir en el repositorio falle cuando los activa el Dependabot.
Hay tres formas de resolver este problema:
- Puede actualizar los flujos de trabajo para que ya nos los active Dependabot mediante una expresión como:
if: github.actor != 'dependabot[bot]'
. Para obtener más información, vea «Evaluación de expresiones en flujos de trabajo y acciones». - Puede modificar los flujos de trabajo para usar un proceso en dos pasos que incluya
pull_request_target
, que no tiene estas limitaciones. Para obtener más información, vea «Automatizar al Dependabot con las GitHub Actions». - Puede proporcionar acceso a los flujos de trabajo que activa Dependabot a secretos y permitir que el término
permissions
aumente el alcance predeterminado deGITHUB_TOKEN
. Para obtener más información, consulta Proporcionar acceso a los flujos de trabajo que activa Dependabot para los secretos y permisos incrementados a continuación.
Proporcionar acceso a los flujos de trabajo que activa el Dependabot para los secretos y permisos incrementados
-
Ingresa en el shell administrativo utilizando SSH. Para más información, consulta Acceder al shell administrativo (SSH).
-
Para eliminar estas limitaciones sobre los flujos de trabajo que desencadena el Dependabot en tu instancia de GitHub Enterprise Server, utiliza el siguiente comando.
ghe-config app.actions.disable-dependabot-enforcement true
-
Aplique la configuración.
ghe-config-apply
-
Regresar a GitHub Enterprise Server.
Solución de problemas en las acciones empaquetadas en GitHub Actions
Si se produce el siguiente error al instalar GitHub Actions en GitHub Enterprise Server, puede resolverlo si instala las acciones empaquetadas oficiales y plantillas de flujo de trabajo.
A part of the Actions setup had problems and needs an administrator to resolve.
Para instalar las acciones empaquetadas oficiales y las plantillas de flujo de trabajo dentro de una organización designada en GitHub Enterprise Server, realice el siguiente procedimiento.
-
Identifique una organización que almacenará las acciones empaquetadas oficiales y las plantillas de flujo de trabajo. Puedes crear una organización nueva o reutilizar una existente.
- Para crear una organización, consulta Crear una organización nueva desde cero.
- Para obtener ayuda a la hora de elegir un nombre para esta organización, consulta Iniciar con GitHub Actions para GitHub Enterprise Server.
-
Ingresa en el shell administrativo utilizando SSH. Para más información, consulta Acceder al shell administrativo (SSH).
-
Para designar la organización como la ubicación donde almacenar las acciones agrupadas, use el comando
ghe-config
y reemplaceORGANIZATION
por el nombre de la organización.ghe-config app.actions.actions-org ORGANIZATION
y:
ghe-config app.actions.github-org ORGANIZATION
-
Para agregar las acciones empaquetadas a tu organización, desactiva el SHA.
ghe-config --unset 'app.actions.actions-repos-sha1sum'
-
Aplique la configuración.
ghe-config-apply
Una vez completados estos pasos, puedes reanudar la configuración de GitHub Actions en Iniciar con GitHub Actions para GitHub Enterprise Server.