Skip to main content

Esta versión de GitHub Enterprise Server se discontinuó el 2024-03-26. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise Server. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

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.

Nota: Actualmente los ejecutores hospedados en GitHub no se admiten en GitHub Enterprise Server. Puede ver más información sobre la compatibilidad futura planeada en GitHub public roadmap.

Acerca de los ejecutores autohospedados

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

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. 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 Server 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.

Nota: Si usas ejecutores efímeros y has deshabilitado las actualizaciones automáticas, antes de actualizar tu instancia de GitHub Enterprise Server debes actualizar los ejecutores autohospedados a la versión de la aplicación del ejecutor que se ejecutará en la instancia actualizada. La actualización de tu instancia de GitHub Enterprise Server antes de actualizar los ejecutores efímeros puede hacer que los ejecutores se desconecten. Para obtener más información, vea «Actualizar el servidor de GitHub Enterprise».

Un ejecutor autohospedado se eliminará automáticamente de GitHub Enterprise Server 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 Server 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 1 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 Server.
  • 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 8 o superior
  • CentOS 8 o superior
  • Oracle Linux 8 o posterior
  • Fedora 29 o posterior
  • Debian 10 o posterior
  • Ubuntu 20.04 o posterior
  • Linux Mint 20 o posterior
  • openSUSE 15.2 o posterior
  • SUSE Enterprise Linux (SLES) 15 SP2 o posterior

Windows

  • 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.
  • ARM32: Linux.

La comunicación entre ejecutores autoalojados

Es posible que se necesite configuración adicional para usar acciones de GitHub.com con GitHub Enterprise Server, o bien para usar las acciones actions/setup-LANGUAGE con ejecutores autohospedados sin acceso a Internet. Para obtener más información, consulta "Administrar el acceso a las acciones desde GitHub.com" y ponte en contacto con el administrador del sitio GitHub Enterprise.

La comunicación entre ejecutores autoalojados y GitHub Enterprise Server

El ejecutor auto-hospedado se conecta a GitHub Enterprise Server para recibir asignaciones de jobs y para descargar versiones nuevas de la aplicación ejecutora. El ejecutor autohospedado usa un sondeo largo de HTTP(S) que abre una conexión a GitHub Enterprise Server 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 Server se realiza mediante HTTP (puerto 80) o HTTPS (puerto 443). Para garantizar la conectividad por HTTPS, configura TLS para tu instancia de GitHub Enterprise Server. Para más información, consulta "Configurar TLS".

Solo se necesita una conexión de salida desde el ejecutor a tu instancia de GitHub Enterprise Server. No se necesita una conexión entrante desde tu instancia de GitHub Enterprise Server hacia el ejecutor. Para que el almacenamiento en caché funcione, el ejecutor debe poder comunicarse con el almacenamiento de blobs y descargar contenido directamente de él.

GitHub Enterprise Server debe aceptar conexiones entrantes desde tus ejecutores a través de HTTP(S) en el nombre de host de tu instancia de GitHub Enterprise Server y subdominio de la API, y tus ejecutores deben permitir conexiones salientes a través de HTTP(S) hacia el nombre de host de tu instancia de GitHub Enterprise Server y el subdominio de la API.

Los ejecutores auto-hospedados no necesitan acceso externo a internet para funcionar. Como resultado, puedes usar el enrutamiento de red para dirigir la comunicación entre el ejecutor autohospedado y tu instancia de GitHub Enterprise Server. Por ejemplo, puedes asignar una dirección IP privada a tu ejecutor autohospedado y configurar el enrutamiento para enviar el tráfico a tu instancia de GitHub Enterprise Server sin necesidad de que este tráfico atraviese una red pública.

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".

Comunicación entre ejecutores autohospedados y GitHub.com

Los ejecutores autohospedados no necesitan conectarse a GitHub.com, a menos que hayas habilitado el acceso automático a las acciones de GitHub.com para tu instancia de GitHub Enterprise Server. Para obtener más información, vea «Acerca de utilizar las acciones en tu empresa».

Si habilitaste el acceso automático a las acciones de GitHub.com, entonces el ejecutor auto-hospedado se conectará directamente a GitHub.com para descargar las acciones. Debes asegurarte de que la máquina tiene el acceso a la red adecuado para comunicarte con las URL de GitHub listadas a continuación.

Shell
github.com
api.github.com
codeload.github.com

Nota: Algunos de los dominios que se enumeran antes 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 anteriormente permanezcan constantes.

Seguridad de los ejecutores auto-hospedados

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".

Información adicional