Note: Features such as GitHub Actions, GitHub Package Registry, GitHub Mobile and Segurança Avançada GitHub are available on GitHub Enterprise Server 3.0 or higher. We highly recommend upgrading to 3.0 or later releases to take advantage of critical security updates, bug fixes and feature enhancements.
Preparar para a atualização
-
Determine uma estratégia de atualização e escolha uma versão para atualizar. Para obter mais informações, consulte "Requisitos de atualização" e consulte o Upgrade assistant para encontrar o caminho de atualização da sua versão atual.
-
Crie um backup da instância primária usando o GitHub Enterprise Server Backup Utilities. Para obter mais informações, consulte o Arquivo README.md do GitHub Enterprise Server Backup Utilities.
-
Se você estiver atualizando com um pacote de atualização, programe um período de manutenção para os usuários finais do GitHub Enterprise Server. Se estiver usando um hotpatch, não será necessário recorrer ao modo de manutenção.
Observação: o período de manutenção depende do tipo de atualização a ser feita. Atualizações com hotpatch normalmente não exigem período de manutenção. É preciso reinicializar a instância em alguns casos, mas o processo pode ser feito em outro momento. Seguindo o esquema de versões do MAJOR.FEATURE.PATCH, as versões de patch que usam pacote de atualização costumam gerar menos de cinco minutos de tempo de inatividade. Versões de recursos que incluem migrações de dados levam mais tempo, dependendo do desempenho do armazenamento e da quantidade de dados migrados. Para obter mais informações, consulte "Habilitar e programar o modo de manutenção".
Sobre os requisitos mínimos para GitHub Enterprise Server 3.0 ou posterior
Antes de atualizar para GitHub Enterprise Server 3.0 ou posterior, revise os recursos de hardware que você forneceu para sua instância. GitHub Enterprise Server 3.0 introduz novas funcionalidades, como GitHub Actions e GitHub Package Registry, e exige mais recursos do que as versões 2.22 e anteriores. Para obter mais informações, consulte as observações sobre a versão GitHub Enterprise Server 3.0.
Os requisitos aumentados para GitHub Enterprise Server 3.0 e posterior estão em negrito na tabela a seguir.
Licenças de usuário | vCPUs | Memória | Armazenamento anexado | Armazenamento raiz |
---|---|---|---|---|
Teste, demonstração ou 10 usuários leves | 4 Up from 2 | 32 GB Up de 16 GB | 150 GB Up de 100 GB | 200 GB |
10-3000 | 8 Up de 4 | 48 GB Up de 32 GB | 300 GB Up de 250 GB | 200 GB |
3000-5000 | 12 Up de 8 | 64 GB | 500 GB | 200 GB |
5000-8000 | 16 Up de 12 | 96 GB | 750 GB | 200 GB |
8000-10000+ | 20 Up de 16 | 160 GB Up de 128 GB | 1000 GB | 200 GB |
Para obter mais informações sobre requisitos de hardware para GitHub Actions, consulte "Introdução a GitHub Actions para GitHub Enterprise Server".
Para obter mais informações sobre o ajuste de recursos para uma instância existente, consulte "aumentar a capacidade de armazenamento" e "aumentar recursos de CPU ou memória".
Obter um instantâneo
Instantâneo é um ponto de verificação de uma máquina virtual (VM) em um momento específico. É altamente recomendável obter um instantâneo antes de atualizar sua máquina virtual para que você possa recuperar a VM em caso de falha. Apenas recomendamos tirar um instantâneo da VM quando o dispositivo estiver desligado ou em modo de manutenção e todos os trabalhos em segundo plano estiverem concluídos.
Se você estiver atualizando para uma nova versão do recurso, obtenha um instantâneo da VM. Se você estiver atualizando para uma versão de patch, vincule o disco de dados existente.
Há dois tipos de instantâneo:
-
Instantâneos de VM salvam todo o estado da VM, inclusive dados do usuário e da configuração. Esse método de instantâneo é demorado e requer muito espaço livre em disco.
-
Instantâneos em disco de dados salvam somente os dados do usuário.
Notas:
- Algumas plataformas não permitem usar instantâneos apenas do disco de dados. Nesse caso, você terá que obter um instantâneo de toda a VM.
- Se o hipervisor não der suporte a instantâneos completos de VM, obtenha um instantâneo do disco raiz e do disco de dados em rápida sucessão.
Plataforma | Método de instantâneo | URL de documentação de instantâneo |
---|---|---|
Amazon AWS | Disco | https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html |
Azure | VM | https://docs.microsoft.com/azure/backup/backup-azure-vms-first-look-arm |
Hyper-V | VM | https://docs.microsoft.com/windows-server/virtualization/hyper-v/manage/enable-or-disable-checkpoints-in-hyper-v |
Google Compute Engine | Disco | https://cloud.google.com/compute/docs/disks/create-snapshots |
VMware | VM | https://pubs.vmware.com/vsphere-50/topic/com.vmware.wssdk.pg.doc_50/PG_Ch11_VM_Manage.13.3.html |
XenServer | VM | https://docs.citrix.com/en-us/xencenter/current-release/vms-snapshots.html |
Atualizar com hotpatch
Você pode atualizar GitHub Enterprise Server para a versão mais recente do patch usando um hotpatch, que não requer uma janela de manutenção e geralmente não requer reinicialização.
Você pode usar hotpatching para atualizar para uma versão de patch mais recente, mas não uma versão de recursos. Por exemplo, você pode atualizar 2.10.1
para 2.10.5
porque eles estão na mesma série de recursos, mas não de 2.10.9
para 2.11.0
porque eles estão em uma série de recursos diferentes.
Ao usar o Console de gerenciamento, você pode instalar um hotpatch imediatamente ou programá-lo para instalação posterior. Você pode usar o shell administrativo para instalar um hotpatch com o utilitário ghe-upgrade
. Para obter mais informações, consulte "Requisitos de atualização".
Observações:
-
Se your GitHub Enterprise Server instance estiver executando a compilação de um candidato � versão, você não poderá atualizar com um hotpatch.
-
Instalando um hotpatch usando o Console de gerenciamento não está disponível em ambientes com cluster. Para instalar um hotpatch em um ambiente em cluster, consulte "Atualizar um cluster".
Atualizar um appliance com hotpatch
Instalar um hotpatch usando o Console de gerenciamento
Você pode usar o Console de gerenciamento para atualizar com um hotpatch, habilitando as atualizações automáticas. Em seguida, será apresentada a última versão de GitHub Enterprise Server disponível para a qual você pode atualizar.
Se o alvo de atualização que lhe foi apresentado for uma versão do recurso em vez de uma versão de patch, você não poderá usar Console de gerenciamento para instalar um hotpatch. Você deve instalar o hotpatch usando o shell administrativo. Para obter mais informações, consulte "Instalando um hotpatch usando o shell administrativo."
-
Habilite atualizações automáticas. Para obter mais informações, consulte "Habilitar atualizações automáticas".
-
From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .
-
If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.
-
Na barra lateral esquerda, clique em Console de gerenciamento.
-
No topo do Console de gerenciamento, clique em Updates.
-
Quando um novo hotpatch for baixado, use o menu suspenso Install package (Instalar pacote):
- Para instalar na mesma hora, selecione Now (Agora):
- Para instalar depois, selecione outra data.
-
Clique em instalar.
Instalar hotpatch usando o shell administrativo
Nota: Se você tiver ativado as verificações automáticas de atualização, você não precisa baixar o pacote de atualização e pode usar o arquivo que foi baixado automaticamente. Para obter mais informações, consulte "Enabling automatic update checks."
- SSH em your GitHub Enterprise Server instance. Para obter mais informações, consulte "Acessar o shell administrativo (SSH)".
$ ssh -p 122 admin@HOSTNAME
- Navegue até GitHub Enterprise Server Releases page. Ao lado da versão para a qual você está atualizando, clique em Download e depois clique na aba Upgrading. Copie a URL do hotpackage de atualização (arquivo .hpkg).
- Baixe o pacote de atualização para your GitHub Enterprise Server instance usando
curl
:admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
- Execute o comando
ghe-upgrade
usando o nome de arquivo do pacote:admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg *** verifying upgrade package signature...
- Se for necessário reinicializar para aplicar as atualizações no kernel, MySQL, Elasticsearch ou em outros programas, você receberá uma notificação do script de atualização do hotpatch.
Atualizar um appliance com instâncias de réplica usando hotpatch
Observação: Se estiver instalando um hotpatch, não há necessidade de entrar no modo de manutenção ou parar a replicação.
Appliances configurados para alta disponibilidade e replicação geográfica usam instâncias de réplica, além de instâncias principais. Para atualizar esses appliance, você terá que atualizar a instância primária e todas as instâncias de réplica, uma por vez.
Atualizar a instância primária
- Atualize a instância primária seguindo as instruções em "Instalar hotpatch usando o shell administrativo".
Atualizar uma instância de réplica
Observação: se você estiver executando várias instâncias de réplica como parte da replicação geográfica, repita esse procedimento para cada instância de réplica, uma por vez.
-
Atualize a réplica primária seguindo as instruções em "Instalar hotpatch usando o shell administrativo". Se você estiver usando várias réplicas de replicação geográfica, você deverá repetir esse procedimento para atualizar cada réplica por vez.
-
Conecte-se � instância de réplica sobre o SSH como o usuário "admin" na porta 122:
$ ssh -p 122 admin@replica-host
-
Verifique a atualização executando:
$ ghe-version
Atualizar com pacote 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, use um pacote ao atualizar da versão 2.11.10
para a 2.12.4
, já que elas estão em séries diferentes. Para obter mais informações, consulte "Requisitos de atualização".
Atualizar um appliance com pacote de atualização
Nota: Se você tiver ativado as verificações automáticas de atualização, você não precisa baixar o pacote de atualização e pode usar o arquivo que foi baixado automaticamente. Para obter mais informações, consulte "Enabling automatic update checks."
-
SSH em your GitHub Enterprise Server instance. Para obter mais informações, consulte "Acessar o shell administrativo (SSH)".
$ ssh -p 122 admin@HOSTNAME
-
Navegue até GitHub Enterprise Server Releases page. Ao lado da versão para a qual você está atualizando, clique em Download e depois clique na aba Upgrading. Selecione a plataforma adequada e copie a URL do pacote de atualização (arquivo .pkg).
-
Baixe o pacote de atualização para your GitHub Enterprise Server instance 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. Para obter mais informações, consulte "Habilitar e programar o modo de manutenção".
Observação: ao atualizar o appliance primário em uma configuração de alta disponibilidade, o appliance já deverá estar no modo de manutenção se você seguir as instruções em "Atualizar a instância primária".
-
Execute o comando
ghe-upgrade
usando o nome de arquivo do 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, e a instância é reiniciada automaticamente em modo de manutenção:
*** aplicando atualização... 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]
-
Em atualizações de appliance único, desabilite o modo de manutenção para os usuários poderem trabalhar com a your GitHub Enterprise Server instance.
Observação: ao atualizar appliances em configurações de alta disponibilidade, mantenha o modo de manutenção até atualizar todas as réplicas e a replicação estar atual. Para obter mais informações, consulte "Atualizar instância de réplica".
Atualizar um appliance com instâncias de réplica usando um pacote de atualização
Appliances configurados para alta disponibilidade e replicação geográfica usam instâncias de réplica, além de instâncias principais. Para atualizar esses appliance, você terá que atualizar a instância primária e todas as instâncias de réplica, uma por vez.
Atualizar a instância primária
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.
- Na instância primária, habilite o modo de manutenção e aguarde a conclusão de todos os processos ativos. Para obter mais informações, consulte "Habilitar o modo de manutenção".
- Conecte-se � instância de réplica sobre o SSH como o usuário "admin" na porta 122:
$ ssh -p 122 admin@replica-host
- Na instância de réplica (ou em todas as instâncias de réplica), se você estiver executando várias réplicas como parte da replicação geográfica, execute
ghe-repl-stop
para parar a replicação. - Atualize a instância primária seguindo as instruções em "Atualizar um appliance com pacote de atualização".
Atualizar uma instância de réplica
Observação: se você estiver executando várias instâncias de réplica como parte da replicação geográfica, repita esse procedimento para cada instância de réplica, uma por vez.
-
Atualize a réplica primária seguindo as instruções em "Atualizar um aplicativo com pacote de atualização". Se você estiver usando várias réplicas de replicação geográfica, você deverá repetir esse procedimento para atualizar cada réplica por vez.
-
Conecte-se � instância de réplica sobre o SSH como o usuário "admin" na porta 122:
$ ssh -p 122 admin@replica-host
-
Verifique a atualização executando:
$ ghe-version
-
Na instância da réplica, para iniciar a replicação, execute
ghe-repl-start
. -
Na instância da réplica, para garantir que os serviços de replicação estejam funcionando corretamente, 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 retornarReplicação não executada
, pode ser que a replicação ainda esteja começando. Aguarde cerca de um minuto para executarghe-repl-status
novamente.Observação: enquanto a ressincronização estiver em andamento, o código
ghe-repl-status
pode retornar mensagens esperadas indicando que a replicação está atrasada. Por exemplo:CRÍTICO: a replicação git está atrás do primário em mais de 1007 repositórios e/ou gists
Se
ghe-repl-status
não retornouOK
, entre em contato com Suporte do GitHub Enterprise. Para obter mais informações, consulte "Receber ajuda de Suporte do GitHub". -
Ao concluir a atualização da última réplica e quando a ressincronização terminar, desabilite o modo de manutenção para que os usuários possam trabalhar na your GitHub Enterprise Server instance.
Restaurar após uma atualização com falha
Em caso de falha ou interrupção da atualização, volte a sua instância ao estado anterior. Esse processo dependerá do tipo de atualização.
Voltar a uma versão de patch
Para reverter uma versão de patch, use o comando ghe-upgrade
com o switch --allow-patch-rollback
. Antes de reverter tudo, a replicação deve ser temporariamente parada executando ghe-repl-stop
em todas as instâncias de réplica. Ao reverter uma atualização, você deve usar um arquivo de atualização com a extensão .pkg. Arquivos de pacotes de hotpatch com a extensão .hpkg não são suportados.
ghe-upgrade --allow-patch-rollback EARLIER-RELEASE-UPGRADE-PACKAGE.pkg
É necessário reinicializar após a execução do comando. Reverter não afeta a partição de dados, pois as migrações não são executadas nas versões de patch.
Uma vez que a reversão estiver completa, reinicie a replicação executando ghe-repl-start
em todas as réplicas.
Para obter mais informações, consulte "Utilitários de linha de comando".
Voltar a uma versão de recurso
Para voltar a partir de uma versão de recurso, faça a restauração partindo de um instantâneo da VM para garantir o estado consistente das partições raiz e de dados. Para obter mais informações, consulte "Obter um instantâneo".