Você pode implantar GitHub Enterprise Server no Azure global ou no Azure Government.
Pré-requisitos
- Você deve ter um GitHub Enterprise arquivo de licença. Para saber mais, confira Configurando uma avaliação do GitHub Enterprise Server e Arquivos de licença do GitHub Enterprise Server.
- Você deve ter uma conta Azure capaz de provisionar novos computadores. Para obter mais informações, consulte o site Microsoft Azure.
- A maioria das ações necessárias para iniciar sua VM (máquina virtual) também pode ser executada usando o Azure Portal. No entanto, recomendamos instalar a CLI (interface de linha de comando) Azure para a configuração inicial. Exemplos usando o Azure CLI 2.0 estão incluídos abaixo. Para obter mais informações, consulte o guia do Azure Instalar Azure CLI 2.0.
Considerações sobre hardware
Requisitos mínimos recomendados
Recomendamos diferentes configurações de hardware, dependendo do número de licenças de usuário do sua instância do GitHub Enterprise Server. Se você fornecer mais recursos do que os requisitos mínimos recomendados, sua instância terá um desempenho e uma escala melhores.
| Licenças de usuário | vCPUs x86-64 | Memória | Armazenamento raiz | Armazenamento (de dados) anexado | IOPS |
|---|---|---|---|---|---|
| Teste, demonstração ou 10 usuários leves | 4 | 32 GB | 400 GB | 500 GB | 600 |
| Até 1.000 | 8 | 48 GB | 400 GB | 500 GB | 3000 |
| 1.000 a 3.000 | 16 | 64 GB | 400 GB | 1000 GB | 6000 |
| 3.000 a 5.000 | 32 | 128 GB | 400 GB | 1500 GB | 9000 |
| 5.000 a 8.000 | 48 | 256 GB | 400 GB | 3000 GB | 12000 |
| 8000-10000+ | 64 | 512 GB | 400 GB | 5000 GB | 15000 |
Se você pretende habilitar o GitHub Actions ou o GitHub Advanced Security para os usuários da sua instância, mais recursos são necessários.
- GitHub Actions – aumentar a CPU e a memória em pelo menos 25%
- GitHub Advanced Security – aumentar a CPU e a memória em pelo menos 25%
Esses ajustes devem ser aplicados aos requisitos básicos de cada nível de usuário. Recomendamos monitorar todas as alterações em seus recursos, pois podem ser necessários aumentos adicionais.
Para obter mais informações sobre esses requisitos, confira Introdução ao GitHub Actions do GitHub Enterprise Server.
Se você pretende habilitar Container registry para os usuários da sua instância, são necessários mais recursos. Para obter mais informações sobre esses requisitos, confira Introdução aos pacotes de GitHub para sua empresa.
Para obter mais informações sobre como ajustar recursos para uma instância existente, confira Aumentar a capacidade de armazenamento e Aprimorar os recursos de CPU ou memória.
Armazenamento
Recomendamos um SSD de alto desempenho com operações de alta entrada/saída por segundo (IOPS) e baixa latência para GitHub Enterprise Server. Cargas de trabalho são intensivas em I/O. Se você usar um hipervisor de metal simples, recomendamos anexar diretamente o disco ou usar um disco a partir de uma rede de área de armazenamento (SAN).
A sua instância exige um disco de dados persistente separado do disco raiz. Para saber mais, confira Visão geral do sistema.
Aviso
O armazenamento raiz refere-se ao tamanho total do disco raiz da instância. Quando a instância for inicializada, você verá 200 GB disponíveis no sistema de arquivos raiz. Os 200 GB restantes serão reservados para atualizações. Para saber mais, confira Visão geral do sistema.
Para configurar o GitHub Actions, você precisa fornecer um armazenamento de blobs externo. Para saber mais, confira Introdução ao GitHub Actions do GitHub Enterprise Server.
O espaço disponível no sistema de arquivos raiz será 50% do tamanho total do disco. Você pode redimensionar o disco raiz da sua instância criando uma nova instância ou usando uma instância existente. Para saber mais, confira Visão geral do sistema e Aumentar a capacidade de armazenamento.
CPU e memória
Os recursos de CPU e memória que GitHub Enterprise Server exige dependem dos níveis de atividade para usuários, automações e integrações.
Todas as VMs provisionados para sua instância do GitHub Enterprise Server devem usar a arquitetura de CPU x86-64. Não há suporte para outras arquiteturas, como Aarch64 ou ARM64.
Se você pretende habilitar o GitHub Actions para os usuários da sua instância do GitHub Enterprise Server, talvez seja necessário provisionar recursos adicionais de CPU e memória para a instância. Para saber mais, confira Introdução ao GitHub Actions do GitHub Enterprise Server.
Quando você aumenta os recursos da CPU, a GitHub recomenda adicionar pelo menos 6.5 GB de memória para cada vCPU (até 16 vCPUs) que você fornecer para a instância. Ao usar mais de 16 vCPUs, você não precisa adicionar 6.5 GB de memória para cada vCPU, mas você deve monitorar sua instância para garantir que ela tenha memória suficiente.
Aviso
Recomendamos que os usuários configurem eventos de webhook para notificar os sistemas externos da atividade no GitHub Enterprise Server. As verificações automatizadas de alterações, ou sondagem, afetarão negativamente o desempenho e a escalabilidade da instância. Para saber mais, confira Sobre webhooks.
Para obter mais informações sobre como monitorar a capacidade e o desempenho de GitHub Enterprise Server, confira Monitore o seu instance.
Você pode aumentar os recursos de memória ou da CPU na sua instância. Para saber mais, confira Aprimorar os recursos de CPU ou memória.
Determinar o tipo de máquina virtual
Antes de iniciar o sua instância do GitHub Enterprise Server no Azure, você precisará determinar o tipo de computador que melhor atende às necessidades da sua organização. Para obter mais informações sobre computadores com otimização de memória, consulte Memory optimized virtual machine sizes na documentação do Microsoft Azure. Para avaliar os requisitos mínimos de recursos do GitHub Enterprise Server, confira Requisitos mínimos recomendados.
Você pode sempre ajustar sua CPU ou memória redimensionando sua instância. Alterar os recursos disponíveis para sua instância requer tempo de inatividade para seus usuários, portanto, a GitHub recomenda recursos de provisionamento excessivo para levar em conta a escala.
O appliance do GitHub Enterprise Server requer um disco de dados de armazenamento premium e é compatível com qualquer VM do Azure que tenha suporte ao armazenamento premium. Os tipos de VMs do Azure com o sufixo s dão suporte ao armazenamento premium. Para obter mais informações, confira Quais tipos de disco estão disponíveis no Azure? e Armazenamento Premium do Azure: design para alto desempenho na documentação do Azure.
GitHub recomenda uma VM com memória otimizada para GitHub Enterprise Server. Para obter mais informações, confira Tamanhos de máquina virtual otimizados para memória na documentação do Azure.
O GitHub Enterprise Server dá suporte a qualquer região compatível com o seu tipo de VM. Para obter mais informações sobre as regiões com suporte para cada VM, confira Produtos disponíveis por região do Azure.
Criando a máquina virtual do GitHub Enterprise Server
Para criar a instância, você precisará importar a imagem GitHub Enterprise Server para sua máquina virtual e anexar um volume de armazenamento adicional para os dados de sua instância. Para obter mais informações, confira Considerações sobre hardware.
-
Localize a imagem mais recente do appliance do GitHub Enterprise Server. Para obter mais informações sobre o comando
vm image list, confiraaz vm image listna documentação da Microsoft.az vm image list --all -f GitHub-Enterprise | grep '"urn": "GitHub:' | sort -V -
Crie uma nova VM usando a imagem do appliance que você encontrou. Para obter mais informações, confira az vm create na documentação da Microsoft.
Passe as opções para o nome da VM, o grupo de recursos, o tamanho da VM, o nome de sua região de Azure preferencial, o nome da VM de imagem do dispositivo listada na etapa anterior e o SKU de armazenamento para armazenamento premium. Para obter mais informações sobre grupos de recursos, confira Grupos de recursos na documentação da Microsoft.
az vm create -n VM_NAME -g RESOURCE_GROUP --size VM_SIZE -l REGION --image APPLIANCE_IMAGE_NAME --storage-sku Premium_LRS -
Defina as configurações de segurança na VM para abrir as portas necessárias. Recomendamos abrir portas de rede seletivamente com base nos serviços de rede que você precisa expor para fins administrativos e de usuário. Para obter mais informações, confira Portas de rede e az vm open-port na documentação da Microsoft. A tabela abaixo descreve cada porta para determinar quais portas você precisa abrir.
az vm open-port -n VM_NAME -g RESOURCE_GROUP --port PORT_NUMBEREsta tabela identifica o uso de cada porta.
Porta Serviço Descrição 22 SSH Git sobre acesso via SSH. Clone, buscar e fazer push de operações para repositórios público/privado suportados. 25 SMTP Suporte a SMTP com criptografia (STARTTLS). 80 HTTP Acesso ao aplicativo web. Todas as solicitações são redirecionadas para a porta HTTPS quando o SSL está habilitado. 122 SSH Exemplo de acesso a shell. A porta SSH padrão (22) é dedicada ao tráfego de rede entre o Git e o SSH do aplicativo. 161/UDP SNMP Obrigatória para operações de protocolo de monitoramento de rede. 443 HTTPS Aplicativo web e Git sobre acesso HTTPS. 1194/UDP VPN Túnel de rede de réplica segura na configuração de alta disponibilidade. Criptografado usando WireGuard. 8080 HTTP Baseado em web de texto simples Console de Gerenciamento. Não obrigatória, a menos que o SSL seja desabilitado manualmente. 8443 HTTPS Base segura na web Console de Gerenciamento. Obrigatória para instalação e configuração básicas. 9418 Git Porta de protocolo Simples Git. Clonar e buscar somente as operações para repositórios públicos. Comunicação de rede não criptografada. Se você habilitou o modo privado na sua instância, abrir esta porta só é necessário se você também habilitou o acesso de leitura anônimo do Git. Para saber mais, confira Aplicar as políticas de gerenciamento do repositório na sua empresa. -
Crie e anexe um novo disco de dados à VM e configure o tamanho com base na sua contagem de licenças do usuário. Para obter mais informações, confira az vm disk attach na documentação da Microsoft.
Observação
Todos os discos gerenciados Azure criados desde 10 de junho de 2017 são criptografados em repouso por padrão com Azure Storage Encryption. Não há suporte para habilitar Azure Disk Encryption para GitHub Enterprise Server.
Transmita as opções de nome da VM (por exemplo,
ghe-acme-corp), o grupo de recursos, o SKU de armazenamento premium, o tamanho do disco (por exemplo,200) e um nome para o VHD resultante.az vm disk attach --vm-name VM_NAME -g RESOURCE_GROUP --sku Premium_LRS --new -z SIZE_IN_GB --name ghe-data.vhd --caching ReadWriteObservação
Para que as instâncias de não produção tenham uma taxa de transferência de E/S suficiente, o tamanho mínimo recomendado do disco é de 150 GiB com o cache de leitura/gravação habilitado (
--caching ReadWrite).
Configurar a máquina virtual do GitHub Enterprise Server
Para configurar a instância, você precisa configurar o status da instância, carregar um arquivo de licença, definir a senha raiz do Console de Gerenciamento, definir as configurações da instância e reiniciar a instância.
Aviso
Para impedir que um invasor comprometa a nova instância, defina pessoalmente a senha Console de Gerenciamento raiz e crie o primeiro usuário o mais rápido possível.
-
Antes de configurar a VM, você deve aguardar que ela entre no status ReadyRole. Verifique o status da VM com o comando
vm list. Para obter mais informações, confira az vm list na documentação da Microsoft.$ az vm list -d -g RESOURCE_GROUP -o table > Name ResourceGroup PowerState PublicIps Fqdns Location Zones > ------ --------------- ------------ ------------ ------- ---------- ------- > VM_NAME RESOURCE_GROUP VM running 40.76.79.202 eastusObservação
Azure não cria automaticamente uma entrada FQDNS para a VM. Para obter mais informações, consulte o guia Azure Criar um nome de domínio totalmente qualificado no portal de Azure para uma VM do Linux.
- Copie o nome DNS público da máquina virtual e cole-o em um navegador.
-
No prompt, carregue seu arquivo de licença e defina uma senha de gerenciamento do console. Para saber mais, confira Baixando sua licença para GitHub Enterprise.
-
No Console de Gerenciamento, defina e salve as configurações desejadas. Para obter mais informações, consulte Configurando GitHub Enterprise.
- A instância será reiniciada automaticamente.
-
Clique em Acessar sua instância.
recursos de extensão Azure
GitHub Enterprise Server não dá suporte à instalação de recursos de extensão de Azure. A imagem do GitHub Enterprise Server é fornecida com um pacote waagent personalizado que só dá suporte às funções básicas de gerenciamento de VM e bloqueia as funções avançadas de gerenciamento de VM.
Para evitar a instabilidade do sistema da sua instância do GitHub Enterprise Server, o serviço walinuxagent é intencionalmente executado no GitHub Enterprise Server em modo restrito, impedindo explicitamente que o agente instale outros agentes. Os recursos de gerenciamento de VM que dependem de agentes e extensões adicionais além dos que vêm com a imagem do GitHub Enterprise Server, como a extensão do Agente de Monitoramento para Azure Insights ou Azure Backups, não são suportados.
Como o GitHub Enterprise Server executa um sistema operacional Linux personalizado que conta apenas com os aplicativos e serviços necessários, instalar ou atualizar manualmente os pacotes do sistema operacional substituirá essas personalizações e poderá causar comportamentos inesperados. Para saber mais, confira Visão geral do sistema.