Reverter uma atualização usando a CLI

Este tutorial o orienta na reversão de uma implantação usando a CLI. Ao concluir este tutorial, você aprenderá a reverter alterações implementadas em uma configuração de arquitetura implementável em um projeto. Ao final deste tutorial, sua configuração de arquitetura implementável corresponderá à última versão implementada com sucesso.

Imagine que você é um desenvolvedor de software da empresa Example Corp. Seu arquiteto de infraestrutura descobriu a arquitetura implementável do Cloud Automation for Code Engine, e seu profissional de engenharia de automação de nuvem a personalizou para atender plenamente às suas necessidades de negócios. Você implementou essa arquitetura personalizada chamada Example Corp's infrastructure em duas regiões. Em seguida, seu profissional de engenharia de automação de nuvem lançou uma nova versão do Example Corp's infrastructure, então você atualizou suas implantações em execução para usar a versão mais recente. Recentemente, sua equipe descobriu um bug na região us-south. O bug é novo, portanto, você deseja reverter a implantação da região us-south para o que era anteriormente, pois você sabe que essa implantação não incluía o bug.

Este tutorial usa um cenário fictício para ajudá-lo a entender como reverter alterações implantadas em uma configuração de arquitetura implantável em seu projeto. Ao concluir o tutorial, adapte cada etapa para atender às necessidades de sua organização.

Antes de Iniciar

  1. Crie uma arquitetura implementável personalizada chamada Example Corp's infrastructure e integre-a a um catálogo privado chamado Example Corp catalog.

  2. Implante a infraestrutura da Example Corp em duas regiões usando um projeto chamado Example Corp infrastructure.

  3. Atualize a infraestrutura da Example Corp com uma nova versão no catálogo privado e adicione duas opções de banco de dados que seus usuários podem escolher. Valide a versão no catálogo privado para que a nova versão esteja no estado Validated draft.

  4. Atualize seu projeto para usar a versão mais recente do site Example Corp's infrastructure e implemente as alterações.

    A versão mais recente do Example Corp's infrastructure inclui opções de banco de dados que podem ser implantadas a partir do seu projeto Example Corp infrastructure. A conclusão deste tutorial não afeta nada em seu projeto, exceto a configuração do example-corp-us-south. Se necessário, você pode desfazer a implantação das outras configurações do seu projeto separadamente, inclusive os bancos de dados.

  5. Para concluir este tutorial, instale a CLI do IBM Cloud.

Encontrar o ID do projeto, o ID da configuração e a versão para a qual você deseja reverter

Antes de executar os comandos da CLI para reverter suas alterações para uma versão implantada anteriormente, você precisa do ID da configuração example-corp-us-south e do ID do projeto Example Corp infrastructure que contém a configuração.

Para localizar essas IDs e a versão usando a CLI, execute os seguintes comandos:

  1. Faça login em IBM Cloud executando o seguinte comando ibmcloud login comando. Se você tiver várias contas, será solicitado a selecionar qual conta usar:

    ibmcloud login \
        --sso
    

    Use a opção --sso para fazer login pelo console. Se fizer isso, o console será aberto em um navegador da Web para que você faça login. Em seguida, é gerado um código para você colar na CLI.

  2. Localize o ID do projeto Example Corp infrastructure em sua conta executando o seguinte comando ibmcloud project list comando:

    ibmcloud project list \
        --all-pages
    

    Use a opção --all-pages para recuperar todos os projetos em sua conta.

  3. Use o ID do projeto Example Corp infrastructure e o nome da configuração para encontrar o ID da configuração. Execute o seguinte comando ibmcloud project configs para fazer isso:

    ibmcloud project configs \
        --project-id <Example-Corp-infrastructure-project-id> \
        --all-pages
    
  4. Use o ID do projeto Example Corp infrastructure e o ID da configuração example-corp-us-south para localizar as versões dessa configuração no projeto. Execute o seguinte ibmcloud project config-versions comando:

    ibmcloud project config-versions \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id>
    

    Duas versões da configuração example-corp-us-south devem ser listadas. A versão dois está no estado deployed, enquanto a versão um está no estado superseded. A versão mais antiga é a primeira que foi implantada. Essa é a versão para a qual você deseja reverter.

Recupere a versão para a qual você deseja reverter

Agora que você tem os IDs e a versão para a qual deseja reverter, execute o seguinte comando ibmcloud project config-version para recuperar a versão específica de example-corp-us-south. Certifique-se de incluir o parâmetro para retornar a saída no formato JSON:

   ibmcloud project config-version \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id> \
        --version 1 \
        --output json

Copie o conteúdo do bloco definition na saída JSON e salve-o em um arquivo definition.json. O conteúdo do definition inclui os valores de entrada que você forneceu, a autorização que você usou para conceder ao projeto acesso para implantar na sua conta de destino, o nome da sua configuração e o ID do localizador para Example Corp's infrastructure que identifica a arquitetura implantável no catálogo privado. Considere-o como um instantâneo da versão 1 do site example-corp-us-south com todas as entradas e informações que você forneceu em seu projeto, por exemplo:

{
    "authorizations": {},
    "compliance_profile": {},
    "description": "",
    "inputs": {
      "prefix": "us-south",
      "region": "us-south"
    },
    "locator_id": "<Example-Corp-catalog-locator-id>",
    "name": "example-corp-us-south",
    "environment_id": "<Example-Corp-infrastructure-dev-id>"
}

Atualizar a configuração para usar a definição da versão anterior

Agora que você tem a definição da versão 1 de example-corp-us-south, atualize a configuração para usar essa definição. Isso atualiza o site example-corp-us-south para que ele fique exatamente como você o configurou quando implantou a versão 1. Execute o seguinte comando ibmcloud project config-update para example-corp-us-south:

ibmcloud project config-update \
     --project-id <Example-Corp-infrastructure-project-id> \
     --id <example-corp-us-south-id> \
     --definition "$(cat definition.json)"

Validar, aprovar e implementar as alterações

Agora que o site example-corp-us-south foi atualizado para usar a definição da primeira versão da configuração, é hora de validar, aprovar e implementar as alterações. Você pode usar o console para fazer isso ou executar os seguintes comandos da CLI:

  1. Valide example-corp-us-south executando o seguinte comando ibmcloud project config-validate comando:

    ibmcloud project config-validate \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id>
    
  2. Aprovar example-corp-us-south executando o seguinte comando ibmcloud project config-approve comando:

    ibmcloud project config-approve \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id> \
        --comment <Rolling back to the previously deployed version>
    
  3. Implante o site example-corp-us-south executando o seguinte comando ibmcloud project config-deploy comando:

    ibmcloud project config-deploy \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id>
    

Depois que a implementação for concluída com êxito, o site example-corp-us-south será revertido para a primeira versão dessa configuração que você implementou a partir do projeto. Sua equipe agora pode investigar o bug e lançar uma atualização para Example Corp's infrastructure, se necessário.