ワークスペースの更新

ワークスペース名、変数、ソース管理 URL など、既存のワークスペースの詳細情報を更新します。 IBM Cloud をプロビジョニングまたは変更するには、ibmcloud schematics plan コマンドを参照してください。

IBM Cloud Schematics は古いバージョンのTerraformを非推奨とし、新しいバージョンのTerraformのサポートを導入する。 詳細については、 Schematics Terraform deprecation lifecycleと Deprecation Scheduleを 参照してください。

開始前に

Schematics ワークスペースまたはアクションを作成または更新するときに、 locationurl エンドポイントが同じリージョンを指していることを確認します。 ロケーションとエンドポイントについて詳しくは、 情報の保管場所 を参照してください。

UI を使用したワークスペースの更新

  1. IBM Cloudコンソールにログインします。
  2. メニューアイコンハンバーガーアイコン>Platform Automation>Schematics>Terraformをクリックします。
  3. ワークスペースをクリックして編集します。
  4. 「設定」 をクリックします。 「詳細」 > 「リポジトリ」 URL で、 編集アイコンをクリックして以下のパラメータを編集します。
    • GitHub,、 GitLab,、または Bitbucket のリポジトリについては、 URL<provide your Terraform template Git repository URL までお問い合わせください。

    • 個人アクセストークンの場合 <leave it blank>. テンプレートを安全に検証し、複製するには、 Open reference picker をクリックして、 Secrets Manager キー参照を選択します。 詳細は、 Secrets Manager インスタンスの作成 を参照してください。

    • Terraformバージョン用 terraform_v1.6。 Terraformのバージョンは 1.6 またはそれ以上のバージョンを選択する必要があります。 例えば、TerraformテンプレートがTerraform v1.6 を使用して作成されている場合、 Terraform version パラメータを選択します。 terraform_v1.6Terraform_v1.4 を選択すると Terraform バージョン 1.4 が使用され、 terraform_v1.6 を選択すると Terraform バージョン 1.6 が使用されます。 terraform_v1.5 を指定すると、ユーザーは Terraform のテンプレートを v1.5.0v1.5.1v1.5.7 などとして利用できます。 Schematics は Terraform_v1.x をサポートしており、 30 to 45 days の HashiCorp Configuration Language (HCL) リリース以降もリリースを継続する予定です。

      Schematics は、 terraform_v1.6 を介して Terraform v1.4 の現行リリースをサポートします。 Terraformテンプレートは、 >>= 、Terraformの required_version~> のようなバージョン制約を使用して、現在のバージョンを自動的に選択する必要があります。

      terraform {
      required_version = "~> 1.5"
      }
      
    • 保存 をクリックします。

    • 変数セクション。 オーバーフローメニューから 「編集」 をクリックして、変数を編集します。 workspace name の名前を入力してください。 名前は最大 128 文字の長さで、英数字、スペース、ダッシュ、およびアンダースコアーを含めることができます。

    • 保存 をクリックします。

ワークスペースの更新の検証

  1. IBM Cloud コンソール にリストされているワークスペースをクリックして、ワークスペースの詳細の結果を表示します。
  2. 「ジョブ」 タブをクリックして、ワークスペース・ログを表示します。
  3. 「ジョブ履歴」 タブをクリックすると、自動化モジュールによって実行されたジョブ更新操作の結果が表示されます。
  4. 「設定」 タブをクリックして、構成の要約を表示します。

CLIを使用したワークスペースの更新

  1. ローカル・ワークステーションでJSONファイルを更新し、ワークスペース設定を追加します。 ワークスペースを更新する際のその他の構成オプションについては、 ibmcloud schematics workspace update コマンド を参照してください。

     ```json {: codeblock}
     {
         "name":"testwspace03jan",
         "type":[
             "terraform_v1.4"
         ],
         "description":"terraform workspace",
         "location":"us-east",
         "tags":[
             "department:HR",
             "application:compensation",
             "environment:production"
         ],
         "template_repo":{
             "url":"https://github.com/Anil-CM/newrepo"
         },
         "workspace_status":{
             "frozen":true
         },
         "template_data":[
             {
             "folder":".",
             "type":"terraform_v1.4",
             "variablestore":[
             {
                 "name":"sample_var",
                 "secure":true,
                 "value":"THIS IS IBM CLOUD TERRAFORM CLI DEMO",
                 "description":"Description of sample_var"
             },
             {
                 "name":"sleepy_time",
                 "value":"15"
                 }
             ]
             }
         ]
     }
     ```
    

    構文

     ```sh {: pre}
     ibmcloud schematics workspace update --id WORKSPACE_ID [--file FILE_NAME] [--github-token GITHUB_TOKEN] [--pull-latest]  [--output OUTPUT]
     ```
    
  2. ワークスペース名、変数、ソース管理 URL など、既存のワークスペースの詳細を更新します。

     ```sh {: pre}
     ibmcloud schematics workspace update --id <WORKSPACE_ID>
     ```
    
  3. ワークスペースが更新されていることを確認する。 ワークスペースが非アクティブ状態になっていることを確認する。

     ```sh {: pre}
     ibmcloud schematics workspace list
     ```
    
  4. Terraform を使用してクラウド リソースの作成、更新、または削除を開始するには、 Schematics を使用したクラウド リソースの管理」 を参照してください。

ワークスペースの更新の検証

以前に作成されたワークスペースのパラメーターが正常に更新された場合は、CLI コマンド update を使用して詳細を確認します。

```text {: screen}
ibmcloud schematics workspace update --id <WORKSPACE_ID> --target <TARGET_RESOURCE_NAME>
Do you really want to perform this action? [y/N]> y

Activity ID   c10fc92ddfd2d9ec645fc5dbece5e341

OK

```

正常に更新されると、既存のワークスペースの更新された詳細が返されます。

詳しくは、 トラブルシューティングのセクション を参照してください。

APIを使用したワークスペースの更新

  1. 手順に従って、API を使用して IAM アクセス・トークンを取得し、IBM Cloud Schematics で認証します。

  2. ワークスペース名、変数、ソース管理など、既存のワークスペースの詳細を更新する URL.

     ```json {: codeblock}
     PUT /v1/workspaces/{w_id} HTTP/1.1
     Host: schematics.cloud.ibm.com
     Content-Type: application/json
     Authorization: <auth_token>
     {
     "name":"testwspace03jan",
     "type":[
         "terraform_v1.4"
     ],
     "description":"terraform workspace updated",
     "location":"us-east",
     "tags":[
         "department:HR",
         "application:compensation",
         "environment:production"
     ],
     "template_repo":{
         "url":"https://github.com/Anil-CM/newrepo"
     },
     "workspace_status":{
         "frozen":true
     },
     "template_data":[
         {
             "folder":".",
             "type":"terraform_v1.4",
         "variablestore":[
             {
                 "name":"sample_var",
                 "secure":true,
                 "value":"THIS IS IBM CLOUD TERRAFORM CLI DEMO",
                 "description":"Description of sample_var"
             },
             {
                 "name":"sleepy_time",
                 "value":"15"
                 }
             ]
         }
     ]
     }
     ```
    
  3. ワークスペースが正常に更新されたことを確認します。

     ```sh {: pre}
     curl -X GET https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>"
     ```
    
  4. Schematics でクラウドリソースを管理する を参照し、Terraformでクラウドリソースの作成、更新、削除を開始します。

ワークスペースの更新の検証

出力に示されているように、ワークスペースの更新が正常に行われたことを確認します。

出力

```text {: screen}
{
    "id": "us-east.workspace.testwspace03jan.cf74cc48",
    "name": "testwspace03jan",
    "crn": "crn:v1:bluemix:public:schematics:us-south:a/1f7277194bb748cdb1d35fd8fb85a7cb:9ae7be42-0d59-415c-a6ce-0b662f520a4d:workspace:us-east.workspace.testwspace03jan.cf74cc48",
    "type": [
        "terraform_v1.4"
    ],
    "description": "terraform workspace updated successfully",
    "resource_group": "Default",
    "location": "us-east",
    "tags": [
        "department:HR",
        "application:compensation",
        "environment:production"
    ],
    "created_at": "2023-01-03T07:02:38.369965717Z",
    "created_by": "test@in.ibm.com",
    "status": "DRAFT",
    "failure_reason": "",
    "workspace_status_msg": {
        "status_code": "200",
        "status_msg": ""
    },
    "workspace_status": {
        "frozen": true,
        "frozen_by": "test@in.ibm.com",
        "frozen_at": "2023-01-05T13:44:32.400019282Z",
        "locked": false
    },
    "template_repo": {
        "url": "https://github.com/Anil-CM/newrepo",
        "commit_id": "3dc60ea7fb30f236dbadfa817cf4beb5d337808d",
        "full_url": "https://github.com/Anil-CM/newrepo",
        "has_uploadedgitrepotar": false
    },
    "template_data": [
        {
            "id": "b44c147b-81fb-4e",
            "folder": ".",
            "compact": false,
            "type": "terraform_v1.4",
            "values_url": "https://us.schematics.cloud.ibm.com/v1/workspaces/us-east.workspace.testwspace03jan.cf74cc48/template_data/b44c147b-81fb-4e/values",
            "values": "",
            "values_metadata": [
                {
                    "default": "testvpcone",
                    "description": "",
                    "name": "vpc_name",
                    "type": "string"
                },
                {
                    "default": "[\"tag:test1\", \"tag:test2\"]",
                    "description": "",
                    "name": "vpc_tags",
                    "type": "list(string)"
                }
            ],
            "variablestore": [
                {
                    "name": "sample_var",
                    "secure": true,
                    "value": "THIS IS IBM CLOUD TERRAFORM CLI DEMO",
                    "type": "",
                    "description": "Description of sample_var"
                },
                {
                    "name": "sleepy_time",
                    "secure": false,
                    "value": "15",
                    "type": "",
                    "description": ""
                }
            ],
            "has_githubtoken": false
        }
    ],
    "runtime_data": [
        {
            "id": "b44c147b-81fb-4e",
            "engine_name": "terraform",
            "engine_version": "v1.0.11",
            "state_store_url": "https://us.schematics.cloud.ibm.com/v1/workspaces/us-east.workspace.testwspace03jan.cf74cc48/runtime_data/b44c147b-81fb-4e/state_store",
            "log_store_url": "https://us.schematics.cloud.ibm.com/v1/workspaces/us-east.workspace.testwspace03jan.cf74cc48/runtime_data/b44c147b-81fb-4e/log_store"
        }
    ],
    "shared_data": {
        "resource_group_id": ""
    },
    "applied_shareddata_ids": null,
    "updated_by": "test@in.ibm.com",
    "updated_at": "2023-01-05T13:44:32.483034358Z",
    "last_health_check_at": "0001-01-01T00:00:00Z",
    "cart_id": "",
    "last_action_name": "WORKSPACE_UPDATE",
    "last_activity_id": "fe1591c02c66167b41fefac1ab5445cb",
    "last_job": {
        "job_id": "fe1591c02c66167b41fefac1ab5445cb",
        "job_name": "WORKSPACE_UPDATE",
        "job_status": ""
    }
}
```

ワークスペースの更新が成功すると、更新された構成の詳細(ワークスペース名、変数、ワークスペースのソース管理 URL など)が返されます。

詳しくは、 トラブルシューティングのセクション を参照してください。

Terraform を使用したワークスペースの更新

  1. Schematics 用の Terraform のセットアップの手順に従って、Terraform を使用してワークスペースを作成します。

  2. Terraform を使用してクラウド リソースを作成、更新、または削除するには Schematics を使用したクラウド リソースの管理」 を参照してください。

次のステップ

ワークスペースを扱う次の段階は、ワークスペースのデプロイ です。