Configurar o GitHub Enterprise Server na solução VMware do Azure
Neste artigo, saiba como configurar o GitHub Enterprise Server, a versão "local" do GitHub.com, na nuvem privada do Azure VMware Solution. O cenário abrange uma instância do GitHub Enterprise Server que pode atender até 3.000 desenvolvedores executando até 25 trabalhos por minuto no GitHub Actions. Ele inclui a configuração de (no momento da escrita) recursos de visualização , como Ações do GitHub. Para personalizar a configuração de acordo com suas necessidades específicas, revise os requisitos listados em Instalando o GitHub Enterprise Server no VMware.
Antes de começar
O GitHub Enterprise Server requer uma chave de licença válida. Você pode se inscrever para obter uma licença de avaliação. Se você está procurando estender os recursos do GitHub Enterprise Server por meio de uma integração, verifique se você se qualifica para uma licença de desenvolvedor gratuita de cinco lugares. Solicite esta licença através do Programa de Parceiros do GitHub.
Instalar o GitHub Enterprise Server no VMware
Baixe a versão atual do GitHub Enterprise Server for VMware ESXi/vSphere (OVA) e implante o modelo OVA que você baixou.
Forneça um nome reconhecível para sua nova máquina virtual, como GitHubEnterpriseServer. Você não precisa incluir os detalhes da versão no nome da VM, pois esses detalhes se tornam obsoletos quando a instância é atualizada.
Selecione todos os padrões por enquanto (detalhes a serem editados posteriormente) e aguarde a importação do OVA.
Uma vez importado, ajuste a configuração de hardware com base nas suas necessidades. Em nosso cenário de exemplo, precisamos da seguinte configuração.
Recurso Configuração padrão Configuração padrão + "Recursos Beta" (Ações) vCPUs 4 8 Memória 32 GB 61 GB Armazenamento anexado 250 GB 300 GB Armazenamento raiz 200 GB 200 GB As suas necessidades podem variar. Consulte as orientações sobre considerações de hardware em Instalando o GitHub Enterprise Server no VMware. Consulte também Adicionando recursos de CPU ou memória para o VMware personalizar a configuração de hardware com base na sua situação.
Configurar a instância do GitHub Enterprise Server
Depois que a máquina virtual (VM) recém-provisionada estiver ligada, configure-a por meio do navegador. Você precisa carregar seu arquivo de licença e definir uma senha do console de gerenciamento. Certifique-se de anotar esta senha em algum lugar seguro.
Recomendamos pelo menos seguir os seguintes passos:
Carregue uma chave SSH pública para o console de gerenciamento para que você possa acessar o shell administrativo via SSH.
Configure o TLS em sua instância para que você possa usar um certificado assinado por uma autoridade de certificação confiável. Aplique suas configurações.
Enquanto a instância é reiniciada, configure o armazenamento de blob para Ações do GitHub.
Nota
O GitHub Actions está atualmente disponível como uma versão beta limitada no GitHub Enterprise Server versão 2.22.
O armazenamento de blob externo é necessário para habilitar as Ações do GitHub no GitHub Enterprise Server (atualmente disponível como um recurso "beta"). As ações usam esse armazenamento de blob externo para armazenar artefatos e logs. O Actions on GitHub Enterprise Server dá suporte ao Armazenamento de Blobs do Azure como um provedor de armazenamento (e alguns outros). Você precisa criar uma nova conta de armazenamento do Azure com um tipo de conta de armazenamento de BlobStorage.
Quando a nova implantação do recurso BlobStorage for concluída, salve a cadeia de conexão (disponível em Chaves de acesso) para usar mais tarde.
Depois que a instância for reiniciada, crie uma nova conta de administrador na instância. Certifique-se de anotar a senha desse usuário também.
Outras etapas de configuração
Para proteger sua instância para uso em produção, as seguintes etapas de configuração opcionais são recomendadas:
Configure a alta disponibilidade para proteção contra:
- Falhas de software (SO ou nível de aplicação)
- Falhas de hardware (armazenamento, CPU, RAM e assim por diante)
- Falhas do sistema host de virtualização
- Rede cortada lógica ou fisicamente
Configure utilitários de backup, fornecendo snapshots versionados para recuperação de desastres, hospedados em disponibilidade separada da instância principal.
Configure o isolamento de subdomínio, usando um certificado TLS válido, para mitigar scripts entre sites e outras vulnerabilidades relacionadas.
Configurar o executor de ações do GitHub
Nota
O GitHub Actions está atualmente disponível como uma versão beta limitada no GitHub Enterprise Server versão 2.22.
Neste ponto, você deve ter uma instância do GitHub Enterprise Server em execução, com uma conta de administrador criada. Você também deve ter armazenamento de blob externo que o GitHub Actions usa para persistência.
Crie um lugar para que as Ações do GitHub sejam executadas usando a Solução VMware do Azure.
Provisione uma nova VM no cluster e baseie-a em uma versão recente do Ubuntu Server.
Continue com a configuração selecionando o recurso de computação, o armazenamento e a compatibilidade.
Selecione o SO convidado que deseja instalar na VM.
Depois que a VM for criada, ligue-a e conecte-se a ela via SSH.
Instale o aplicativo Actions runner , que executa um trabalho a partir de um fluxo de trabalho do GitHub Actions. Identifique e baixe a versão Linux x64 mais atual do executor de ações, seja na página de lançamentos ou executando o seguinte script rápido. Esse script requer que tanto o curl quanto o jq estejam presentes na sua VM.
LATEST\_RELEASE\_ASSET\_URL=$( curl https://api.github.com/repos/actions/runner/releases/latest | \ jq -r '.assets | .[] | select(.name | match("actions-runner-linux-arm64")) | .url' ) DOWNLOAD\_URL=$( curl $LATEST\_RELEASE\_ASSET\_URL | \ jq -r '.browser\_download\_url' ) curl -OL $DOWNLOAD\_URL
Agora você deve ter um arquivo localmente em sua VM, actions-runner-linux-arm64-*.tar.gz. Extraia este tarball localmente:
tar xzf actions-runner-linux-arm64-\*.tar.gz
Essa extração descompacta alguns arquivos localmente, incluindo um
config.sh
erun.sh
script.
Ativar ações do GitHub
Nota
O GitHub Actions está atualmente disponível como uma versão beta limitada no GitHub Enterprise Server versão 2.22.
Configure e habilite as Ações do GitHub na instância do GitHub Enterprise Server.
Acesse o shell administrativo da instância do GitHub Enterprise Server sobre SSH e execute os seguintes comandos:
Defina uma variável de ambiente que contenha sua cadeia de conexão de armazenamento de Blob.
export CONNECTION\_STRING="<your connection string from the blob storage step>"
Configure o armazenamento de ações.
ghe-config secrets.actions.storage.blob-provider azure ghe-config secrets.actions.storage.azure.connection-string "$CONNECTION\_STRING`
Aplique as configurações.
ghe-config-apply
Execute uma pré-verificação para instalar mais software exigido pelo Actions no GitHub Enterprise Server.
ghe-actions-precheck -p azure -cs "$CONNECTION\_STRING"
Habilite ações e reaplique a configuração.
ghe-config app.actions.enabled true ghe-config-apply
Verifique a integridade do seu armazenamento de blobs.
ghe-actions-check -s blob
Você deve ver a saída: O armazenamento de Blob está íntegro.
Agora que o GitHub Actions está configurado, habilite-o para seus usuários. Entre na instância do GitHub Enterprise Server como administrador e selecione o no canto superior direito de qualquer página.
Na barra lateral esquerda, selecione Visão geral da empresa e, em seguida, Políticas, Ações e selecione a opção para habilitar Ações para todas as organizações.
Configure seu corredor na guia Corredores auto-hospedados. Selecione Adicionar novo e, em seguida, Novo corredor na lista suspensa. É apresentado um conjunto de comandos para executar.
Copie o comando para configurar o corredor, por exemplo:
./config.sh --url https://10.1.1.26/enterprises/octo-org --token AAAAAA5RHF34QLYBDCHWLJC7L73MA
Copie o
config.sh
comando e cole-o em uma sessão no seu executor de Ações (criado anteriormente).Use o
./run.sh
comando para executar o corredor:Gorjeta
Para disponibilizar esse corredor para organizações em sua empresa, edite o acesso à organização. Você pode limitar o acesso a um subconjunto de organizações e até mesmo a repositórios específicos.
(Opcional) Configurar o GitHub Connect
Embora esta etapa seja opcional, recomendamos se você planeja consumir ações de código aberto disponíveis no GitHub.com. Ele permite que você desenvolva o trabalho de outras pessoas, fazendo referência a essas ações reutilizáveis em seus fluxos de trabalho.
Para habilitar o GitHub Connect, siga as etapas em Habilitando o acesso automático a GitHub.com ações usando o GitHub Connect.
Quando o GitHub Connect estiver habilitado, selecione a opção Servidor para usar ações do GitHub.com em execuções de fluxo de trabalho.
Configurar e executar o seu primeiro fluxo de trabalho
Agora que o Actions e o GitHub Connect estão configurados, vamos colocar todo esse trabalho em bom uso. Aqui está um exemplo de fluxo de trabalho que faz referência ao excelente octokit/request-action, permitindo-nos "roteirizar" o GitHub através de interações usando a API do GitHub, alimentada pelo GitHub Actions.
Neste fluxo de trabalho básico, use octokit/request-action
para abrir um problema no GitHub usando a API.
Nota
GitHub.com hospeda a ação, mas quando é executada no GitHub Enterprise Server, usa automaticamente a API do GitHub Enterprise Server.
Se você optou por não habilitar o GitHub Connect, poderá usar o fluxo de trabalho alternativo a seguir.
Navegue até um repositório em sua instância e adicione o fluxo de trabalho acima como:
.github/workflows/hello-world.yml
Na guia Ações do seu repositório, aguarde a execução do fluxo de trabalho.
Você pode vê-lo sendo processado.
Se tudo correu bem-sucedido, você deve ver um novo problema no seu repo, intitulado "Olá mundo".
Parabéns! Você acabou de concluir seu primeiro fluxo de trabalho de Ações no GitHub Enterprise Server, em execução na nuvem privada da Solução VMware do Azure.
Este artigo configurou uma nova instância do GitHub Enterprise Server, o equivalente auto-hospedado do GitHub.com, sobre sua nuvem privada do Azure VMware Solution. A instância inclui suporte para Ações do GitHub e usa o Armazenamento de Blob do Azure para persistência de logs e artefatos. Mas estamos apenas arranhando a superfície do que você pode fazer com as Ações do GitHub. Confira a lista de Ações no Marketplace do GitHub ou crie a sua própria.
Próximos passos
Agora que você abordou a configuração do GitHub Enterprise Server na nuvem privada da Solução VMware do Azure, saiba mais sobre: