Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Esta versão do GitHub Enterprise foi descontinuada em 2023-01-18. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Redimensionamento automático com executores auto-hospedados

Você pode dimensionar automaticamente seus executores auto-hospedados em resposta a eventos de webhooks.

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 o dimensionamento automático

Você pode aumentar ou diminuir automaticamente o número de executores auto-hospedados no seu ambiente em resposta aos eventos do webhook que você recebe com uma determinada etiqueta. Por exemplo, você poderá criar uma automação que adiciona um novo executor auto-hospedado sempre que receber um evento de webhook workflow_job com a atividade queued, o que notifica você de que um novo trabalho está pronto para processamento. A carga do webhook inclui dados da etiqueta. Portanto, você pode identificar o tipo de executor que a tarefa está solicitando. Depois que o trabalho for concluído, crie uma automação que remove o executor em resposta à atividade workflow_job completed.

Soluções de dimensionamento automático recomendadas

GitHub recomenda e faz parcerias estreitas com dois projetos de código aberto que você pode usar para dimensionar automaticamente os seus executores. Uma ou ambas as soluções podem ser adequadas, com base nas suas necessidades.

Os repositórios a seguir possuem instruções detalhadas para configurar esses dimensionadores automáticos:

Cada solução tem certas especificações que podem ser importantes para considerar:

Recursosactions-runner-controllerterraform-aws-github-runner
RuntimeKubernetesVMs do Linux e do Windows
Nuvens compatíveisAzure, Amazon Web Services, Google Cloud Platform, nos locaisAmazon Web Services
Onde os executores podem ser dimensionadosNíveis de empresa, organização e repositório. Por etiqueta do executor e grupo de executores.Níveis de organização e repositório. Por etiqueta do executor e grupo de executores.
Como os executores podem ser dimensionadosEventos de webhook, Programados, Baseados em extraçõesEventos de Webhook, Programados (únicamente executores a nível de organização)

Usaar executores efêmeros para dimensionamento automático

GitHub recomenda implementar o dimensionamento automático com executores auto-hospedados efêmeros. Nãose recomenda o dimensionamento automático com executores auto-hospedados persistentes. Em certos casos, GitHub não pode garantir que os trabalhos não sejam atribuídos a executores persistentes enquanto eles são desativados. Com executores efêmeros, é possível garantir iss, porque GitHub só atribui um trabalho a um executor.

Esta abordagem permite que você gerencie os seus executores como sistemas efêmeros, já que você pode usar automação para fornecer um ambiente limpo para cada trabalho. Isso ajuda a limitar a exposição de quaisquer recursos sensíveis de trabalhos anteriores e também ajuda a mitigar o risco de um executor comprometido receber novos trabalhos.

Para adicionar um executor efêmero ao seu ambiente, inclua o parâmetro --ephemeral ao registrar o executor usando config.sh. Por exemplo:

./config.sh --url https://github.com/octo-org --token example-token --ephemeral

O serviço GitHub Actions irá cancelar o resgistro do runner automaticamente depois de ter processado um trabalho. Em seguida, você poderá criar a sua própria automação que limpa o runner depois que ele tiver seu registro cancelado.

Observação: se um trabalho estiver rotulado para certo tipo de executor, mas nenhuma correspondência desse tipo estiver disponível, o trabalho não falhará imediatamente no momento da colocação na fila. Em vez disso, o trabalho permanecerá na fila até que o período de tempo limite de 24 horas expire.

Usando webhooks para dimensionamento automático

Você pode criar seu ambiente de dimensionamento automático usando cargas recebidas do webhook workflow_job. Esse webhook está disponível nos níveis do repositório, da organização e da empresa, e a carga desse evento contém uma chave action que corresponde às fases do ciclo de vida de um trabalho de fluxo de trabalho, por exemplo, quando os trabalhos são queued, in_progress e completed. Você deverá criar a sua própria automação de dimensionamento em resposta a estas cargas de webhook.

Requisitos de autenticação

Você pode registrar e excluir os executores auto-hospedados da organização e do repositório usando a API. Para efetuar a autenticação na API, a implementação do seu dimensionamento automático pode usar um token de acesso ou um aplicativo de GitHub.

Seu token de acesso exigirá o seguinte escopo:

Para efetuar a autenticação usando um aplicativo de GitHub, este deverá ter as seguintes permissões:

  • Para repositórios, atribua a permissão administration.
  • Para organizações, atribua a permissão organization_self_hosted_runners.

Você pode registrar e excluir os executores auto-hospedados da empresa usando a API. Para efetuar a autenticação na API, sua implementação de dimensionamento automático pode usar um token de acesso.

Seu token de acesso exigirá o escopo manage_runners:enterprise.