Skip to main content

Installing GitHub Enterprise Server on Azure

To install GitHub Enterprise Server on Azure, you must deploy onto a memory-optimized instance that supports premium storage.

You can deploy GitHub Enterprise Server on global Azure or Azure Government.

Prerequisites

Hardware considerations

Requisitos mínimos

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, sua instância terá um desempenho e uma escala melhores.

Licenças de usuáriovCPUs x86-64MemóriaArmazenamento raizArmazenamento (de dados) anexado
Teste, demonstração ou 10 usuários leves432 GB200 GB150 GB
10-3000848 GB200 GB300 GB
3000-50001264 GB200 GB500 GB
5000-80001696 GB200 GB750 GB
8000-10000+20160 GB200 GB1000 GB

Se você pretende habilitar o GitHub Actions para os usuários da sua instância, mais recursos são necessários.

Para obter mais informações sobre esses requisitos, confira "Getting started with GitHub Actions for 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 "Getting started with GitHub Packages for your enterprise".

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 obter mais informações, confira "Visão geral do sistema".

Para configurar o GitHub Actions, você precisa fornecer um armazenamento de blobs externo. Para obter mais informações, confira "Getting started with GitHub Actions for 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 obter mais informações, 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 obter mais informações, confira "Getting started with GitHub Actions for 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 obter mais informações, confira "Sobre webhooks".

Para obter mais informações sobre como monitorar a capacidade e o desempenho de GitHub Enterprise Server, confira "Monitorar sua instância".

Você pode aumentar os recursos de memória ou da CPU na sua instância. Para obter mais informações, confira "Aprimorar os recursos de CPU ou memória".

Determining the virtual machine type

Before launching sua instância do GitHub Enterprise Server on Azure, you'll need to determine the machine type that best fits the needs of your organization. For more information about memory optimized machines, see Memory optimized virtual machine sizes in the Microsoft Azure documentation. To review the minimum resource requirements for GitHub Enterprise Server, see "Minimum requirements."

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 discos 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.

Creating the GitHub Enterprise Server virtual machine

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".

  1. Find the most recent GitHub Enterprise Server appliance image. For more information about the vm image list command, see "az vm image list" in the Microsoft documentation.

    az vm image list --all -f GitHub-Enterprise | grep '"urn": "GitHub:' | sort -V
    
  2. Create a new VM using the appliance image you found. For more information, see az vm create in the Microsoft documentation.

    Pass in options for the name of your VM, the resource group, the size of your VM, the name of your preferred Azure region, the name of the appliance image VM you listed in the previous step, and the storage SKU for premium storage. For more information about resource groups, see Resource groups in the Microsoft documentation.

    az vm create -n VM_NAME -g RESOURCE_GROUP --size VM_SIZE -l REGION --image APPLIANCE_IMAGE_NAME --storage-sku Premium_LRS
    
  3. Configure the security settings on your VM to open up required ports. We recommend opening network ports selectively based on the network services you need to expose for administrative and user purposes. For more information, see "Network ports," and az vm open-port in the Microsoft documentation. See the table below for a description of each port to determine what ports you need to open.

    az vm open-port -n VM_NAME -g RESOURCE_GROUP --port PORT_NUMBER
    

    This table identifies what each port is used for.

    PortaServiçoDescrição
    22SSHGit sobre acesso via SSH. Clone, buscar e fazer push de operações para repositórios público/privado suportados.
    25SMTPSuporte a SMTP com criptografia (STARTTLS).
    80HTTPAcesso ao aplicativo web. Todas as solicitações são redirecionadas para a porta HTTPS quando o SSL está habilitado.
    122SSHExemplo 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/UDPSNMPObrigatória para operações de protocolo de monitoramento de rede.
    443HTTPSAplicativo web e Git sobre acesso HTTPS.
    1194/UDPVPNTúnel de rede de réplica segura na configuração de alta disponibilidade. Criptografado usando WireGuard.
    8080HTTPBaseado em web de texto simples Console de Gerenciamento. Não obrigatória, a menos que o SSL seja desabilitado manualmente.
    8443HTTPSBase segura na web Console de Gerenciamento. Obrigatória para instalação e configuração básicas.
    9418GitPorta 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 obter mais informações, confira "Enforcing repository management policies in your enterprise".
  4. Create and attach a new unencrypted data disk to the VM, and configure the size based on your user license count. For more information, see az vm disk attach in the Microsoft documentation.

    Pass in options for the name of your VM (for example, ghe-acme-corp), the resource group, the premium storage SKU, the size of the disk (for example, 200), and a name for the resulting VHD.

    az vm disk attach --vm-name VM_NAME -g RESOURCE_GROUP --sku Premium_LRS --new -z SIZE_IN_GB --name ghe-data.vhd --caching ReadWrite
    

    Note: For non-production instances to have sufficient I/O throughput, the recommended minimum disk size is 150 GiB with read/write cache enabled (--caching ReadWrite).

Configuring the GitHub Enterprise Server virtual machine

To configure the instance, you must confirm the instance's status, upload a license file, set the root Console de Gerenciamento password, configure the instance's settings, and restart the instance.

Aviso: para impedir que um invasor comprometa a nova instância, defina pessoalmente a senha raiz Console de Gerenciamento e crie o primeiro usuário o mais rápido possível.

  1. Before configuring the VM, you must wait for it to enter ReadyRole status. Check the status of the VM with the vm list command. For more information, see az vm list in the Microsoft documentation.

    $ 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           eastus
    
    

    Note: Azure does not automatically create a FQDNS entry for the VM. For more information, see the Azure guide Create a fully qualified domain name in the Azure portal for a Linux VM.

    1. Copie o nome DNS público da máquina virtual e cole-o em um navegador.
    2. No prompt, carregue seu arquivo de licença e defina uma senha de gerenciamento do console. Para obter mais informações, confira "Gerenciando a sua licença para o GitHub Enterprise".
    3. No Console de Gerenciamento, defina e salve as configurações desejadas. For more information, see "Configuring GitHub Enterprise."
    4. A instância será reiniciada automaticamente.
    5. Clique em Acessar sua instância.

Azure extension features

GitHub Enterprise Server does not support the installation of Azure extension features. The GitHub Enterprise Server image is shipped with a customized waagent package which only supports basic VM management functions and blocks advanced VM management functions.

To avoid system instability of your GitHub Enterprise Server instance, the walinuxagent service is intentionally run in GitHub Enterprise Server in a restricted mode, explicitly disallowing the agent from being able to install other agents. VM management features that rely on additional agents and extensions beyond that which ships with GitHub Enterprise Server image, such as the Monitoring Agent extension for Azure Insights or Azure Backups, are unsupported.

Because GitHub Enterprise Server runs a customized Linux operating system with only the necessary applications and services, installing or updating operating system packages manually will overwrite these customizations and can cause unexpected behavior. For more information, see "Visão geral do sistema."

Further reading