Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais atualizadas, acesse a documentação em inglês.

Esta versão do GitHub Enterprise foi descontinuada em 2023-03-15. 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.

Configurando um cache de repositório

Você pode configurar um cache de repositório para GitHub Enterprise Server criando uma nova instância, conectando o cache do repositório à instância primária e configurando a replicação das redes de repositórios no cache do repositório.

Observação: o cache do repositório está atualmente em versão beta e sujeito a alterações.

Sobre a configuração para cache de repositório

Você pode configurar o cache do repositório criando um tipo especial de réplica chamado cache de repositório. Em seguida, você pode definir as políticas de localização de dados que regem quais redes de repositório são replicadas no cache do repositório.

O cache de repositório não é compatível com clustering.

DNS para caches de repositório

A instância primária e o cache do repositório devem ter nomes de DNS diferentes. Por exemplo, se a instância primária estiver em github.example.com, você poderá optar por nomear um cache europe-ci.github.example.com ou github.asia.example.com.

Para que os computadores de CI busquem o cache do repositório em vez da instância primária, use a definição de configuração url.<base>.insteadOf do Git. Para obter mais informações, confira git-config na documentação do Git.

Por exemplo, o .gitconfig global do computador de CI incluirá estas linhas.

[url "https://europe-ci.github.example.com/"]
    insteadOf = https://github.example.com/

Em seguida, quando instruído para buscar https://github.example.com/myorg/myrepo, o Git o buscará em https://europe-ci.github.example.com/myorg/myrepo.

Configurando um cache de repositório

  1. Configure uma nova instância do GitHub Enterprise Server na plataforma desejada. Esta instância será o cache do repositório. Para obter mais informações, confira "Configurar uma instância do GitHub Enterprise Server".

  2. Defina uma senha de administrador correspondente à senha no appliance primário e continue.

  3. Clique em Configurar como Réplica.

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

  5. Clique em Adicionar chave.

  6. Conecte ao endereço IP do repositório utilizando o SSH.

    $ ssh -p 122 admin@REPLICA-IP
  7. 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.
  8. Para verificar a conexão com o primário e habilitar o modo de réplica para o cache do repositório, execute ghe-repl-setup novamente.

    • Se o cache do repositório for seu único nó adicional, nenhum argumento será necessário.
      $ ghe-repl-setup PRIMARY-IP
    • Se você estiver configurando um cache do repositório além de uma ou mais réplicas existentes, use o argumento -a ou --add.
      $ ghe-repl-setup -a PRIMARY-IP
      
  9. Caso ainda não tenha feito isso, defina o nome do datacenter no primário e em qualquer dispositivo de réplica, substituindo DC-NAME por um nome de datacenter.

    $ ghe-repl-node --datacenter DC-NAME
    
  10. Defina um cache-location para o cache do repositório, substituindo CACHE-LOCATION por um identificador alfanumérico, como a região em que o cache foi implantado. Defina também um nome de datacenter para esse cache. Os novos caches tentarão ser semeados de outro cache no mesmo datacenter.

    $ ghe-repl-node --cache CACHE-LOCATION --datacenter REPLICA-DC-NAME
  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
  12. Para habilitar a replicação de redes de repositórios no cache do repositório, defina uma política de localização de dados. Para obter mais informações, confira "Políticas de localização de dados".

Políticas de localização de dados

Você pode controlar a localidade dos dados configurando políticas de localização de dados para seus repositórios com o comando spokesctl cache-policy. As políticas de localização de dados determinam quais redes de repositório são replicadas em quais caches de repositório. Por padrão, nenhuma rede de repositório será replicada em todos os caches de repositórios até que uma política de localização de dados seja configurada.

As políticas de localização de dados afetam apenas o conteúdo do Git. O conteúdo do banco de dados, como comentários sobre problemas e solicitações de pull, será replicado para todos os nós, independentemente da política.

Observação: as políticas de localização de dados não são iguais ao controle de acesso. Você precisa usar funções de repositório para controlar os usuários que podem acessar um repositório. Para saber mais sobre funções de repositório, confira "Funções de repositório para uma organização".

Você pode configurar uma política para replicar todas as redes com o sinalizador --default. Por exemplo, este comando criará uma política para replicar uma única cópia de cada rede de repositório para o conjunto de caches de repositório cujo cache_location é "kansas".

$ ghe-spokesctl cache-policy set --default 1 kansas

Para configurar a replicação de uma rede de repositório, especifique o repositório que é a raiz da rede. A rede de um repositório inclui um repositório e todas as bifurcações do repositório. Você não pode replicar parte de uma rede sem replicar toda a rede.

$ ghe-spokesctl cache-policy set <owner/repository> 1 kansas

Você pode substituir uma política que replica todas as redes e excluir as redes específicas, especificando uma contagem de réplica de zero para a rede. Por exemplo, este comando especifica que qualquer cache de repositórios no local "kansas" não pode conter cópias dessa rede.

$ ghe-spokesctl cache-policy set <owner/repository> 0 kansas

As contagens de réplica superiores a um em um determinado local de cache não são compatíveis.