CLIを使用してアップデートをロールバックする

このチュートリアルでは、CLI を使用してデプロイメントをロールバックする方法を説明します。 このチュートリアルを完了することで、デプロイ済みの変更をプロジェクト内のデプロイ可能なアーキテクチャー構成に戻す方法を学ぶことができます。 このチュートリアルが終わるころには、あなたのデプロイ可能なアーキテクチャ構成は、最後にデプロイに成功したバージョンと一致していることでしょう。

あなたがある企業のソフトウェア開発者だとしよう。 インフラアーキテクトがCloud automation for Code Engine デプロイ可能なアーキテクチャを発見し、クラウドオートメーションエンジニアリングのプロフェッショナルが、お客様のビジネスニーズを完全に満たすようにカスタマイズしました。 あなたは、 Example Corp's infrastructure と呼ばれるカスタマイズされたアーキテクチャを2つのリージョンに展開した。 その後、クラウド・オートメーション・エンジニアリングの専門家が Example Corp's infrastructure の新バージョンをリリースしたので、実行中のデプロイメントを最新バージョンに更新した。 最近、あなたのチームは us-south 地域でバグを発見しました。 バグは新しいものなので、 us-south リージョンのデプロイメントを以前のものにロールバックしたい。そのデプロイメントにはバグが含まれていなかったことが分かっているからだ。

このチュートリアルでは、架空のシナリオを使用して、プロジェクトでデプロイ可能なアーキテクチャー構成にデプロイされた変更をロールバックする方法を理解します。 チュートリアルを完了したら、各ステップを組織のニーズに合わせて変更してください。

開始前に

  1. Example Corp's infrastructure 」という カスタマイズされたデプロイ可能なアーキテクチャを作成 し、「 Example Corp catalog 」というプライベートカタログにオンボードする。

  2. Example Corp infrastructure というプロジェクトを使って、 Example Corpのインフラを2つのリージョンにデプロイする。

  3. Example Corpのインフラストラクチャをプライベートカタログの新しいバージョンで更新 し、ユーザーが選択できる2つのデータベースオプションを追加します。 新しいバージョンが Validated draft の状態になるように、プライベート・カタログの バージョンを検証する

  4. Example Corp's infrastructure の最新バージョンを使用するように プロジェクトを更新 し、変更をデプロイします。

    Example Corp's infrastructure の最新バージョンには、 Example Corp infrastructure プロジェクトからデプロイされる可能性のあるデータベース・オプションが含まれています。 このチュートリアルを完了しても、 example-corp-us-south のコンフィギュレーションを除いて、プロジェクトには何の影響もありません。 必要であれば、データベースも含め、プロジェクト内の他の構成を個別にアンデプロイすることができる。

  5. このチュートリアルを完了するには、 IBM Cloud CLIをインストールして ください。

プロジェクトID、コンフィギュレーションID、戻したいバージョンの検索

CLIコマンドを実行して変更を以前にデプロイしたバージョンに戻す前に、 example-corp-us-south 構成のIDと、その構成を含む Example Corp infrastructure プロジェクトの ID が必要です。

CLIを使ってこれらのIDとバージョンを調べるには、以下のコマンドを実行する:

  1. 以下のコマンドを実行して IBM Cloud にログインする。 ibmcloud login コマンドを実行する。 複数のアカウントを持っている場合は、どのアカウントを使用するかを選択するよう求められます:

    ibmcloud login \
        --sso
    

    コンソールからログインするには、 --sso。 そうすると、コンソールがウェブブラウザで開き、ログインできるようになる。 その後、CLIに貼り付けるためのコードが生成される。

  2. 以下のコマンドを実行して、アカウント内の Example Corp infrastructure プロジェクトの ID を検索する。 ibmcloud project list コマンドを実行してください:

    ibmcloud project list \
        --all-pages
    

    --all-pages オプションを使用して、アカウント内のすべてのプロジェクトを検索します。

  3. コンフィギュレーションIDを見つけるには、 Example Corp infrastructure プロジェクトのIDとコンフィギュレーション名を使用します。 次の ibmcloud project configs コマンドを実行する:

    ibmcloud project configs \
        --project-id <Example-Corp-infrastructure-project-id> \
        --all-pages
    
  4. Example Corp infrastructure プロジェクトの ID と example-corp-us-south コンフィギュレーションの ID を使って、プロジェクト内のそのコンフィギュレーションのバージョンを検索します。 次のコマンドを実行する。 ibmcloud project config-versions コマンドを実行する:

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

    example-corp-us-south 、2種類のコンフィギュレーションが表示される。 バージョン2は deployed 、バージョン1は superseded。 最も古いバージョンは、最初に配備されたものである。 ロールバックしたいのはそのバージョンだ。

ロールバックしたいバージョンを取得する

IDとロールバックしたいバージョンがわかったので、以下のコマンドを実行する。 ibmcloud project config-version コマンドを実行して、 example-corp-us-south の特定のバージョンを取得する。 出力を JSON 形式で返すパラメーターを必ず入れてください:

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

出力 JSONdefinition ブロックの内容をコピーし、 definition.json ファイルに保存する。 definition の内容には、提供した入力値、ターゲットアカウントにデプロイするためのアクセス権をプロジェクトに付与するために使用した権限、構成の名前、プライベートカタログ内のデプロイ可能なアーキテクチャを識別する Example Corp's infrastructure のロケータ ID が含まれます。 例えば、あなたがプロジェクトで提供したすべてのインプットと情報を含む、 example-corp-us-south のバージョン1のスナップショットだと考えてください:

{
    "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>"
}

旧バージョンの定義を使用するようにコンフィギュレーションを更新する

example-corp-us-south のバージョン1の定義ができたので、その定義を使用するように設定を更新する。 これにより、 example-corp-us-south が更新され、バージョン1のデプロイ時に設定したとおりになる。 次の ibmcloud project config-updateexample-corp-us-south コマンドを実行する:

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

変更の検証、承認、展開

example-corp-us-south 、最初のバージョンのコンフィギュレーションの定義を使用するように更新されたので、変更を検証し、承認し、デプロイする時が来た。 その ためにはコンソールを使うか、以下のCLIコマンドを実行する:

  1. 以下のコマンドを実行して、 example-corp-us-south を検証する。 ibmcloud project config-validate コマンドを実行する:

    ibmcloud project config-validate \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id>
    
  2. 以下のコマンドを実行して、 example-corp-us-south を承認する。 ibmcloud project config-approve コマンドを実行する:

    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. example-corp-us-southibmcloud project config-deploy コマンドを実行する:

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

デプロイが正常に完了すると、 example-corp-us-south 、プロジェクトからデプロイしたその構成の最初のバージョンに戻ります。 あなたのチームはバグを調査し、必要であれば Example Corp's infrastructure にアップデートをリリースすることができます。