You can deploy GitHub Enterprise Server on global Azure or Azure Government.
Prerequisites
- Você deve ter um GitHub Enterprise arquivo de licença. Para obter mais informações, confira "Como configurar uma avaliação do GitHub Enterprise Server" e "Sobre as licenças do GitHub Enterprise".
- You must have an Azure account capable of provisioning new machines. For more information, see the Microsoft Azure website.
- Most actions needed to launch your virtual machine (VM) may also be performed using the Azure Portal. However, we recommend installing the Azure command line interface (CLI) for initial setup. Examples using the Azure CLI 2.0 are included below. For more information, see Azure's guide "Install Azure CLI 2.0."
Hardware considerations
Minimum requirements
We recommend different hardware configurations depending on the number of user licenses for your GitHub Enterprise Server instance. If you provision more resources than the minimum requirements, your instance will perform and scale better.
Licenças de usuário | vCPUs | Memória | Armazenamento anexado | Armazenamento raiz |
---|---|---|---|---|
Teste, demonstração ou 10 usuários leves | 4 | 32 GB | 150 GB | 200 GB |
10-3000 | 8 | 48 GB | 300 GB | 200 GB |
3000-5000 | 12 | 64 GB | 500 GB | 200 GB |
5000-8000 | 16 | 96 GB | 750 GB | 200 GB |
8000-10000+ | 20 | 160 GB | 1000 GB | 200 GB |
Se você pretende habilitar o GitHub Actions para os usuários da sua instância, mais recursos são necessários.
vCPUs | Memória | Simultaneidade máxima |
---|---|---|
32 | 128 GB | 1.000 trabalhos |
64 | 256 GB | 1.300 trabalhos |
96 | 384 GB | 2.200 trabalhos |
Para obter mais informações sobre esses requisitos, confira "Introdução ao GitHub Actions para GitHub Enterprise Server".
Para obter mais informações sobre como ajustar os recursos de uma instância existente, confira "Como aumentar a capacidade de armazenamento" e "Como aumentar os recursos de CPU ou de memória".
Storage
We recommend a high-performance SSD with high input/output operations per second (IOPS) and low latency for GitHub Enterprise Server. Workloads are I/O intensive. If you use a bare metal hypervisor, we recommend directly attaching the disk or using a disk from a storage area network (SAN).
Your instance requires a persistent data disk separate from the root disk. For more information, see "System overview."
To configure GitHub Actions, you must provide external blob storage. For more information, see "Getting started with GitHub Actions for GitHub Enterprise Server."
The available space on the root filesystem will be 50% of the total disk size. You can resize your instance's root disk by building a new instance or using an existing instance. For more information, see "System overview" and "Increasing storage capacity."
CPU and memory
The CPU and memory resources that GitHub Enterprise Server requires depend on the levels of activity for users, automations, and integrations.
If you plan to enable GitHub Actions for the users of your GitHub Enterprise Server instance, you may need to provision additional CPU and memory resources for your instance. For more information, see "Getting started with GitHub Actions for GitHub Enterprise Server."
Quando você aumenta os recursos da CPU, recomendamos 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.
Warning: We recommend that users configure webhook events to notify external systems of activity on GitHub Enterprise Server. Automated checks for changes, or polling, will negatively impact the performance and scalability of your instance. For more information, see "About webhooks."
For more information about monitoring the capacity and performance of GitHub Enterprise Server, see "Monitoring your appliance."
You can increase your instance's CPU or memory resources. For more information, see "Increasing CPU or memory resources."
Determining the virtual machine type
Before launching your GitHub Enterprise Server instance 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."
Observação: você pode sempre ajustar sua CPU ou memória redimensionando sua instância. No entanto, como o redimensionamento da sua CPU ou memória requer tempo de inatividade para os usuários, recomendamos o fornecimento excessivo de recursos para contas em 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".
-
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":' | sort -V
-
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
-
Configure the security settings on your VM to open up required ports. For more information, see "
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.
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. 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 obter mais informações, confira "Como impor políticas de gerenciamento de repositório na sua empresa". -
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
-
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 Azure's guide on how to "Create a fully qualified domain name in the Azure portal for a Linux VM."
-
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 obter mais informações, confira "Como gerenciar sua licença do GitHub Enterprise".
-
No Console de Gerenciamento, defina e salve as configurações desejadas. For more information, see "Configuring the GitHub Enterprise Server appliance."
-
A instância será reiniciada automaticamente.
-
Clique em Acessar sua instância.