Skip to main content

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.

Dica: talvez seja interessante reutilizar seu arquivo de licença do GitHub Enterprise, desde que a instância de preparo 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 obter mais informações, 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 obter mais informações, confira "Como configurar backups em sua instância".

Aviso: 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 obter mais informações, 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.

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, pule para "1. Configurar o GitHub Packages".

Aviso: se você não configurar o GitHub Actions na instância de preparo antes de restaurar o backup de produção, a instância de preparo usará o armazenamento externo da instância de produção, o que poderá resultar em perda de dados. É altamente recomendável que você use um armazenamento externo diferente para a instância de preparo. Para obter mais informações, 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
    

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, pule para "1. Restaurar o backup de produção".

Aviso: se você não configurar o GitHub Packages na instância de preparo antes de restaurar o backup de produção, a instância de preparo usará o armazenamento externo da instância de produção, o que poderá resultar em 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 obter mais informações, 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 obter mais informações, 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.

Observação: a instância de preparo precisa estar acessível por meio do mesmo nome do host que a 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 obter mais informações, 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 obter mais informações, confira "Administrar sua instância por meio da interface do usuário da Web".

Aviso: se você configurou o GitHub Actions ou o GitHub Packages na instância de preparo, para evitar a substituição de dados de produção, verifique se a configuração de armazenamento externo no Console de Gerenciamento não corresponde à 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

Leitura adicional