Skip to main content

Acerca de los ejecutores autohospedados

Puedes alojar tus propios ejecutores y personalizar el entorno utilizado para ejecutar trabajos en tus flujos de trabajo de GitHub Actions.

Acerca de los ejecutores autohospedados

Un ejecutor autohospedado es un sistema que se despliega y administra para ejecutar trabajos de GitHub Actions en GitHub Enterprise Cloud. Para más información sobre GitHub Actions, consulta "Entender las GitHub Actions" y "Acerca de las GitHub Actions para las empresas".

Los ejecutores autohospedados ofrecen más control sobre el hardware, el sistema operativo y las herramientas de software que el que ofrecen los ejecutores hospedados en GitHub. Con los ejecutores autohospedados, puede crear configuraciones de hardware personalizadas que satisfagan las necesidades con potencia de procesamiento o memoria para ejecutar trabajos más grandes, instalar software disponible en la red local y elegir un sistema operativo que no ofrecen los ejecutores hospedados en GitHub. Los ejecutores autohospedados pueden ser físicos, virtuales, en un contenedor, locales o en una nube.

Puedes agregar ejecutores auto-hospedados en varios niveles dentro de la jerarquía de administración:

  • Los ejecutores a nivel de repositorio están dedicados a un solo repositorio.
  • Los ejecutores a nivel de organización pueden procesar jobs para varios repositorios dentro de una organización.
  • Los ejecutores a nivel de empresa puede asignarse a varias organizaciones en una cuenta empresarial.

La máquina de tu ejecutor se conecta aGitHub Enterprise Cloud utilizando la aplicación para ejecutores auto-hospedados de GitHub Actions. La aplicación ejecutora de GitHub Actions es de código abierto. Puede contribuir y presentar incidencias en el repositorio runner. Cuando se lanza una versión nueva, la aplicación ejecutora se actualiza automáticamente cuando un job se asigna al ejecutor o dentrod e una semana de lanzamiento si no se le ha asignado ningún job a dicho ejecutor.

Un ejecutor autohospedado se eliminará automáticamente de GitHub Enterprise Cloud si no se ha conectado a GitHub Actions durante más de 14 días. Un ejecutor efímero auto-hospedado se eliminará automáticamente de GitHub Enterprise Cloud si no se ha conectado a GitHub Actions por más de 1 día.

Para obtener más información sobre cómo instalar y usar ejecutores autohospedados, consulta "Agrega ejecutores auto-hospedados" y "Uso de ejecutores autohospedados en un flujo de trabajo".

Diferencias entre ejecutores autohospedados y hospedados en GitHub

Los ejecutores hospedados en GitHub ofrecen una manera más rápida y sencilla de ejecutar los flujos de trabajo, mientras que los ejecutores autohospedados son una manera muy configurable de ejecutar flujos de trabajo en su propio entorno personalizado.

Ejecutor alojado en GitHub:

  • Reciben actualizaciones automáticas para el sistema operativo, paquetes y herramientas preinstalados y la aplicación del ejecutor autohospedado.
  • Son administrados y mantenidos por GitHub.
  • Proporcionan una instancia limpia para cada ejecución de trabajo.
  • Usan minutos libres en tu plan de GitHub, con tarifas por minuto aplicadas después de superar los minutos libres.

Ejecutores autohospedados:

  • Solo reciben actualizaciones automáticas para la aplicación de ejecutor autohospedado, aunque puede deshabilitar las actualizaciones del ejecutor. Para más información sobre cómo controlar las actualizaciones de software del ejecutor en los ejecutores autohospedados, consulta "Autoescalar con ejecutores auto-hospedados". Usted es responsable de actualizar el sistema operativo y el resto del software.
  • Pueden usar servicios en la nube o máquinas locales por las que ya paga.
  • Son personalizables según sus requisitos de hardware, sistema operativo, software y seguridad.
  • No necesitan una instancia limpia para cada ejecución de trabajo.
  • Se pueden utilizar gratis con GitHub Actions, pero eres responsable del costo de mantener tus máquinas ejecutoras.
  • Se pueden organizar en grupos para restringir el acceso a los flujos de trabajo, organizaciones y repositorios específicos. Para más información, consulta "Administración del acceso a los ejecutores autohospedados mediante grupos".

Requisitos para máquinas de ejecutores autoalojados

Puedes usar cualquier máquina como ejecutor autoalojado, siempre que cumpla con estos requisitos:

Autoescalar tus ejecutores auto-hospedados

Puedes aumentar o disminuir la cantidad de ejecutores auto-hospedados automáticamente en tu ambiente como respuesta a los eventos de webhook que recibes. Para obtener más información, vea «Autoescalar con ejecutores auto-hospedados».

Límites de uso

Hay algunos límites para el uso de las GitHub Actions cuando se utilizan ejecutores auto-hospedados. Estos límites están sujetos a cambios.

  • Tiempo de ejecución del flujo de trabajo: cada flujo de trabajo está limitado a 35 días. Si un flujo de trabajo llega a este límite, se cancelará. Este periodo incluye la duración de la ejecución y el tiempo invertido en la espera y la aprobación.
  • Tiempo de cola de trabajos: cada trabajo para ejecutores autohospedados se puede poner en cola durante un máximo de 24 horas. El tiempo real en cola puede alcanzar hasta 48 horas antes de que se produzca la cancelación. Si un ejecutor auto-hospedado no comienza a ejecutar el job dentro de este límite de tiempo, dicho job se terminará y no se podrá completar.
  • Solicitudes de API: puedes ejecutar hasta 15 000 solicitudes en la API de GitHub en una hora en todas las acciones de un repositorio. Si se supera este número, las llamadas API adicionales fallarán, lo cual puede ocasionar que los trabajos fallen también.
  • Matriz de trabajos: Una matriz de jobs puede generar un máximo de 256 jobs por ejecución de flujo de trabajo. Este límite se aplica tanto a los ejecutores autohospedados como a los hospedados por GitHub Enterprise Cloud.
  • Cola de ejecución de flujos de trabajo: no se pueden poner en cola más de 500 ejecuciones de flujo de trabajo en un intervalo de 10 segundos por repositorio. Si una ejecución de flujo de trabajo lelga a su límite, la ejecución de flujo de trabajo se termina y falla en completarse.
  • Registro de ejecutores autohospedados: puedes tener hasta 10 000 ejecutores autohospedados en un grupo de ejecutores. Si se alcanza este límite, no será posible agregar más ejecutores.

Continuidad de los flujos de trabajo para los ejecutores auto-hospedados

Si los servicios de las GitHub Actions se encuentran temporalmente no disponibles, entonces se descartará una ejecución de flujo de trabajo si no se puso en cola en los primeros 30 minutos después de activarse. Por ejemplo, si un flujo de trabajo se activa y los servicios de las GitHub Actions no están disponibles por 31 minutos o más, entonces la ejecución de flujo de trabajo no se procesará.

Sistemas operativos y arquitecturas compatibles para los ejecutores auto-hospedados

Los siguientes sistemas operativos son compatibles con la aplicación del ejecutor autoalojado.

Linux

  • Red Hat Enterprise Linux 7 o superior
  • CentOS 7 o superior
  • Oracle Linux 7 o posterior
  • Fedora 29 o posterior
  • Debian 9 o posterior
  • Ubuntu 16.04 o posterior
  • Linux Mint 18 o posterior
  • openSUSE 15 o posterior
  • SUSE Enterprise Linux (SLES) 12 SP2 o posterior

Windows

  • Windows 7 64-bit
  • Windows 8.1 de 64 bits
  • Windows 10 de 64 bits
  • Windows 11 de 64 bits
  • Windows Server 2016 de 64 bits
  • Windows Server 2019 64-bit
  • Windows Server 2022, 64 bits

macOS

  • macOS 11.0 (Big Sur) o posterior

Arquitecturas

Las siguientes arquitecturas de procesamiento son compatibles para la aplicación del ejecutor auto-hospedado.

  • x64: Linux, macOS, Windows.
  • ARM64: Linux, macOS, Windows (actualmente en versión beta).
  • ARM32: Linux.

La comunicación entre ejecutores autoalojados y GitHub Enterprise Cloud

El ejecutor auto-hospedado se conecta a GitHub Enterprise Cloud para recibir asignaciones de jobs y para descargar versiones nuevas de la aplicación ejecutora. El ejecutor autohospedado usa un sondeo largo de HTTPS que abre una conexión a GitHub Enterprise Cloud durante 50 segundos y, si no se recibe una respuesta, agota el tiempo de espera y crea un sondeo largo. La aplicación debe estar ejecutándose en la máquina para aceptar y ejecutar trabajos de GitHub Actions.

La conexión entre los ejecutores autohospedados y GitHub Enterprise Cloud se realiza mediante HTTPS (puerto 443).

Como el ejecutor autohospedado abre una conexión a GitHub.com, no es necesario permitir que GitHub realice conexiones de entrada al ejecutor autohospedado.

Debes asegurarte de que la máquina tenga el acceso adecuada a la red para comunicarse con los hosts de GitHub que se listan a continuación. Algunos hosts son necesarios para que se lleven a cabo las operaciones de los ejecutores esenciales, mientras que otros solo son necesarios para algunas funcionalidades específicas.

Puedes usar la API REST para obtener la metainformación sobre GitHub, incluidas las direcciones IP de los servicios de GitHub. Para más información sobre los dominios y las direcciones IP que se usan, consulta "Puntos de conexión de la API de REST para metadatos".

Nota: Algunos de los dominios que se enumeran a continuación se configuran mediante registros CNAME. Es posible que algunos firewalls necesiten agregar reglas de forma recursiva para todos los registros CNAME. Tenga en cuenta que es posible que los registros CNAME cambien en el futuro y que solo los dominios enumerados a continuación permanezcan constantes.

Necesarios para operaciones esenciales:

Shell
github.com
api.github.com
*.actions.githubusercontent.com

Necesarios para acciones de descarga:

Shell
codeload.github.com

Necesarios para cargar o descargar resúmenes de trabajos, registros, artefactos de flujo de trabajo y cachés:

Shell
results-receiver.actions.githubusercontent.com
*.blob.core.windows.net

Necesarios para las actualizaciones de versión del ejecutor:

Shell
objects.githubusercontent.com
objects-origin.githubusercontent.com
github-releases.githubusercontent.com
github-registry-files.githubusercontent.com

Necesarios para recuperar tokens de OIDC:

Shell
*.actions.githubusercontent.com

Necesario para descargar o publicar paquetes o contenedores en GitHub Packages:

Shell
*.pkg.github.com
ghcr.io

Se necesita para Almacenamiento de archivos de gran tamaño de Git

Shell
github-cloud.githubusercontent.com
github-cloud.s3.amazonaws.com

Adicionalmente, tu flujo de trabajo podría requerir acceso a otros recursos de red.

Si usas una lista de permisos de dirección IP para tu organización o cuenta de empresa de GitHub, debes agregar la dirección IP de tu ejecutor autoalojado a la lista de permisos. Para más información, vea "Administración de direcciones IP permitidas para la organización" o "Aplicación de directivas para la configuración de seguridad en la empresa".

También puedes usar ejecutores autoalojados con un servidor proxy. Para obtener más información, vea «Uso de un servidor proxy con ejecutores autohospedados».

Para más información sobre cómo solucionar problemas comunes de conectividad de red, consulta "Supervisión y solución de problemas de ejecutores autohospedados".

Seguridad de los ejecutores auto-hospedados

Te recomendamos que solo utilices los ejecutores auto-hospedados con los repositorios privados. Esto se debe a que las bifurcaciones de tu repositorio público podrían ejecutar un código peligroso en tu máquina de ejecutor auto-hospedado al crear una solicitud de cambios que excluya el código en un flujo de trabajo.

Este no es un problema con los ejecutores hospedados en GitHub, ya que cada uno de los ejecutores hospedados en GitHub siempre constituye una máquina virtual limpia y aislada, la cual se destruya al final de la ejecución del job.

Los flujos de trabajo que no son de confianza y se ejecutan en tu ejecutor autoalojado plantean riesgos de seguridad considerables para tu máquina y entorno de red, en especial si tu máquina se mantiene en su entorno entre trabajos. Algunos de los riesgos incluyen:

  • Programas maliciosos que se ejecutan en la máquina.
  • Escapar del entorno Sandbox del ejecutor de la máquina.
  • Exponer el acceso al entorno de red de la máquina.
  • Mantener datos peligrosos o no deseados en la máquina.

Para más información sobre el fortalecimiento de la seguridad de los ejecutores autohospedados, consulta "Fortalecimiento de seguridad para GitHub Actions".

Restricción del uso de ejecutores autohospedados

Los propietarios de empresa y de organización pueden elegir los repositorios que pueden crear ejecutores autohospedados en el nivel de repositorio. Los usuarios con el permiso "Administrar ejecutores de la organización y grupos de ejecutores" solo pueden elegir qué repositorios pueden crear ejecutores autohospedados de nivel de repositorio para repositorios de su organización.

Para obtener más información sobre los roles de organización personalizados, vea "Acerca de los roles personalizados de organización".

Para más información, consulta "Requerir políticas para las GitHub Actions en tu empresa" y "Inhabilitar o limitar GitHub Actions para tu organización".

Información adicional