Skip to main content

Supervisión y solución de problemas de ejecutores autohospedados

Puedes supervisar tus ejecutores autohospedados para ver su actividad y diagnosticar problemas comunes.

Platform navigation

Uso de ejecutores autohospedados de nivel de repositorio

Es posible que no puedas crear un ejecutor autohospedado para un repositorio que es propiedad de la organización.

Los propietarios de la organización pueden elegir los repositorios que pueden crear ejecutores autohospedados en el nivel de repositorio. .

Para más información, consulta Inhabilitar o limitar GitHub Actions para tu organización.

Comprobar el estado de un servicio del ejecutor autoalojado

Un ejecutor autohospedado se puede ubicar en al repositorio, en la organización o en la configuración de cuenta empresarial en GitHub. Para administrar un ejecutor auto-hospedado, debes tener los siguientes permisos, dependiendo de donde se agregó éste:

  • Repositorio de usuario: debe ser el propietario del repositorio.
  • Organización: debe ser el propietario de una organización.
  • Repositorio de la organización: debe ser el propietario de una organización o tener acceso de administrador al repositorio.
  1. En el repositorio o la organización, ve a la página principal y haz clic en Settings.

  2. En la barra lateral izquierda, haz clic en Acciones y, después, en Ejecutores.

  3. En "Ejecutores", puedes ver una lista de los ejecutores registrados, incluyendo su nombre, etiquetas y estado.

    El estado puede ser uno de los siguientes:

    • Inactivo: el ejecutor está conectado a GitHub y está listo para ejecutar trabajos.
    • Activo: el ejecutor ejecuta actualmente un trabajo.
    • Sin conexión: el ejecutor no está conectado a GitHub. Esto puede deberse a que la máquina está sin conexión, que la aplicación de ejecutor autohospedado no está en ejecución en la máquina, o bien a que la aplicación de ejecutor autohospedado no se puede comunicar con GitHub.

Solucionar problemas de la conectividad de red

Verificar la conectividad de red del ejecutor auto-hospedado

Puedes usar el script config de la aplicación de ejecutor autohospedado con el parámetro --check para comprobar que un ejecutor autohospedado puede acceder a todos los servicios de red necesarios en GitHub.

Además de --check, debe proporcionar dos argumentos al script:

  • --url con la URL al repositorio, organización o empresa de GitHub. Por ejemplo, --url https://github.com/octo-org/octo-repo.
  • --pat con el valor de un personal access token (classic), que debe tener el ámbito workflow o un fine-grained personal access token con acceso de lectura y escritura de flujos de trabajo. Por ejemplo, --pat ghp_abcd1234. Para más información, consulta Administración de tokens de acceso personal.

Por ejemplo:

config.cmd --check --url https://github.com/YOUR-ORG/YOUR-REPO --pat GHP_ABCD1234

El script prueba cada servicio y genera un valor PASSo FAIL para cada uno. Si tienes cualquier verificación fallida, puedes ver más detalles del problema en el archivo de bitácora de la verificación. Los archivos de registro se encuentra en el directorio _diag donde haya instalado la aplicación de ejecutor y la ruta del archivo de registro para cada comprobación se muestra en la salida de consola del script.

Si tienes alguna verificación fallida, también debes verificar que tu máquina ejecutora auto-hospedada cumpla con todos los requisitos de comunicación. Para más información, consulta Acerca de los ejecutores autohospedados.

Inhabilitar la verificación de certificados TLS

De manera predeterminada, la aplicación de ejecutor autohospedado comprueba el certificado TLS para GitHub. Si encuentras problemas de red, deberás inhabilitar la verificación de certificados TLS para propósitos de pruebas.

Para deshabilitar la comprobación de la certificación TLS en la aplicación de ejecutor autohospedado, establezca la variable de entorno GITHUB_ACTIONS_RUNNER_TLS_NO_VERIFY en 1 antes de configurar y ejecutar la aplicación de ejecutor autohospedado.

[Environment]::SetEnvironmentVariable('GITHUB_ACTIONS_RUNNER_TLS_NO_VERIFY', '1')
./config.cmd --url https://github.com/YOUR-ORG/YOUR-REPO --token
./run.cmd

Warning

No se recomienda inhabilitar la comprobación TLS, ya que TLS proporciona privacidad e integridad de datos entre la aplicación de ejecutor autohospedado y GitHub. Te recomendamos instalar el certificado GitHub en el almacén de certificados del sistema operativo para tu ejecutor auto-hospedado. Para encontrar instrucciones sobre cómo instalar el certificado GitHub, verifícalo con el proveedor del sistema operativo.

Revisar los archivos de bitácora de la aplicación del ejecutor auto-hospedado

Puedes supervisar el estado de la aplicación del ejecutor autohospedado y de sus actividades. Los archivos de registro se conservan en el directorio _diag donde ha instalado la aplicación de ejecutor y cada vez que se inicia la aplicación se genera un registro nuevo. El nombre de archivo comienza con Runner_, seguido de una marca de tiempo UTC de cuando se inició la aplicación.

Warning

Los archivos de registro de aplicaciones del ejecutor para ejecutores efímeros deben reenviarse y conservarse externamente para solucionar problemas y realizar diagnósticos. Para obtener más información sobre los ejecutores efímeros y los autohospedadosde escalado automático, consulta Autoescalar con ejecutores auto-hospedados.

Para obtener registros detallados sobre las ejecuciones de trabajos de flujo de trabajo, consulte la sección siguiente que describe los archivos Worker_.

Revisar el archivo de bitácora de un job

La aplicación del ejecutor auto-hospedado crea un archivo de bitácora detallado para cada job que procesa. Estos archivos se almacenan en el directorio _diag donde ha instalado la aplicación de ejecutor y el nombre de archivo comienza por Worker_.

Utilizar PowerShell para revisar el servicio de la aplicación del ejecutor auto-hospedado

Para los ejecutores autohospedados basados en Windows que se ejecuten en la aplicación como servicio, puedes utilizar PowerShell para supervisar su actividad en tiempo real. El servicio usa la convención de nomenclatura GitHub Actions Runner (<org>-<repo>.<runnerName>). También puede buscar el nombre del servicio si consulta el archivo .service en el directorio del ejecutor:

PS C:\actions-runner> Get-Content .service
actions.runner.octo-org-octo-repo.runner01.service

Puede ver el estado del ejecutor en la aplicación Servicios de Windows (services.msc). También puedes utilizar PowerShell para revisar si el servicio se está ejecutando:

PS C:\actions-runner> Get-Service "actions.runner.octo-org-octo-repo.runner01.service" | Select-Object Name, Status
Name                                                  Status
----                                                  ------
actions.runner.octo-org-octo-repo.runner01.service    Running

Puedes utilizar PowerShell para revisar la actividad reciente del ejecutor auto-hospedado. En esta salida de ejemplo, puede ver que se inicia la aplicación, se recibe un trabajo denominado testAction y, después, se muestra el estado resultante:

PS C:\actions-runner> Get-EventLog -LogName Application -Source ActionsRunnerService

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
     136 Mar 17 13:45  Information ActionsRunnerService          100 2020-03-17 13:45:48Z: Job Greeting completed with result: Succeeded
     135 Mar 17 13:45  Information ActionsRunnerService          100 2020-03-17 13:45:34Z: Running job: testAction
     134 Mar 17 13:41  Information ActionsRunnerService          100 2020-03-17 13:41:54Z: Listening for Jobs
     133 Mar 17 13:41  Information ActionsRunnerService          100 û Connected to GitHub
     132 Mar 17 13:41  Information ActionsRunnerService            0 Service started successfully.
     131 Mar 17 13:41  Information ActionsRunnerService          100 Starting Actions Runner listener
     130 Mar 17 13:41  Information ActionsRunnerService          100 Starting Actions Runner Service
     129 Mar 17 13:41  Information ActionsRunnerService          100 create event log trace source for actions-runner service

supervisar el proceso de actualización automática

Te recomendamos que revises el proceso de actualización automático a menudo, ya que el ejecutor auto-hospedado no podrá procesar jobs si cae debajo de cierto umbral de versiones. La aplicación del ejecutor auto-hospedado se actualiza automáticamente, pero nota que este proceso no incluye ninguna actualización al sistema operativo ni a otro tipo de software; necesitarás administrar estas actualizaciones por separado.

Puede ver las actividades de actualización en los archivos de registro Runner_. Por ejemplo:

[Feb 12 12:37:07 INFO SelfUpdater] An update is available.

Además, puede buscar más información en los archivos de registro SelfUpdate ubicados en el directorio _diag donde ha instalado la aplicación de ejecutor.

Comprobación del motor de Docker instalado en el ejecutor

Si se produce el error siguiente en la compilación:

Error: Input required and not supplied: java-version

Comprueba qué motor de Docker está instalado en el ejecutor autohospedado. Para pasar las entradas de una acción al contenedor de Docker, el ejecutor usa variables de entorno que podrían contener guiones como parte de sus nombres. Es posible que la acción no pueda obtener las entradas si el motor de Docker no es un ejecutable binario, sino un contenedor de shell o un vínculo (por ejemplo, un motor de Docker instalado en Linux mediante snap). Para solucionar este error, configura el ejecutor autohospedado de modo que use otro motor de Docker.

Para comprobar si el motor de Docker se instaló mediante snap, usa el comando which. En el ejemplo siguiente, el motor de Docker se instaló mediante snap:

$ which docker
/snap/bin/docker