Skip to main content

Esta versão do GitHub Enterprise Server foi descontinuada em 2024-09-25. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise Server. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Configurar uma instância de preparo

Você pode configurar uma instância do GitHub Enterprise Server em um ambiente separado e isolado e usá-la para validar e testar alterações.

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.

  1. Faça backup da instância de produção.
  2. Configure uma instância de teste.
  3. Configure o GitHub Actions.
  4. Configure o GitHub Packages.
  5. Restaure o backup de produção.
  6. Examine a configuração da instância.
  7. 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.

  1. 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
    
  2. 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"
      
    • Amazon S3:

      Shell
      ghe-config secrets.actions.storage.blob-provider "s3"
      
    • Google Cloud Storage:

      Shell
      ghe-config secrets.actions.storage.blob-provider "gcs"
      
  3. 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"
      
    • 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"
      

      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
      
    • 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"
      
  4. 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
    
  5. Para aplicar alterações de configuração, digite o comando a seguir.

    Shell
    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.

  1. 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.
  2. 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
    
  3. 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"
      
    • 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"
      
  4. 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
    

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 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

Leitura adicional