Skip to main content

Atualizar com pacote de atualização

Aprenda a usar um pacote para fazer upgrade do GitHub Enterprise Server para uma versão de recurso mais recente.

É possível usar o shell administrativo para instalar um pacote de atualização com o utilitário ghe-upgrade.

Se você estiver com atualizações consecutivas da versão do recurso em execução, deverá se certificar de que os trabalhos em segundo plano estejam concluídos antes de prosseguir com a atualização seguinte para uma versão de recurso. O GitHub recomenda aguardar para permitir que as tarefas de atualização em segundo plano sejam concluídas antes de atualizar uma segunda vez. Confira Visão geral do processo de atualização e Requisitos de atualização.

Mesmo que seja possível usar um hotpatch para fazer a atualização do patch em uma série, você deve usar um pacote de atualização a fim de atualizar para uma versão mais recente. Por exemplo, para atualizar da 2.11.10 para a 2.12.4, é preciso usar um pacote de atualização porque essas versões estão em séries de recursos diferentes.

Atualizar uma instância autônoma usando um pacote de atualização

Observação

Se você tiver habilitado as verificações de atualização automáticas, não precisará baixar o pacote de upgrade e poderá usar o arquivo que foi baixado automaticamente. Para saber mais, confira Verificações de atualizações automáticas.

  1. Conecte-se via SSH ao sua instância do GitHub Enterprise Server. Se sua instância for composta por vários nós, por exemplo, se a alta disponibilidade ou a replicação geográfica estiver configurada, efetue SSH no nó primário. Se você usar um cluster, poderá efetuar SSH em qualquer nó. Substitua HOSTNAME pelo nome do host da instância ou pelo nome do host ou endereço IP de um nó. Para saber mais, confira Acesar o shell administrativo (SSH).

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Navegue até a página Versões do GitHub Enterprise Server. Ao lado da versão para a qual você está atualizando, clique em Baixar e clique na guia Upgrade. Selecione a plataforma adequada e copie a URL do pacote de atualização (arquivo .pkg).

  3. Baixe o pacote de atualização no sua instância do GitHub Enterprise Server usando curl:

    admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
    
  4. Habilite o modo de manutenção e aguarde a conclusão de todos os processos ativos na instância do GitHub Enterprise Server. Confira Habilitar e programar o modo de manutenção.

    Observação

    Ao atualizar o nó primário em uma configuração de alta disponibilidade, a instância já deve estar no modo de manutenção ao seguir as instruções em Atualização do nó primário com um pacote de atualização.

  5. Execute o comando ghe-upgrade usando o nome do arquivo de pacote:

    admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg
    *** verifying upgrade package signature...
    
  6. Confirme que você gostaria de continuar a atualização e de reiniciar após a verificação da assinatura do pacote. O novo sistema de arquivos raiz grava na partição secundária. A instância, por sua vez, é reiniciada automaticamente em modo de manutenção:

    *** applying update...
    This package will upgrade your installation to version VERSION-NUMBER
    Current root partition: /dev/xvda1 [VERSION-NUMBER]
    Target root partition:  /dev/xvda2
    Proceed with installation? [y/N]
    
  7. Opcionalmente, durante uma atualização para uma versão de recurso, é possível monitorar o status das migrações de banco de dados usando o utilitário ghe-migrations. Confira Utilitários de linha de comando.

  8. Depois que a instância for reiniciada, a atualização continuará em segundo plano. Não é possível remover a definição do modo de manutenção até que o processo seja concluído.

    Para verificar o status dos trabalhos em segundo plano, use o utilitário ghe-check-background-upgrade-jobs. Se você estiver com atualizações consecutivas em execução, deverá se certificar de que os trabalhos em segundo plano estejam concluídos antes de prosseguir com a atualização seguinte para uma versão de recurso.

    Confira Utilitários de linha de comando.

    Para monitorar o progresso da execução da configuração, realize a leitura da saída em /data/user/common/ghe-config.log. Por exemplo, você pode acompanhar o log executando o seguinte comando:

    tail -f /data/user/common/ghe-config.log
    
  9. Opcionalmente, após a atualização, é possível validá-la configurando uma lista de exceções de IP para permitir o acesso a uma lista especificada de endereços IP. Confira Habilitar e programar o modo de manutenção.

  10. Para atualizações de nó único, execute qualquer tarefa pós-atualização incluindo desabilitar o Modo de Manutenção, a fim de que os usuários possam usar o sua instância do GitHub Enterprise Server.

    Observação

    Após a atualização de uma instância em uma configuração de alta disponibilidade, mantenha-se no modo de manutenção até concluir a atualização de todos os nós de réplica e a replicação estar atual. Confira Atualizar nós adicionais com um pacote de atualização.

Atualizar uma instância com vários nós usando um pacote de atualização

Para atualizar um ambiente de vários nós do GitHub Enterprise Server usando um pacote de atualização, primeiro você deve atualizar o nó primário e aguardar a execução da configuração ser concluída com êxito. Somente depois que o primário for totalmente atualizado e configurado você poderá continuar a atualizar qualquer réplica ou nós adicionais. A tentativa de atualizar outros nós antes da conclusão do nó primário resultará em falhas de atualização.

Atualizar o nó primário com um pacote de atualização

Aviso

Se a replicação for interrompida em caso de falha da instância primária, será perdido qualquer trabalho feito antes da atualização da réplica e do reinício da replicação.

  1. No nó primário, habilite o modo de manutenção e aguarde a conclusão de todos os processos ativos. Confira Habilitar e programar o modo de manutenção.

  2. Conecte-se ao nó de réplica via SSH como o usuário admin na porta 122:

    ssh -p 122 admin@REPLICA_HOST
    
  3. Para interromper a replicação em todos os nós, execute ghe-repl-stop em cada um deles. Como alternativa, se houver várias réplicas, execute ghe-repl-stop-all no nó primário, o que interromperá a replicação em uma só execução.

  4. Para atualizar o nó primário, siga as instruções em Atualizar um uma instância autônoma usando um pacote de atualização.

Atualizar nós adicionais com um pacote de atualização

  1. Atualize o nó seguindo as instruções em Atualizar um uma instância autônoma usando um pacote de atualização.

  2. Conecte-se ao nó de réplica via SSH como o usuário admin na porta 122:

    ssh -p 122 admin@REPLICA_HOST
    
  3. Verifique a atualização executando:

    ghe-version
    
  4. No nó de réplica, execute ghe-repl-start para iniciar a replicação. Como alternativa, se houver várias réplicas, execute ghe-repl-start-all no nó primário em vez disso, o que iniciará as replicações em uma só execução.

  5. No nó de réplica, para garantir a execução correta dos serviços de replicação, execute ghe-repl-status. Este comando retornará OK para todos os serviços quando uma replicação bem sucedida estiver em andamento e a réplica for atualizada. Se o comando retornar Replication is not running, a replicação ainda pode estar sendo iniciada. Aguarde cerca de um minuto antes de executar ghe-repl-status novamente.

Observação

  • Embora a ressincronização esteja em andamento, ghe-repl-status pode indicar que a replicação está atrasada. Nesses casos, será possível ver a mensagem a seguir.

    CRITICAL: git replication is behind the primary by more than 1007 repositories and/or gists
    
  • Se o GitHub Actions estiver ativado em sua instância do GitHub Enterprise Server, você poderá ver uma mensagem como a seguinte. Essa mensagem é esperada quando a replicação é pausada devido à definição do modo de manutenção no dispositivo primário. Quando a definição do modo de manutenção for removida, essa mensagem será resolvida.

    CRITICAL: mssql replication is down, didn't find Token_Configuration!
    

Se ghe-repl-status não retornou OK e a explicação não estiver listada na nota acima, entre em contato com o Suporte do GitHub Enterprise. Para saber mais, confira Entrando em contato com o suporte do GitHub.

  1. Repita as etapas acima para cada nó adicional.
  2. Após a atualização do último nó de réplica e da conclusão da ressincronização, desabilite o modo de manutenção para que os usuários possam usar o sua instância do GitHub Enterprise Server.