Observação: no momento, não há suporte para os executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.
Sobre executores auto-hospedados
Um executor auto-hospedado é um sistema que você implanta e gerencia para executar trabalhos por meio do GitHub Actions no em sua instância do GitHub Enterprise Server. Para saber mais sobre GitHub Actions, confira "Entendendo o GitHub Actions" e "Sobre o GitHub Actions para empresas".
Com os executores auto-hospedados, você pode criar configurações de hardware personalizadas de acordo com suas necessidades, com o poder de processamento ou a memória para executar trabalhos maiores, instalar programas de software disponíveis na sua rede local e escolher um sistema operacional. Os executores auto-hospedados podem ser físicos, virtuais, em um contêiner, no local ou em uma nuvem.
Você pode adicionar runners auto-hospedados em vários níveis na hierarquia de gerenciamento:
- Runners em nível de repositório são dedicados a um único repositório.
- Executores no nível da organização podem processar trabalhos para vários repositórios em uma organização.
- Runners de nível empresarial podem ser atribuídos a várias organizações em uma conta corporativa.
A sua máquina do executor conecta-se ao GitHub Enterprise Server usando o aplicativo do executor auto-hospedado de GitHub Actions. O aplicativo de executor do GitHub Actions tem código aberto. Você pode contribuir e apresentar problemas no repositório do executor. Quando uma nova versão for lançada, o aplicativo do executor automaticamente é atualizado quando um trabalho é atribuído ao executor ou em uma semana após a versão, caso o executor não tenha recebido nenhum trabalho.
Observação: Se você usar executores efêmeros e tiver desabilitado as atualizações automáticas, para atualizar o sua instância do GitHub Enterprise Server, primeiro você deverá atualizar os executores auto-hospedados para a versão do aplicativo executor que sua instância atualizada executará. A atualização do sua instância do GitHub Enterprise Server antes de atualizar os executores efêmeros poderá fazer com que os executores fiquem offline. Para obter mais informações, confira "Atualizar o GitHub Enterprise Server".
Um executor auto-hospedado é automaticamente removido de GitHub Enterprise Server se não se conectar a GitHub Actions por mais de 30 dias.
Para saber mais sobre como instalar e usar executores auto-hospedados, confira "Adicionar executores auto-hospedados" e "Usar os executores auto-hospedados em um fluxo de trabalho".
Diferenças entre os executores hospedados no GitHub e executores auto-hospedados
Os executores hospedados no GitHub oferecem uma forma mais rápida e simples de executar os fluxos de trabalho, enquanto os executores auto-hospedados são uma forma altamente configurável de executar fluxos de trabalho em um ambiente personalizado próprio.
Executores hospedados no GitHub:
- Receba atualizações automáticas do sistema operacional, pacotes e ferramentas pré-instalados e o aplicativo do executor auto-hospedado.
- São gerenciados e mantidos por GitHub.
- Fornecem uma instância limpa para cada execução de trabalho.
- Use minutos grátis no seu plano GitHub, com taxas por minuto aplicadas após exceder os minutos grátis.
Executores auto-hospedados:
- Receba atualizações automáticas apenas para o aplicativo do executor auto-hospedado, embora você possa desabilitar atualizações automáticas do executor. Para saber mais sobre como controlar as atualizações de software do executor em executores auto-hospedados, confira "Redimensionamento automático com executores auto-hospedados". Você é responsável por atualizar o sistema operacional e todos os outros programas de software.
- Podem usar serviços de nuvem ou máquinas locais pelos quais você já pagou.
- São personalizáveis conforme seus requisitos de hardware, sistema operacional, software e segurança.
- Não precisam ter uma instância limpa para cada execução de trabalho.
- É grátis para usar com GitHub Actions, mas você é o responsável pelo custo de manter seus executores.
- Podem ser organizados em grupos para restringir o acesso a fluxos de trabalho, organizações e repositórios específicos. Para obter mais informações, confira "Gerenciar o acesso a executores auto-hospedados usando grupos".
Requisitos para executores auto-hospedados
Você pode usar qualquer máquina como um executor auto-hospedado, desde que ela atenda a estes requisitos:
- Você pode instalar e executar o aplicativo do executor auto-hospedado na máquina. Para obter mais informações, confira "Arquiteturas e sistemas operacionais compatíveis com executores auto-hospedados".
- A máquina pode comunicar-se com GitHub Actions. Para obter mais informações, confira "Comunicação entre executores auto-hospedados e o GitHub Enterprise Server".
- A máquina tem recursos de hardware suficientes para o tipo de fluxos de trabalho que você planeja executar. O aplicativo do executor auto-hospedado requer apenas recursos mínimos.
- Se você desejar executar fluxos de trabalho que usam ações do contêiner do Docker ou dos contêineres de serviço, você deverá usar uma máquina Linux e o Docker deve estar instalados.
Dimensionar automaticamente os seus executores auto-hospedados
Você pode aumentar ou diminuir automaticamente o número de executores auto-hospedados no seu ambiente em resposta aos eventos que você receber. Para obter mais informações, confira "Redimensionamento automático com executores auto-hospedados".
Limites de uso
Existem alguns limites sobre o uso de GitHub Actions ao usar executores auto-hospedados. Estes limites estão sujeitos a mudanças.
- Tempo de execução do fluxo de trabalho – Cada execução de fluxo de trabalho é limitada a 35 dias. Se a execução de um fluxo de trabalho atingir esse limite, a execução do fluxo de trabalho será cancelada. Esse período inclui a duração da execução e o tempo gasto em espera e aprovação.
- Tempo de fila do trabalho – Cada trabalho dos executores auto-hospedados pode ser colocado na fila por, no máximo, 24 horas. Se um executor auto-hospedado não começar a executar a tarefa dentro deste limite, a tarefa será encerrada e não será concluída.
- Solicitações de API – Você pode executar até mil solicitações à API do GitHub em uma hora em todas as ações de um repositório. Se o número de solicitações for excedido, as chamadas à API adicionais falharão, o que poderá causar falha nos trabalhos.
- Matriz de trabalho – Uma matriz de tarefas pode gerar 256 tarefas no máximo por execução do fluxo de trabalho. Esse limite se aplica a executores hospedados por GitHub Enterprise Server e auto-hospedados. - Fila de execução de fluxo de trabalho – No máximo, 500 execuções de fluxo de trabalho podem ser colocadas na fila em um intervalo de dez segundos por repositório. Se a execução de um fluxo de trabalho atingir esse limite, a execução do fluxo de trabalho terminará e falhará em ser concluída.
Continuidade do fluxo de trabalho para executores auto-hospedados
Se os serviços de GitHub Actions estiverem temporariamente indisponíveis, a execução do fluxo de trabalho será descartada se não tiver sido enfileirada em 30 minutos após ser acionada. Por exemplo, se um fluxo de trabalho for acionado e os serviços de GitHub Actions não estiverem disponíveis por 31 minutos ou mais, a execução do fluxo de trabalho não será processada.
Arquiteturas e sistemas operacionais compatíveis com executores auto-hospedados
Os sistemas operacionais a seguir são compatíveis com o aplicativo de execução auto-hospedado.
Linux
- Red Hat Enterprise Linux 7 ou posterior
- CentOS 7 ou posterior
- Oracle Linux 7 ou posterior
- Fedora 29 ou versão posterior
- Debian 9 ou versão posterior
- Ubuntu 16.04 ou posterior
- Linux Hortelã 18 ou versão posterior
- openSUSE 15 ou versão posterior
- SUSE Enterprise Linux (SLES) 12 SP2 ou versão posterior
Windows
- Windows 7 64-bit
- Windows 8.1 de 64 bits
- Windows 10 64 bits
- Windows Server 2012 R2 64-bit
- Windows Server 2016 de 64 bits
- Windows Server 2019 64-bit
- Windows Server 2022 de 64 bits
macOS
- macOS 10.13 (High Sierra) or versão posterior
Arquiteturas
As seguintes arquiteturas de processador são compatíveis com o aplicativo do executor auto-hospedado.
x64
– Linux, macOS e Windows.ARM64
– Linux.ARM32
– Linux.
Ações com suporte em corredores auto-hospedados
Algumas configurações extras podem ser necessárias para usar as ações do GitHub.com com o GitHub Enterprise Server ou para usar as ações actions/setup-LANGUAGE
com executores auto-hospedados sem acesso à Internet. Para saber mais, confira "Gerenciar o acesso a ações do GitHub.com" e entre em contato com o administrador do site do GitHub Enterprise.
Comunicação entre executores auto-hospedados e GitHub Enterprise Server
O executor auto-hospedado conecta-se a GitHub Enterprise Server para receber atividades de trabalho e fazer o download de novas versões do aplicativo do executor. O executor auto-hospedado usa uma sondagem longa HTTP(S) que abre uma conexão com o GitHub Enterprise Server por 50 segundos. Se nenhuma resposta for recebida, ela atingirá o tempo limite e criará uma sondagem longa. O aplicativo deve estar rodando na máquina para aceitar e executar trabalhos do GitHub Actions.
A conexão entre os executores auto-hospedados e o GitHub Enterprise Server é feita por HTTP (porta 80) ou HTTPS (porta 443). Para garantir a conectividade por meio de HTTPS, configure o TLS para o sua instância do GitHub Enterprise Server. Para obter mais informações, confira "Configurar o TLS"."
Somente uma conexão de saída do executor com a sua instância do GitHub Enterprise Server é necessária. Não há necessidade de uma conexão de entrada com a sua instância do GitHub Enterprise Server com o executor. Para que o cache funcione, o executor precisa ser capaz de se comunicar com o armazenamento de blobs e baixar diretamente o conteúdo dele.
O GitHub Enterprise Server precisa aceitar conexões de entrada dos executores por HTTP(S) no subdomínio da API e no nome de host para sua instância do GitHub Enterprise Server e os executores precisam permitir conexões de saída por HTTP(S) para o nome do host e o subdomínio de API para sua instância do GitHub Enterprise Server.
Os executores auto-hospedados não exigem acesso à internet para funcionar. Como resultado, você pode usar o encaminhamento de rede para direcionar a comunicação entre o executor auto-hospedado e a sua instância do GitHub Enterprise Server. Por exemplo, você pode atribuir um endereço IP privado ao executor auto-hospedado e configurar o roteamento para enviar tráfego à sua instância do GitHub Enterprise Server, sem que o tráfego precise atravessar uma rede pública.
Você também pode usar executores auto-hospedados com um servidor proxy. Para obter mais informações, confira "Usar um servidor proxy com os executores auto-hospedados".
Para saber mais sobre como solucionar problemas comuns de conectividade de rede, confira "Monitorar e solucionar problemas de executores auto-hospedados".
Comunicação entre os executores auto-hospedados e o GitHub.com
Os executores auto-hospedados não precisam se conectar ao GitHub.com, a menos que você tenha habilitado o acesso automático às ações do GitHub.com para sua instância do GitHub Enterprise Server. Para obter mais informações, confira "Sobre como usar ações na sua empresa".
Se você tiver habilitado o acesso automático a ações GitHub.com, o executor auto-hospedado irá se conectar diretamente a GitHub.com para fazer o download das ações. Você deve garantir que a máquina tenha acesso adequado à rede para comunicar-se com as GitHub URLs listadas abaixo.
github.com
api.github.com
codeload.github.com
Observação: alguns dos domínios listados acima são configurados por meio de registros CNAME
. Alguns firewalls podem exigir que você adicione regras de maneira recursiva para todos os registros CNAME
. Observe que os registros CNAME
poderão mudar no futuro e que apenas os domínios listados acima permanecerão constantes.
Segurança dos executores auto-hospedados
Os fluxos de trabalho não confiáveis no seu executor auto-hospedado representam riscos de segurança significativos para seu ambiente de rede e máquina, especialmente se sua máquina persistir no ambiente entre os trabalhos. Alguns dos riscos incluem:
- Programas maliciosos em execução na máquina.
- Sair do sandbox do executor da máquina.
- Expor acesso ao ambiente de rede da máquina.
- Dados persistentes, indesejados ou perigosos na máquina.
Para saber mais sobre proteção de segurança para executores auto-hospedados, confira "Fortalecimento de segurança para o GitHub Actions".