Skip to main content

Esta versão do GitHub Enterprise foi descontinuada em 2022-10-12. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Criar réplica de alta disponibilidade

Em uma configuração ativa/passiva, o appliance réplica é uma cópia redundante do appliance primário. Em caso de falha no appliance primário, o modo de alta disponibilidade permitirá que a réplica atue como appliance primário, mitigando as interrupções de serviço.

Observação: há, no máximo, oito réplicas de alta disponibilidade (réplicas passivas e ativas/geográficas) permitidas para o GitHub Enterprise Server.

Criar réplica de alta disponibilidade

  1. Configure um novo appliance do GitHub Enterprise Server na plataforma desejada. O appliance réplica deve refletir as configurações de CPU, RAM e armazenamento do appliance primário. É recomendável instalar o appliance réplica em um ambiente independente. Hardware, software e componentes de rede subjacentes devem ser isolados dos do appliance primário. Se estiver em um provedor de nuvem, use uma região ou zona separada. Para obter mais informações, confira "Como configurar uma instância do GitHub Enterprise Server".

  2. Certifique-se de que o dispositivo primário e o novo dispositivo da réplica possam se comunicar entre si por meio das portas 122/TCP e 1194/UDP. Para obter mais informações, confira "Portas de rede".

  3. Em um navegador, vá até o novo endereço IP do appliance réplica e faça o upload da sua licença do GitHub Enterprise.

  4. Defina uma senha de administrador correspondente �  senha no appliance primário e continue.

  5. Clique em Configurar como Réplica. Opções de instalação com o link para configurar a nova instância como réplica

  6. Em "Add new SSH key" (Adicionar nova chave SSH), digite a chave SSH. Adicionar chave SSH

  7. Clique em Adicionar chave.

  8. Conecte-se ao endereço IP do appliance réplica usando SSH.

    $ ssh -p 122 admin@REPLICA IP
  9. Para gerar um par de chaves para replicação, use o comando ghe-repl-setup com o endereço IP do dispositivo primário e copie a chave pública retornada.

    $ ghe-repl-setup PRIMARY IP
    1. Para adicionar a chave pública �  lista de chaves autorizadas no dispositivo primário, procure `https://PRIMARY-HOSTNAME/setup/settings` e adicione a chave copiada da réplica �  lista.
  10. Para verificar a conexão com o primário e habilitar o modo de réplica para a nova réplica, execute ghe-repl-setup novamente.

    $ ghe-repl-setup PRIMARY IP
  11. Para iniciar a replicação dos armazenamentos de dados, use o comando ghe-repl-start.

    $ ghe-repl-start

    Aviso: ghe-repl-start causa uma breve interrupção no servidor primário, durante o qual os usuários podem receber erros internos do servidor. Para fornecer uma mensagem mais amigável, execute ghe-maintenance -s no nó primário antes de executar ghe-repl-start no nó de réplica a fim de colocar o dispositivo no modo de manutenção. Quando a replicação for iniciada, desabilite o modo de manutenção com ghe-maintenance -u. A replicação do Git não progredirá enquanto o nó primário estiver no modo de manutenção.

    11. Para verificar o status do canal de replicação de cada armazenamento de dados, use o comando `ghe-repl-status`.
    $ ghe-repl-status

Criar réplicas com replicação geográfica

Este exemplo de configuração usa um primário e duas réplicas, localizados em três regiões geográficas diferentes. Mesmo que os três nós estejam em redes diferentes, todos os nós precisam estar acessíveis entre si. No mínimo, as portas administrativas necessárias devem ficar abertas para todos os outros nós. Para obter mais informações sobre os requisitos de porta, confira "Portas de rede".

  1. Crie a primeira réplica da mesma forma que você faria para uma configuração padrão de dois nós executando ghe-repl-setup na primeira réplica.

    (replica1)$ ghe-repl-setup PRIMARY IP
    (replica1)$ ghe-repl-start
  2. Crie uma segunda réplica e use o comando ghe-repl-setup --add. O sinalizador --add impede que ele substitua a configuração de replicação existente e adiciona a nova réplica �  configuração.

    (replica2)$ ghe-repl-setup --add PRIMARY IP
    (replica2)$ ghe-repl-start
  3. Por padrão, as réplicas são configuradas no mesmo centro de dados e agora tentarão propagar a partir de um nó existente no mesmo centro de dados. Configure as réplicas para datacenters diferentes definindo outros valores na opção do datacenter. Você pode especificar os valores que preferir, desde que sejam diferentes uns dos outros. Execute o comando ghe-repl-node em cada nó e especifique o datacenter.

    No primário:

    (primary)$ ghe-repl-node --datacenter [PRIMARY DC NAME]

    Na primeira réplica:

    (replica1)$ ghe-repl-node --datacenter [FIRST REPLICA DC NAME]

    Na segunda réplica:

    (replica2)$ ghe-repl-node --datacenter [SECOND REPLICA DC NAME]

    Dica: você pode definir as opções --datacenter e --active ao mesmo tempo.

  4. Um nó de réplica ativo armazenará cópias dos dados do appliance e solicitações do usuário final do serviço. Um nó inativo armazenará cópias dos dados do appliance, mas não as solicitações do usuário final do serviço. Habilite o modo ativo usando o sinalizador --active ou o modo inativo usando o sinalizador --inactive.

    Na primeira réplica:

    (replica1)$ ghe-repl-node --active

    Na segunda réplica:

    (replica2)$ ghe-repl-node --active
  5. Para aplicar a configuração, use o comando ghe-config-apply no primário.

    (primary)$ ghe-config-apply

Configurar DNS de localização geográfica

Configure o Geo DNS usando os endereços IP dos nós primário e das réplicas. Crie também um DNS CNAME para o nó primário (por exemplo, primary.github.example.com) para acessar o nó primário por meio do SSH ou para fazer backup por meio de backup-utils.

Para teste, você pode adicionar entradas ao arquivo hosts da estação de trabalho local (por exemplo, /etc/hosts). Esses exemplos de entradas resolverão as solicitações de HOSTNAME para replica2. É possível segmentar hosts específicos comentando linhas diferentes.

# <primary IP>     <em>HOSTNAME</em>
# <replica1 IP>    <em>HOSTNAME</em>
<replica2 IP>    <em>HOSTNAME</em>

Leitura adicional