É 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. 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 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.
-
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
ssh -p 122 admin@HOSTNAME -
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 arquivo de atualização (arquivo .pkg).
-
Baixe o pacote de atualização no sua instância do GitHub Enterprise Server usando
curl:admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL -
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.
-
Execute o comando
ghe-upgradeusando o nome do arquivo de pacote:admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg *** verifying upgrade package signature... -
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] -
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. -
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.logA configuração é executada em segundo plano e você não precisa executar
ghe-config-applyexplicitamente, a menos que encontre um problema.Aviso
Se você estiver atualizando um nó em um cluster de vários nós, a execução de
ghe-config-applyna linha de comando ou o salvamento das configurações no Console de Gerenciamento poderá falhar, resultando em uma atualização incompleta caso nem todos os nós sejam atualizados para a mesma versão. Useghe-single-config-applyem seu lugar. -
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.
-
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, é 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 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 após o primário estar completamente atualizado e configurado, você poderá prosseguir para 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](#upgrading-the-primary-node-with-an-upgrade-package) -
[Atualizar nós adicionais com um pacote de atualização](#upgrading-additional-nodes-with-an-upgrade-package)
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.
-
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.
-
Conecte-se ao nó de réplica via SSH como o usuário
adminna porta 122:ssh -p 122 admin@REPLICA_HOST -
Para interromper a replicação em todos os nós, execute
ghe-repl-stopem cada um deles. Como alternativa, se houver várias réplicas, executeghe-repl-stop-allno nó primário, o que interromperá a replicação em uma só execução. -
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
-
Atualize o nó seguindo as instruções em Atualizar uma instância autônoma usando um pacote de upgrade.
-
Conecte-se ao nó de réplica via SSH como o usuário
adminna porta 122:ssh -p 122 admin@REPLICA_HOST -
Verifique a atualização executando:
ghe-version -
No nó de réplica, execute
ghe-repl-startpara iniciar a replicação. Como alternativa, se houver várias réplicas, executeghe-repl-start-allno nó primário em vez disso, o que iniciará as replicações em uma só execução. -
No nó de réplica, para garantir a execução correta dos serviços de replicação, execute
ghe-repl-status. Este comando retornaráOKpara todos os serviços quando uma replicação bem sucedida estiver em andamento e a réplica for atualizada. Se o comando retornarReplication is not running, a replicação ainda pode estar sendo iniciada. Aguarde cerca de um minuto antes de executarghe-repl-statusnovamente.
Observação
-
Embora a ressincronização esteja em andamento,
ghe-repl-statuspode 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.
- Repita as etapas acima para cada nó adicional.
- 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.