Configurando um cache de repositório

Você pode configurar um cache de repositório criando um novo dispositivo, conectando o cache do repositório ao dispositivo primário e configurando a replicação das redes de repositórios no cache do repositório.

Note: Repository caching is currently in beta and subject to change.

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

You can configure repository caching by creating a special type of replica called a repository cache. 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 sua instância principal for github.example.com, você poderá decidir nomear um cache europe-ci.github.exemple.com ou github.asia.exemple.com.

Para fazer com que as suas máquinas de CI busquem o cache do repositório em vez da instância principal, você pode usar a configuração url.<base>.insteadOf. Para obter mais informações, consulte git-config na documentação do Git.

Por exemplo, o .gitconfig global para a máquina de CI incluiria essas linhas.

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

Em seguida, quando for dito para buscar https://github.example.com/myorg/myrepo, o Git irá buscar de https://europe-ci.github.example.com/myorg/myrepo.

Configurando um cache de repositório

  1. Durante o beta, você deve habilitar o sinalizador de recurso para o cache do repositório no dispositivo principal de GitHub Enterprise Server.

    $ ghe-config cluster.cache-enabled true
    
  2. Configure um novo appliance do GitHub Enterprise Server na plataforma desejada. Este dispositivo será o cache do repositório. Para obter mais informações, consulte "Configurar instância do GitHub Enterprise Server".

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

  4. Clique em Configure as Replica (Configurar como réplica). Opções de instalação com link para configurar a nova instância como réplica

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

  6. Clique em Adicionar chave.

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

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

    $ ghe-repl-setup PRIMARY IP
  9. Para adicionar a chave pública à lista de chaves autorizadas no appliance primário, navegue para o https://PRIMARY-HOSTNAME/setup/settings e adicione a chave que você copiou da réplica à lista.

  10. Para verificar a conexão com o primário e habilitar o modo de réplica no cache do repositório, execute ghe-repl-setup novamente.

    $ ghe-repl-setup PRIMARY IP
  11. Defina um cache_location para o cache do repositório, substituindo CACHE-LOCATION por um identificador alfanumérico, como a região onde o cache é implantado.

    $ ghe-repl-node --cache CACHE-LOCATION
  12. Para iniciar a replicação dos datastores, use o comando ghe-repl-start.

    $ ghe-repl-start

    Aviso: ghe-repl-start causa uma breve interrupção no servidor principal, durante o qual os usuários podem ver erros internos do servidor. Para fornecer uma mensagem mais amigável, execute ghe-maintenance -s no nó principal antes de executar ghe-repl-start no nó de réplica para colocar o appliance no modo de manutenção. Uma vez iniciada a réplica, desabilite o modo de manutenção com ghe-maintenance -u. Git replication will not progress while the primary node is in maintenance mode.

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

    $ ghe-repl-status
  14. 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, consulte "Políticas de localização de dados de".

Políticas de localização de dados

Você pode controlar a localidade de dados configurando as 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.

Você pode configurar uma política para replicar todas as redes com o sinalizador --default. Por exemplo, este comando irá criar uma política de replicação de uma única cópia de cada rede de repositório no conjunto de caches de repositórios 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.

Esse documento ajudou você?

Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.