Atualizar com hotpatch
You can upgrade GitHub Enterprise Server to the latest patch release using a hotpatch.
You can use hotpatching to upgrade to a newer patch release, but not a feature release. For example, you can upgrade from 2.10.1
to 2.10.5
because they are in the same feature series, but not from 2.10.9
to 2.11.0
because they are in a different feature series.
Hotpatches do not generally require a reboot. If a hotpatch does require a reboot, the GitHub Enterprise Server release notes will indicate the requirement.
Hotpatches require a configuration run, which can cause a brief period of errors or unresponsiveness for some or all services on your GitHub Enterprise Server instance. You are not required to enable maintenance mode during installation of a hotpatch, but doing so will guarantee that users see a maintenance page instead of errors or timeouts. For more information, see "Enabling and scheduling maintenance mode." O script de instalação do hotpatch instala o hotpatch em cada nó do cluster e reinicia os serviços na sequência adequada para evitar tempo de inatividade.
- Faça backup de seus dados com GitHub Enterprise Server Backup Utilities.
- No shell administrativo de qualquer nó, use o comando
ghe-cluster-hotpatch
para instalar o hotpatch mais recente. Você pode informar uma URL para o hotpatch ou baixá-la manualmente e especificar um nome de arquivo local.$ ghe-cluster-hotpatch https://HOTPATCH-URL/FILENAME.hpkg
Atualizar com pacote de atualização
Atualize para a versão mais recente do cluster do GitHub Enterprise Server usando um pacote de atualização. Por exemplo, você pode atualizar de 2.11
para 2.13
Preparar para a atualização
- Veja em Configuração de rede do cluster a versão para a qual você está atualizando e atualize sua configuração conforme necessário.
- Faça backup de seus dados com GitHub Enterprise Server Backup Utilities.
- Programe um período de manutenção para os usuários finais do cluster do GitHub Enterprise Server, já que ele ficará indisponível para uso regular durante a atualização. O modo de manutenção bloqueia o acesso de usuários e impede alterações de dados durante a atualização do cluster.
- Na página de download do GitHub Enterprise Server, copie a URL do arquivo .pkg de atualização para a área de transferência.
- No shell administrativo de qualquer nó, use o comando
ghe-cluster-each
combinado comcurl
para baixar o pacote de versão para cada nó em uma única etapa. Como argumento, use a URL que você copiou na etapa anterior.$ ghe-cluster-each -- "cd /home/admin && curl -L -O https://PACKAGE-URL.pkg" > ghe-app-node-1: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-app-node-1: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 24.2M 0 0:00:20 0:00:20 --:--:-- 27.4M > ghe-data-node-2: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-2: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 21.3M 0 0:00:23 0:00:23 --:--:-- 25.8M > ghe-data-node-1: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-1: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.6M > ghe-app-node-2: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-app-node-2: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.8M 0 0:00:25 0:00:25 --:--:-- 17.6M > ghe-data-node-3: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-3: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.5M
- Identifique o nó MySQL primário, que é definido como
mysql-master = <hostname>
emcluster.conf
. Esse nó será atualizado por último.
Atualizar os nós de cluster
- Habilite o modo de manutenção de acordo com a janela agendada conectando-se ao shell administrativo de qualquer nó de cluster e executando
ghe-cluster-maintenance -s
. - Com exceção do nó MySQL primário, conecte-se ao shell administrativo de cada um dos nós do GitHub Enterprise Server.
Execute o comando
ghe-upgrade
, fornecendo o nome do arquivo de pacote que você baixou na Etapa 4 de Preparação para atualizar:$ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A > gpg: checking the trustdb > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model > gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) >
" - Assim que for concluído, o processo de atualização reinicializará o nó. Verifique se é possível usar
ping
em cada nó após a reinicialização. - Conecte-se ao shell administrativo do nó primário MySQL. Execute o comando
ghe-upgrade
, fornecendo o nome do arquivo de pacote que você baixou na Etapa 4 de Preparação para atualizar:$ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A > gpg: checking the trustdb > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model > gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) >
" - Assim que for concluído, o processo de atualização reinicializará o nó primário MySQL. Verifique se é possível usar
ping
em cada nó após a reinicialização. - Conecte-se ao shell administrativo do nó MySQL primário e execute o comando
ghe-cluster-config-apply
. - Quando
ghe-cluster-config-apply
estiver concluído, verifique se os serviços estão em um estado íntegro executandoghe-cluster-status
. - Saia do modo de manutenção do shell administrativo de qualquer nó executando
ghe-cluster-maintenance -u
.