ワークスペースの更新
ワークスペース名、変数、ソース管理 URL など、既存のワークスペースの詳細情報を更新します。 IBM Cloud をプロビジョニングまたは変更するには、ibmcloud schematics plan コマンドを参照してください。
IBM Cloud Schematics は古いバージョンのTerraformを非推奨とし、新しいバージョンのTerraformのサポートを導入する。 詳細については、 Schematics Terraform deprecation lifecycleと Deprecation Scheduleを 参照してください。
開始前に
Schematics ワークスペースまたはアクションを作成または更新するときに、 location と url エンドポイントが同じリージョンを指していることを確認します。 ロケーションとエンドポイントについて詳しくは、 情報の保管場所 を参照してください。
UI を使用したワークスペースの更新
- IBM Cloudコンソールにログインします。
- メニューアイコンの
>Platform Automation>Schematics>Terraformをクリックします。
- ワークスペースをクリックして編集します。
- 「設定」 をクリックします。 「詳細」 > 「リポジトリ」 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.6。Terraform_v1.4を選択すると Terraform バージョン 1.4 が使用され、terraform_v1.6を選択すると Terraform バージョン 1.6 が使用されます。terraform_v1.5を指定すると、ユーザーは Terraform のテンプレートをv1.5.0、v1.5.1、v1.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 文字の長さで、英数字、スペース、ダッシュ、およびアンダースコアーを含めることができます。 -
保存 をクリックします。
-
ワークスペースの更新の検証
- IBM Cloud コンソール にリストされているワークスペースをクリックして、ワークスペースの詳細の結果を表示します。
- 「ジョブ」 タブをクリックして、ワークスペース・ログを表示します。
- 「ジョブ履歴」 タブをクリックすると、自動化モジュールによって実行されたジョブ更新操作の結果が表示されます。
- 「設定」 タブをクリックして、構成の要約を表示します。
CLIを使用したワークスペースの更新
-
ローカル・ワークステーションで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] ``` -
ワークスペース名、変数、ソース管理 URL など、既存のワークスペースの詳細を更新します。
```sh {: pre} ibmcloud schematics workspace update --id <WORKSPACE_ID> ``` -
ワークスペースが更新されていることを確認する。 ワークスペースが非アクティブ状態になっていることを確認する。
```sh {: pre} ibmcloud schematics workspace list ``` -
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を使用したワークスペースの更新
-
手順に従って、API を使用して IAM アクセス・トークンを取得し、IBM Cloud Schematics で認証します。
-
ワークスペース名、変数、ソース管理など、既存のワークスペースの詳細を更新する 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" } ] } ] } ``` -
ワークスペースが正常に更新されたことを確認します。
```sh {: pre} curl -X GET https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>" ``` -
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 を使用したワークスペースの更新
-
Schematics 用の Terraform のセットアップの手順に従って、Terraform を使用してワークスペースを作成します。
-
Terraform を使用してクラウド リソースを作成、更新、または削除するには Schematics を使用したクラウド リソースの管理」 を参照してください。
次のステップ
ワークスペースを扱う次の段階は、ワークスペースのデプロイ です。