Sobre instâncias de preparo
O GitHub recomenda que você configure um ambiente separado para testar backups, atualizações ou alterações na configuração do sua instância do GitHub Enterprise Server. Esse ambiente, que você deve isolar de seus sistemas de produção, é chamado de ambiente de preparo.
Por exemplo, para proteger contra perda de dados, você pode validar regularmente o backup da sua instância de produção. Você pode restaurar regularmente o backup de seus dados de produção em uma instância separada do GitHub Enterprise Server em um ambiente de preparo. Nesta instância de preparo, você também pode testar a atualização para a versão mais recente do recurso do GitHub Enterprise Server.
Tip
Você poderá reutilizar o arquivo de licença do GitHub Enterprise existente, desde que a Instância de staging não seja usada em uma capacidade de produção.
Considerações sobre um ambiente de preparo
Para testar minuciosamente o GitHub Enterprise Server e recriar um ambiente com a maior semelhança possível com o ambiente de produção, considere os sistemas externos que interagem com sua instância. Por exemplo, faça os testes a seguir em seu ambiente de preparo.
- Autenticação, principalmente se você usa um provedor de autenticação externo, como o SAML
- Integração com um sistema externo de geração de tíquetes;
- Integração com um servidor de integração contínua;
- Software ou scripts externos que usam a GitHub Enterprise Server APIs
- Servidor externo SMTP para notificações de e-mail.
Configurar uma instância de preparo
Você pode instalar uma instância de preparo do zero e configurá-la como quiser. Para saber mais, confira Configurar uma instância do GitHub Enterprise Server e Configurar o GitHub Enterprise.
Como alternativa, você pode criar uma instância de preparo que reflita a configuração de produção restaurando um backup da instância de produção para a instância de preparo.
- Faça backup da instância de produção.
- Configure uma instância de teste.
- Configure o GitHub Actions.
- Configure o GitHub Packages.
- Restaure o backup de produção.
- Examine a configuração da instância.
- Aplique a configuração da instância.
1. Fazer backup da instância de produção
Se você quiser testar alterações em uma instância que contenha os mesmos dados e configuração que a instância de produção, faça backup dos dados e da configuração da instância de produção usando GitHub Enterprise Server Backup Utilities. Para saber mais, confira Como configurar backups em sua instância.
Warning
Se você usa o GitHub Actions ou o GitHub Packages em produção, o backup incluirá a configuração de produção do armazenamento externo. Para evitar uma possível perda de dados gravando no armazenamento de produção da instância de preparo, configure cada recurso nas etapas 3 e 4 antes de restaurar o backup.
2. Configurar uma instância de preparo
Configure uma nova instância para funcionar como ambiente de preparo. Você pode usar os mesmos guias para provisionar e instalar sua instância de preparo, assim como fez na instância de produção. Para saber mais, confira Configurar uma instância do GitHub Enterprise Server.
Se você planeja restaurar um backup da instância de produção, prossiga para a próxima etapa. Como alternativa, você pode configurar a instância manualmente e ignorar as etapas a seguir.
Warning
Restaurar backups com o GitHub Actions não terá êxito em uma instância não configurada. Para habilitar o GitHub Actions, uma instância com um nome de host configurado é necessária. Para saber mais, confira Configurando o nome do host para sua instância.
3. Configurar o GitHub Actions
Opcionalmente, se você usa o GitHub Actions na instância de produção, configure o recurso na instância de preparo antes de restaurar o backup de produção. Se você não usa o GitHub Actions, vá diretamente para 1. Configurar o GitHub Packages.
Warning
Se você não configurar o GitHub Actions na Instância de staging antes de restaurar o backup de produção, a Instância de staging usará o armazenamento externo da instância de produção, o que poderá resultar na perda de dados. É altamente recomendável que você use um armazenamento externo diferente para a instância de preparo. Para saber mais, confira Usar um ambiente de preparo.
-
Conecte-se via SSH a uma instância de preparo. Para obter mais informações, confira "Acesar o shell administrativo (SSH)".
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
A fim de configurar a instância de preparo para usar um provedor de armazenamento externo para o GitHub Actions, insira um dos comandos a seguir.
-
Armazenamento de Blobs do Azure:
Shell ghe-config secrets.actions.storage.blob-provider "azure"
ghe-config secrets.actions.storage.blob-provider "azure"
-
Amazon S3:
Shell ghe-config secrets.actions.storage.blob-provider "s3"
ghe-config secrets.actions.storage.blob-provider "s3"
-
Google Cloud Storage:
Shell ghe-config secrets.actions.storage.blob-provider "gcs"
ghe-config secrets.actions.storage.blob-provider "gcs"
-
-
Configure a conexão de armazenamento externo inserindo os comandos a seguir e substituindo os valores de espaço reservado pelos valores reais da sua conexão.
-
Armazenamento de Blobs do Azure:
Shell ghe-config secrets.actions.storage.azure.connection-string "CONNECTION STRING"
ghe-config secrets.actions.storage.azure.connection-string "CONNECTION STRING"
-
Amazon S3:
Shell ghe-config secrets.actions.storage.s3.bucket-name "S3 BUCKET NAME" ghe-config secrets.actions.storage.s3.service-url "S3 SERVICE URL" ghe-config secrets.actions.storage.s3.access-key-id "S3 ACCESS KEY ID" ghe-config secrets.actions.storage.s3.access-secret "S3 ACCESS SECRET"
ghe-config secrets.actions.storage.s3.bucket-name "S3 BUCKET NAME" ghe-config secrets.actions.storage.s3.service-url "S3 SERVICE URL" ghe-config secrets.actions.storage.s3.access-key-id "S3 ACCESS KEY ID" ghe-config secrets.actions.storage.s3.access-secret "S3 ACCESS SECRET"
Opcionalmente, para forçar o endereçamento no estilo de caminho para S3, insira também o comando a seguir.
Shell ghe-config secrets.actions.storage.s3.force-path-style true
ghe-config secrets.actions.storage.s3.force-path-style true
-
Google Cloud Storage:
Shell ghe-config secrets.actions.storage.gcs.service-url "SERVICE URL" ghe-config secrets.actions.storage.gcs.bucket-name "BUCKET NAME" ghe-config secrets.actions.storage.gcs.access-key-id "HMAC ACCESS ID" ghe-config secrets.actions.storage.gcs.access-secret "HMAC SECRET"
ghe-config secrets.actions.storage.gcs.service-url "SERVICE URL" ghe-config secrets.actions.storage.gcs.bucket-name "BUCKET NAME" ghe-config secrets.actions.storage.gcs.access-key-id "HMAC ACCESS ID" ghe-config secrets.actions.storage.gcs.access-secret "HMAC SECRET"
-
-
Como preparação para habilitar o GitHub Actions na instância de preparo, insira o comando a seguir.
Shell ghe-config app.actions.enabled true
ghe-config app.actions.enabled true
-
Para aplicar alterações de configuração, digite o comando a seguir.
Shell ghe-config-apply
ghe-config-apply
4. Configurar o GitHub Packages
Opcionalmente, se você usa o GitHub Packages na instância de produção, configure o recurso na instância de preparo antes de restaurar o backup de produção. Se você não usa o GitHub Packages, vá diretamente para 1. Restaurar o backup de produção.
Warning
Se você não configurar o GitHub Packages na Instância de staging antes de restaurar o backup de produção, a Instância de staging usará o armazenamento externo da instância de produção, o que poderá resultar na perda de dados. É altamente recomendável que você use um armazenamento externo diferente para a instância de preparo.
-
Examine o backup que você vai restaurar para a instância de preparo.
- Se você fez o backup com o GitHub Enterprise Server Backup Utilities 3.5 ou posterior, o backup incluirá a configuração do GitHub Packages. Siga para a próxima etapa.
- Se você fez o backup com o GitHub Enterprise Server Backup Utilities 3.4 ou anterior, configure o GitHub Packages na instância de preparo. Para saber mais, confira Primeiros passos com o GitHub Packages para a sua empresa.
-
Conecte-se via SSH a uma instância de preparo. Para obter mais informações, confira "Acesar o shell administrativo (SSH)".
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
Configure a conexão de armazenamento externo inserindo os comandos a seguir e substituindo os valores de espaço reservado pelos valores reais da sua conexão.
-
Armazenamento de Blobs do Azure:
Shell ghe-config secrets.packages.blob-storage-type "azure" ghe-config secrets.packages.azure-container-name "AZURE CONTAINER NAME" ghe-config secrets.packages.azure-connection-string "CONNECTION STRING"
ghe-config secrets.packages.blob-storage-type "azure" ghe-config secrets.packages.azure-container-name "AZURE CONTAINER NAME" ghe-config secrets.packages.azure-connection-string "CONNECTION STRING"
-
Amazon S3:
Shell ghe-config secrets.packages.blob-storage-type "s3" ghe-config secrets.packages.service-url "S3 SERVICE URL" ghe-config secrets.packages.s3-bucket "S3 BUCKET NAME" ghe-config secrets.packages.aws-access-key "S3 ACCESS KEY ID" ghe-config secrets.packages.aws-secret-key "S3 ACCESS SECRET"
ghe-config secrets.packages.blob-storage-type "s3" ghe-config secrets.packages.service-url "S3 SERVICE URL" ghe-config secrets.packages.s3-bucket "S3 BUCKET NAME" ghe-config secrets.packages.aws-access-key "S3 ACCESS KEY ID" ghe-config secrets.packages.aws-secret-key "S3 ACCESS SECRET"
-
-
Como preparação para habilitar o GitHub Packages na instância de preparo, insira o comando a seguir.
Shell ghe-config app.packages.enabled true
ghe-config app.packages.enabled true
5. Restaurar o backup de produção
Use o comando ghe-restore
para restaurar o restante dos dados do backup. Para saber mais, confira Como configurar backups em sua instância.
Se a instância de preparo já estiver configurada e você quiser substituir as configurações, o certificado e os dados de licença, adicione a opção -c
ao comando. Para obter mais informações sobre a opção, confira Como usar os comandos de backup e restauração na documentação do GitHub Enterprise Server Backup Utilities.
6. Examinar a configuração da instância
Para acessar a instância de preparo usando o mesmo nome de host, atualize o arquivo de hosts local para resolver o nome do host da instância de preparo por endereço IP editando o arquivo /etc/hosts
no macOS ou Linux ou o arquivo C:\Windows\system32\drivers\etc
no Windows.
Note
A Instância de staging precisa estar acessível por meio do mesmo nome do host da instância de produção. Não há suporte para a alteração do nome do host de sua instância do GitHub Enterprise Server. Para saber mais, confira Configurando o nome do host para sua instância.
Depois, examine a configuração da instância de preparo no Console de Gerenciamento. Para saber mais, confira Administrar sua instância por meio da interface do usuário da Web.
Warning
Se você configurou o GitHub Actions ou o GitHub Packages na Instância de staging, para evitar a substituição de dados de produção, garanta que a configuração de armazenamento externo no Console de Gerenciamento não corresponda à instância de produção.
7. Aplicar a configuração da instância
Para aplicar a configuração do Console de Gerenciamento, clique em Salvar configurações.
Colocar uma instância de preparo online novamente
Talvez você queira desligar uma instância de preparo para reduzir os custos e ligá-la novamente quando necessário.
Uma instância pode permanecer offline por 60 dias a partir da versão mais recente do patch desta versão, acrescida de 7 dias.
Se você colocar a instância online novamente dentro do período de tempo offline permitido, o GitHub Enterprise Server será instanciado com êxito. Se a instância permanecer offline por mais tempo do que o período permitido, o GitHub Enterprise Server não será instanciado com êxito e uma mensagem de erro com o texto server has been offline for more than the configured server_rejoin_age_max
poderá aparecer nos logs do sistema. Confira Sobre os logs do sistema.
Se a instância estiver presa no estado de erro, você poderá executar esses comandos para recuperá-la.
sudo mv /data/user/consul/server_metadata.json /data/user/consul/server_metadata.json.bak
ghe-config-apply