Pré-requisitos
- Você deve ter um GitHub Enterprise arquivo de licença. Para obter mais informações, confira "Configurar uma versão de avaliação do GitHub Enterprise Server" e "Sobre licenças para o GitHub Enterprise."
- É preciso ter uma conta do Google Cloud Platform que possa iniciar instâncias de máquina virtual (VM) do Google Compute Engine (GCE). Para obter mais informações, confira o site do Google Cloud Platform e a Documentação do Google Cloud Platform.
- A maioria das ações necessárias para iniciar sua instância também pode ser executada usando o Console do Google Cloud Platform. No entanto, é recomendável instalar a ferramenta de linha de comando gcloud compute para a configuração inicial. Veja abaixo alguns exemplos de uso da ferramenta de linha de comando gcloud compute. Para obter mais informações, confira o guia de instalação e configuração do computação do gcloud na documentação do Google.
Considerações sobre hardware
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ário | vCPUs x86-64 | Memória | Armazenamento raiz | Armazenamento (de dados) anexado |
---|---|---|---|---|
Teste, demonstração ou 10 usuários leves | 4 | 32 GB | 200 GB | 150 GB |
10-3000 | 8 | 48 GB | 200 GB | 300 GB |
3000-5000 | 12 | 64 GB | 200 GB | 500 GB |
5000-8000 | 16 | 96 GB | 200 GB | 750 GB |
8000-10000+ | 20 | 160 GB | 200 GB | 1000 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 "Primeiros passos com o GitHub Actions para o 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 "Primeiros passos com o GitHub Packages para a 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 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 "Primeiros passos com o GitHub Actions para o 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 "Primeiros passos com o GitHub Actions para o 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".
Determinar o tipo de máquina
Antes de iniciar o sua instância do GitHub Enterprise Server no Google Cloud Platform, você precisará determinar o melhor tipo de computador para as necessidades da sua organização. Para revisar os requisitos mínimos do GitHub Enterprise Server, confira "Requisitos mínimos".
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.
GitHub recomenda uma máquina de uso geral e de alta memória para GitHub Enterprise Server. Para obter mais informações, consulte "Tipos de computador" na documentação do Google Compute Engine.
Selecionar a imagem do GitHub Enterprise Server
-
Usando a ferramenta de linha de comando gcloud compute, liste as imagens públicas de GitHub Enterprise Server:
gcloud compute images list --project github-enterprise-public --no-standard-images
-
Anote o nome da imagem GCE mais recente do GitHub Enterprise Server.
Configurar o firewall
Máquinas virtuais GCE são criadas como integrantes de uma rede que tem um firewall. Na rede associada à VM do GitHub Enterprise Server, você terá que configurar o firewall para permitir as portas necessárias da tabela abaixo. 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 Visão Geral de Regras de Firewall na documentação do Google Cloud Platform.
-
Usando a ferramenta de linha de comando gcloud compute, crie a rede. Para obter mais informações, confira criar redes de computação do gcloud na documentação do Google.
gcloud compute networks create NETWORK-NAME --subnet-mode auto
-
Crie uma regra de firewall para cada porta da tabela abaixo. Para obter mais informações, confira regras de firewall de computação do gcloud na documentação do Google.
$ gcloud compute firewall-rules create RULE-NAME \ --network NETWORK-NAME \ --allow tcp:22,tcp:25,tcp:80,tcp:122,udp:161,tcp:443,udp:1194,tcp:8080,tcp:8443,tcp:9418,icmp
Esta tabela identifica as portas necessárias e o uso de cada uma delas.
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 obter mais informações, confira "Aplicar as políticas de gerenciamento do repositório na sua empresa".
Alocar uma IP estática e associá-la com a VM
Se você estiver trabalhando com um appliance de produção, é altamente recomendável reservar um endereço IP externo estático e atribuí-lo à VM do GitHub Enterprise Server. Caso contrário, o endereço IP público da VM não será retido após a reinicialização. Para obter mais informações, confira o guia do Google Como reservar um endereço IP externo estático.
Nas configurações de alta disponibilidade de produção, os appliances primário e réplica devem receber endereços IP estáticos separados.
Criar a instância do GitHub Enterprise Server
Para criar a instância do GitHub Enterprise Server, você deve criar uma instância do GCE com a imagem do GitHub Enterprise Server e vincular um volume de armazenamento adicional aos dados da sua instância. Para obter mais informações, confira "Considerações sobre hardware".
-
Usando a ferramenta de linha de comando gcloud compute, crie um disco de dados para usar como volume de armazenamento para os dados da sua instância e configure o tamanho com base na contagem de licenças de usuário. Para obter mais informações, confira criar discos de computação do gcloud na documentação do Google.
gcloud compute disks create DATA-DISK-NAME --size DATA-DISK-SIZE --type DATA-DISK-TYPE --zone ZONE
-
Em seguida, crie uma instância usando o nome da imagem selecionada do GitHub Enterprise Server e vincule o disco de dados. Para obter mais informações, confira criar instâncias de computação do gcloud na documentação do Google.
$ gcloud compute instances create INSTANCE-NAME \ --machine-type n1-standard-8 \ --image GITHUB-ENTERPRISE-IMAGE-NAME \ --disk name=DATA-DISK-NAME \ --metadata serial-port-enable=1 \ --zone ZONE \ --network NETWORK-NAME \ --image-project github-enterprise-public
Configurar a instância
Para configurar a instância, você precisa carregar um arquivo de licença, definir a senha raiz 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 raiz Console de Gerenciamento e crie o primeiro usuário o mais rápido possível.
- 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 "Gerenciando a sua licença para o GitHub Enterprise".
- No Console de Gerenciamento, defina e salve as configurações desejadas. Para saber mais, confira "Configurar o GitHub Enterprise".
- A instância será reiniciada automaticamente.
- Clique em Acessar sua instância.