Skip to main content

Atualizar com pacote de atualização

Saiba como usar um pacote de atualização para atualizar GitHub Enterprise Server para uma versão mais recente do recurso.

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

Se você estiver executando atualizações consecutivas de versões de recurso, é necessário garantir que os trabalhos em segundo plano estejam concluídos antes de prosseguir com a atualização seguinte para uma versão de recurso. GitHub recomenda aguardar a conclusão de qualquer tarefa de atualização em segundo plano 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 atualizar para a versão mais recente do patch dentro de uma série de funcionalidades, você deve usar um pacote de atualização para migrar para uma nova versão de funcionalidades. 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 Ativar verificações automáticas de atualizações.

  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 Acessar 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 apropriada e copie a URL do pacote de atualização (.pkg arquivo).

  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 GitHub Enterprise Server instância. 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.

    Observação

    Os trabalhos de atualização em segundo plano só precisam ser concluídos antes de iniciar uma atualização de recurso subsequente. Você não precisa aguardar ghe-check-background-upgrade-jobs antes de atualizar a réplica ou outros nós adicionais para a mesma versão.

    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
    

    A configuração é executada em segundo plano e você não precisa executar ghe-config-apply explicitamente, a menos que encontre um problema.

    Aviso

    Se você estiver atualizando um nó em um cluster com vários nós, executar ghe-config-apply na linha de comando ou salvar as configurações no Console de Gerenciamento poderá falhar e resultar em uma atualização incompleta se nem todos os nós forem atualizados para a mesma versão. Use ghe-single-config-apply em seu lugar.

  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 as tarefas pós-atualização, incluindo desabilitar o modo de manutenção para que os usuários possam usar 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, é recomendado manter-se no modo de manutenção até concluir a atualização de todos os nós de réplica e assegurar-se de que a replicação esteja em dia. Consulte Atualizando 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 GitHub Enterprise Server usando um pacote de atualização, primeiro você deve atualizar o nó primário e aguardar sua execução de 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 uma instância autônoma usando um pacote de upgrade.

  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, o que iniciará as replicações em uma única 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.

Atualizando uma instância usando a execução de atualização em fases

A execução de atualização em fases permite que os operadores GitHub Enterprise Server que executam as versões 3.22 ou superiores tenham maior controle sobre ações que provocam tempo de inatividade, isolando essas ações em sua própria fase. Para usar a execução em fases, execute o seguinte depois de baixar o pacote de atualização:

  1. Executar a fase de pré-atualização do pacote

    ghe-upgrade --phase pre-upgrade GITHUB-UPGRADE.pkg
    
  2. Habilite o modo de manutenção e aguarde a conclusão de todos os processos ativos na GitHub Enterprise Server instância. 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.

  3. Executar a fase de atualização

    ghe-upgrade --phase pre-upgrade GITHUB-UPGRADE.pkg
    
  4. 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.

  5. Para atualizações de nó único, execute as tarefas pós-atualização, incluindo desabilitar o modo de manutenção para que os usuários possam usar 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, é recomendado manter-se no modo de manutenção até concluir a atualização de todos os nós de réplica e assegurar-se de que a replicação esteja em dia. Consulte Atualizando nós adicionais com um pacote de atualização.