Gerenciar executores
Nesta seção, você explorará as diferentes ferramentas e estratégias disponíveis no GitHub Enterprise Cloud e no GitHub Enterprise Server para gerenciar o uso de executores do GitHub Actions em sua empresa.
Escolha um executor apropriado para sua carga de trabalho
Dois tipos de executores podem executar fluxos de trabalho do GitHub Actions: Executores hospedados no GitHub ou executores auto-hospedados.
Observação
Os executores hospedados no GitHub estão disponíveis apenas para Enterprise Cloud. Caso tenha uma instância do Enterprise Server, esta seção não será aplicada a você.
Os executores hospedados no GitHub oferecem uma maneira mais rápida e simples de executar seus fluxos de trabalho, enquanto os executores auto-hospedados são uma maneira altamente configurável de executar fluxos de trabalho em seu próprio ambiente personalizado. Por exemplo, caso precisasse usar uma lista de autorização de endereço IP para sua organização ou uma configuração de hardware especializada para executar seus fluxos de trabalho, use um executor auto-hospedado.
A tabela a seguir compara executores hospedados no GitHub com aqueles auto-hospedados. Use-a para escolher o executor apropriado para sua carga de trabalho.
Executores hospedados no GitHub | Executores auto-hospedados |
---|---|
Receba atualizações automáticas do sistema operacional, pacotes e ferramentas pré-instalados e o aplicativo do executor auto-hospedado. | Recebem atualizações automáticas apenas para o aplicativo executor auto-hospedado. Você é responsável por atualizar o sistema operacional e todos os outros softwares. |
GitHub gerenciado e mantido. | Podem usar serviços de nuvem ou máquinas locais pelos quais você já pagou. Também são personalizáveis para seus requisitos de hardware, sistema operacional, software e segurança. |
Fornecem uma instância limpa para cada execução de trabalho. | Não precisam ter uma instância limpa para cada execução de trabalho. |
Usam minutos gratuitos em seu GitHub, com taxas por minuto aplicadas depois de os limites serem ultrapassados. | São gratuitos para usar com o GitHub Actions, mas você é responsável pelo custo de manter seus computadores executores. |
Configurar o acesso a executores auto-hospedados
No Enterprise Cloud e Enterprise Server, os grupos de executores auto-hospedados permitem controlar o acesso a esses executores no nível da organização e da empresa. Esse recurso pode ser útil para casos em que você precisa restringir o acesso a executores auto-hospedados a organizações ou usuários específicos. Por exemplo, com base no nível de confiança dessas organizações ou usuários, ou para reduzir os riscos de segurança.
Digamos que você queira autorizar apenas organizações específicas de sua instância corporativa a implantar código em seu ambiente de produção. Você pode criar um grupo que contém todos os executores que implantam o código em produção no nível empresarial e restringir o acesso do grupo às organizações específicas autorizadas a implantar o código.
Para criar grupos no nível empresarial, navegue até sua conta corporativa e depois até Políticas > Ações na barra lateral. Na guia Grupos de executores, selecione Novo grupo de executores. A tela que é exibida permitirá que você especifique um nome de grupo e uma política de acesso para organizações.
Para criar grupos no nível da organização, navegue até as Configurações da organização e até Ações na barra lateral. Selecione Grupos de executores e, em seguida, Novo grupo de executores. A tela que é exibida permite que você especifique um nome de grupo e uma política de acesso para repositórios.
Quando novos executores são criados, eles são atribuídos automaticamente ao grupo padrão dentro da empresa ou organização. Os executores só podem estar em um grupo por vez, mas tanto o Enterprise Cloud quanto o Enterprise Server oferecem a possibilidade de mover corredores do grupo padrão para outro grupo.
Configurar executores auto-hospedados para uso empresarial
O Enterprise Cloud e o Enterprise Server oferecem vários recursos, permitindo que você personalize seus executores auto-hospedados para uso empresarial. Alguns desses recursos incluem rótulos, servidores proxy e listas de permissões de IP.
Rótulos
Os executores auto-hospedados recebem automaticamente rótulos padrão quando são adicionados ao GitHub Actions. Esses rótulos padrão indicam o sistema operacional e a arquitetura de hardware do executor, conforme mostrado na tabela:
Rótulo padrão | Descrição |
---|---|
self-hosted |
Rótulo padrão aplicado a todos os executores auto-hospedados |
linux , windows ou macOS |
Aplicados dependendo do sistema operacional do executor. |
x64 , ARM ou ARM64 |
Aplicados dependendo da arquitetura de hardware do executor. |
Além desses rótulos padrão, o Enterprise Cloud e o Enterprise Server possibilitam criar e adicionar rótulos personalizados aos seus executores. Os rótulos personalizados podem ser úteis quando for preciso executar trabalhos em executores com funcionalidades específicas. Por exemplo, se um trabalho em um de seus fluxos de trabalho exigir um tipo específico de hardware gráfico, você poderá criar um rótulo personalizado gpu
e atribuí-lo aos executores que têm o hardware instalado. Todos os executores com o rótulo gpu
seriam qualificados para executar o trabalho.
Para adicionar um rótulo a um executor auto-hospedado, navegue até as configurações do GitHub Actions da organização, do repositório ou da empresa em que o seu executor auto-hospedado está registrado (em Ações para uma organização ou repositório, em Políticas > Ações para uma empresa). Quando você estiver lá:
Localize a lista de executores em Executores. Caso executor esteja em um grupo, localize esse grupo e selecione o menu suspenso do executor para exibir a lista de executores.
Localize o executor que deseja atualizar e selecione o menu suspenso do rótulo para exibir o menu de seleção de rótulo. Esse menu exibe todos os rótulos personalizados disponíveis para o seu executor auto-hospedado. Os rótulos já atribuídos ao seu executor auto-hospedado têm um tique ao lado.
Selecione um rótulo existente para adicioná-lo ao seu executor ou digite o nome do novo rótulo no campo Filtrar rótulos e selecione Criar rótulo. O rótulo é adicionado automaticamente ao seu executor quando você o cria.
Servidores proxy
Caso precise de um executor auto-hospedado para se comunicar com o GitHub por meio de um servidor proxy, o Enterprise Cloud e o Enterprise Server permitirão que você altere as configurações de proxy usando as seguintes variáveis de ambiente:
Variável de ambiente | Descrição |
---|---|
https_proxy |
URL de proxy para tráfego HTTPS. Também é possível incluir credenciais de autenticação básicas, se necessário. Por exemplo: http://proxy.local http://192.168.1.1:8080 http://username:password@proxy.local |
http_proxy |
URL de proxy para tráfego HTTP. Também é possível incluir credenciais de autenticação básicas, se necessário. Por exemplo: http://proxy.local http://192.168.1.1:8080 http://username:password@proxy.local |
no_proxy |
Lista separada por vírgulas de hosts que não devem usar um proxy. Somente nomes de host são permitidos em no_proxy . Você não pode usar endereços IP. Por exemplo: example.com example.com,myserver.local:443,example.org |
Observação
As variáveis de ambiente de proxy são lidas quando o aplicativo do executor auto-hospedado é iniciado, portanto, você deve definir as variáveis de ambiente antes de configurar ou iniciar o aplicativo. Se sua configuração de proxy for mudada, você deverá reiniciar o aplicativo executor auto-hospedado.
No Windows, os nomes das variáveis de ambiente proxy não diferenciam maiúsculas de minúsculas. No Linux e no macOS, recomendamos que você escreva as variáveis de ambiente todas em minúsculas. Caso tenha uma variável de ambiente em letras minúsculas e maiúsculas no Linux ou macOS (por exemplo, https_proxy
e HTTPS_PROXY
), o aplicativo executor auto-hospedado usará a variável de ambiente em minúsculas.
Listas de IPs permitidos
Se a sua organização do Enterprise Cloud ou do Enterprise Server tiver configurado listas de IPs permitidos, você deverá adicionar o endereço IP ou o intervalo de endereços IP de seus executores auto-hospedados à lista de IPs permitidos para que esses executores se comuniquem com o GitHub.
Para adicionar o endereço IP ou o intervalo de endereços IP de seus executores auto-hospedados a uma lista de IPs permitidos da organização, navegue até as Configurações da sua organização e selecione Segurança da organização na barra lateral. Em Endereço IP, adicione o endereço IP ou o intervalo de endereços IP de seus executores auto-hospedados na notação CIDR e selecione + Adicionar.
Monitorar e solucionar problemas de executores auto-hospedados
Tanto o Enterprise Cloud quanto o Enterprise Server oferecem ferramentas que permitem monitorar, solucionar problemas e atualizar seus executores auto-hospedados. Caso seus builds comecem a falhar, alguns arquivos em seu repositório sejam bloqueados ou suas execuções de fluxo de trabalho travem, a solução de problemas do executor que esteja executando o fluxo de trabalho pode ajudar a resolver o problema.
As principais etapas que podem ser seguidas ao solucionar problemas de um executor auto-hospedado são:
- Verificar o status do executor nas configurações do GitHub Actions da organização, do repositório ou da empresa em que o seu executor auto-hospedado está registrado (em Ações para uma organização ou repositório, em Políticas > Ações para uma empresa).
- Analisar as atividades e as atualizações automáticas do executor nos arquivos
Runner_
na pasta_diag
. - Analisar o status dos trabalhos executados pelo executor nos arquivos
Worker_
na pasta_diag
.
De acordo com o sistema operacional do executor, você pode executar etapas extras, conforme mostrado na tabela:
Mac | Windows | Linux |
---|---|---|
Verificar o serviço de aplicativo do executor auto-hospedado usando launchd |
Verificar o serviço de aplicativo do executor auto-hospedado usando o PowerShell | – Verificar o serviço de aplicativo do executor auto-hospedado usando journalctl – Se seus trabalhos precisarem de contêineres, verifique se o Docker está instalado e em execução e as permissões do Docker usando systemctl |