ワークスペースの作成とTerraformのインポート
Schematics を使用して、Terraform を通じて IBM Cloud Schematics のリソースを管理します。 ワークスペースの設定では、 Git リポジトリでホストされているTerraformエンジンを指定するとともに、テンプレートをカスタマイズするための入力変数を定義します。
IBM Cloud Schematics Terraformの旧バージョンのサポートを終了し、新しいバージョンのTerraformへの対応を導入しています。 詳細については、「 Schematics 」のTerraformの非推奨ライフサイクル および 非推奨スケジュール をご覧ください。
開始前に
- Terraform 構成を作成し、その構成を
GitHubリポジトリー、GitLabリポジトリー、またはBitbucketリポジトリーに保管します。 また、ローカルワークステーションからテープアーカイブファイル(.tar)をアップロードして、 IBM Cloud Schematics にテンプレートを提供することもできます。 詳細については、ibmcloud schematics workspace uploadコマンドおよび「tarファイルをワークスペースにアップロードする API」を参照してください。 - ワークスペースを作成する 権限 があることを確認してください。
Schematics のワークスペースやアクションを作成または更新する際は、 location と url のエンドポイントが同じリージョンを指していることを確認してください。 ロケーションとエンドポイントについて詳しくは、 情報の保管場所 を参照してください。
UI を使用してワークスペースを作成する
- IBM Cloudコンソールにログインします。
- Menu icon
>Platform Automation>Schematics>Terraform>Create workspaceをクリックします。
- 「 テンプレートの指定 」セクションでは:
-
GitHub, GitLab, または
Bitbucketリポジトリ URL-<provide your Terraform Git repository URL。 -
個人用アクセストークン-
<leave it blank>。Open reference pickerをクリックして、 Secrets Manager キー参照を選択できます。 詳細は、 Secrets Manager インスタンスの作成 を参照してください。 -
Terraform のバージョン -
terraform_v1.4。Terraform のバージョンとして、 1.4 またはそれ以降のバージョンを選択する必要があります。 たとえば、TerraformテンプレートがTerraform v1.4 を使用して作成されている場合は、Terraform versionパラメータを terraform_v1.4 に設定してください。Terraform_v1.5を選択すると Terraform バージョン 1.5 が、terraform_v1.4を選択すると Terraform バージョン 1.4 が使用されます。terraform_v1.5を指定すると、ユーザーはTerraformのv1.5.0、v1.5.1、v1.5.7などを利用できるようになります。 Schematics はTerraform_v1.xをサポートしており、 HashiCorp Configuration Language(HCL)の30 to 45 days以降のリリースも提供される予定です。Schematics は、
Terraform_v1.6を介してTerraform v1.4の現行リリースをサポートします。 Terraformでは、required_versionのバージョン制約として、>、>=、~>などの指定を行い、現在のバージョンを自動的に選択する必要があります。terraform { required_version = "~> 1.1" } -
Nextをクリックします。
-
- 「 ワークスペースの詳細 」セクションで。
workspace nameの名前を入力します。 名前は最大 128 文字の長さで、英数字、スペース、ダッシュ、およびアンダースコアーを含めることができます。- 「ワークスペース名」 は
schematics-agent-serviceです。 - 「タグ」 は
my-tagsです。 オプション: ワークスペースのタグを入力します。 後でこれらのタグを使って、ワークスペースを素早く見つけることができます。 - このワークスペースの
defaultまたはその他のリソース・グループとしての リソース・グループ。 - このワークスペースの 「場所」 は、
North Americaまたはその他の 領域 として指定します。 ワークスペースをどこに作成するか決めましょうか? その場所によって、 Schematics のジョブがどこで実行されるか、またワークスペースのデータがどこに保存されるかが決まりますか? 「北米」などの地域や、「フランクフルト」や「ロンドン」などの大都市から選択できます。 場所を選択すると、 Schematics は空き状況に基づいてその場所を決定します。 メトロ都市を選択した場合、そのロケーションにワークスペースが作成されます。 データの保存場所に関する詳細については、「 情報はどこに保存されていますか?」をご覧ください 選択するロケーションは、クラウドリソースをプロビジョニングしたい地域とは無関係です。 このコンソールでは、利用可能なすべての場所に対応しているわけではありません。 別のロケーションにワークスペースを作成する場合は、代わりに CLI または API を使用してください。 - オプション: ワークスペースの記述名を入力します。
Nextをクリックします。
- 「ワークスペース名」 は
Createをクリックします。 ワークスペースは**「ドラフト(Draft)」状態で作成され、「設定」**ページが開きます。
- 「 テンプレートの指定 」セクションでは:
Terraform テンプレートのインポート
Git リポジトリーにワークスペースをインポートする代わりにテープ・アーカイブ・ファイル (.tar) をアップロードするには、ibmcloud schematics workspace upload コマンドを使用し、
tar ファイルをワークスペースにアップロードする API を参照する必要があります。
-
ワークスペースの**「設定」**ページで、編集アイコンを入力して
Repository URLを編集します。master・ブランチ、他のブランチ、またはサブディレクトリーを指すリンクを入力できます。master・ブランチの例:https://github.com/myorg/myrepo- 他のブランチの例:
https://github.com/myorg/myrepo/tree/mybranch - サブディレクトリーの例:
https://github.com/mnorg/myrepo/tree/mybranch/mysubdirectory
-
プライベートの Git リポジトリーを使用する場合は、個人用アクセス・トークンを入力します。 個人用アクセス・トークンを使用して Git リポジトリーの認証を受け、Terraform テンプレートにアクセスします。
Open reference pickerをクリックして、 Secrets Manager キーリファレンスを選択できます。 詳細については、「 コマンドライン用の個人アクセストークンの作成 」を参照してください。 テンプレートを安全に検証および複製するには、Open reference pickerをクリックして、 Secrets Manager キー参照を選択します。 詳細は、 Secrets Manager インスタンスの作成 を参照してください。 -
Terraform 構成ファイルが書き込まれている
Terraform versionを選択します。 -
チェック・ボックス
I understand the changes that could happen if I edit this URL and I agree to these happeningオプションをクリックします。 -
**「保存」をクリックします。IBM Cloud Schematics をクリックすると、Terraform 構成ファイルがリポジトリーから自動的にダウンロードされ、構文エラーがないかスキャンされ、構成ファイルで宣言したすべての入力変数が取得されます。 すべての構成ファイルが正常にダウンロードされ、構文エラーが見つからなければ、ワークスペースの状態は「非アクティブ」**に変更されます。
Terraform 構成ファイルがスキャンされた後、その結果をワークスペースの**「アクティビティー」**ページで見ることができます。 ソース・リポジトリー内でスキャンされたファイルの合計数は、
scannedとして表示されます。 ファイル拡張子がサポートされていないなど、脆弱なファイルの合計数は、discardedとして表示されます。 「ジョブ」 をクリックして、スキャンされて破棄されたファイルの詳細を見つけます。 ログの表示に関する詳細については、「 Schematics ジョブの詳細の確認 」を参照してください。 -
Terraform テンプレートのデフォルトの入力変数値を確認します。 入力変数の値を変更するには、ワークスペースのアクションメニューから「 編集 」をクリックします。 変数が使用するデータ型に応じて、特定の形式で値を入力する必要があります。サポートされている各データ型の値の例については、次の表を参照してください。
| タイプ | 例 | | --- | -- | |
number| 4.56 | |string| 値の例 | |bool| いいえ | |map(string)| {key1 = "value1", key2 = "value2"} | |set(string)| ["hello", "he"] | |map(number)| {internal = 8080, external = 2020} | |list(string)| ["us-south", "eu-gb"] | |list| ["value", 30] | |list(list(string))| :[{internal = 8300 external = 8300 protocol ="tcp"},{internal = 8301 external = 8301 protocol ="ldp"}] : list(object({internal = number external = number protocol = string})) : [{internal = 8300 external = 8300 protocol ="tcp"} {internal = 8301 external = 8301 protocol ="ldp"}]|
IBM Cloud での Terraform テンプレートの使用
Schematics でクラウドリソースを管理し、Terraformでクラウドリソースの作成、更新、削除を開始できます。
CLI を使用したワークスペースの作成
-
ローカルワークステーションにJSONファイルを作成し、ワークスペースの設定を追加してください。 ワークスペースの作成に関するその他の設定オプションについては、
ibmcloud schematics workspace newコマンド を参照してください。エージェントを使用してワークスペースを作成するには、 ibmcloud schematics workspace new with Agent コマンドを参照してください。
{ "name": "<workspace_name>", "type": [ "<terraform_version>" ], "location": "<location>", "description": "<workspace_description>", "tags": [], "template_repo": { "url": "<github_source_repo_url>" "branch": "master" }, "template_data": [ { "folder": ".", "type": "<terraform_version>", "variablestore": [ { "name": "<variable_name1>", "value": "<variable_value1>", "type": "string", "secure": true }, { "name": "<variable_name2>", "value": "<variable_value2>", "type": "bool", "secure": false } ] } ] }JSON ファイルの構成要素の説明 パラメーター 説明 workspace_nameワークスペースの名前を入力します。 文字の最大長は 1 MB に設定されています。 詳しくは、ワークスペースの構造の設計を参照してください。 terraform_versionTerraform コードを実行する際に使用する Terraform バージョン。 Terraform version 1.4を使用するには、terraform_v1.4と入力し、同様にterraform_v1.5とterraform_v1.6と入力します。 使用する Terraform 構成ファイルに、指定した Terraform バージョンとの互換性があることを確認してください。 Terraformの変数「version」が指定されていない場合、デフォルトでは、 Schematics はテンプレートからバージョンを選択します。locationワークスペースを作成するロケーションを決定します。 このロケーションに基づいて、Schematics アクションが実行される場所とワークスペース・データが保管される場所が決まります。 ロケーションは、IBM Cloud サービスを作成するリージョンとは独立しています。 descriptionワークスペースの説明を入力します。 github_source_repo_urlTerraform 構成ファイルが格納されている GitHub または GitLab リポジトリーの URL を入力します。 GitHub リポジトリーなしでワークスペースを作成することを選択した場合、ワークスペースは ドラフト 状態で作成されます。 後でワークスペースを GitHub リポジトリーに接続するには、 ibmcloud schematics workspace updateコマンドを使用する必要があります。variable_nameオプション: Terraform 構成ファイルで宣言した入力変数の名前を入力します。 variable_typeオプション: 入力変数のデータ型を入力します。 サポート対象のデータ・タイプについては、 ibmcloud schematics workspace newコマンドを参照してください。 -
ワークスペースを作成します。
ibmcloud schematics workspace new --file workspace.json -
ワークスペースが作成されたことを確認します。 ワークスペースが「 非アクティブ 」状態になっていることを確認してください。
ibmcloud schematics workspace list -
Terraform を使用してクラウド リソースを更新または削除するには、 Schematics を使用したクラウド リソースの管理」 を参照してください。
API を使用したワークスペースの作成
-
手順に従って、API を使用して IAM アクセス・トークンを取得し、IBM Cloud Schematics で認証します。
-
Terraform を使用してワークスペースを作成します。
curl --request POST --url https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>" -d '{"name": "<workspace_name>","type": ["<terraform_version>"],"location": "<location>","description": "<description>","template_repo": {"url": "<github_source_repo_url>"},"template_data": [{"folder": ".","type": "<terraform_version>","variablestore": [{"value": "<variable_value>","name": "<variable_name>","type": "<variable_type>","secure": true}]}]}'JSON ファイルの構成要素の説明 パラメーター 説明 iam_access_tokenステップ 1 で取得した IAM アクセス・トークンを入力します。 workspace_nameワークスペースの名前を入力します。 文字の最大長は 1 MB に設定されています。 詳しくは、ワークスペースの構造の設計を参照してください。 terraform_versionTerraform コードを実行する際に使用する Terraform バージョン。 Terraform バージョン 1.4、同様に terraform_v1.5、およびterraform_v1.6を使用するには、terraform_v1.4と入力します。 使用する Terraform 構成ファイルに、指定した Terraform バージョンとの互換性があることを確認してください。 Terraformの変数「version」が指定されていない場合、デフォルトでは、 Schematics はテンプレートからバージョンを選択します。locationワークスペースを作成するロケーションを決定します。 このロケーションに基づいて、Schematics アクションが実行される場所とワークスペース・データが保管される場所が決まります。 ロケーションは、IBM Cloud サービスを作成するリージョンとは独立しています。 descriptionワークスペースの説明を入力します。 github_source_repo_urlTerraformの設定ファイルが保存されている GitHub または GitLab リポジトリに、 URL を指定してください variable_nameオプション: Terraform 構成ファイルで宣言した入力変数の名前を入力します。 variable_value入力変数の値を入力します。 variable_typeオプション: 入力変数のデータ型を入力します。 サポート対象のデータ・タイプについては、 ibmcloud schematics workspace newコマンドを参照してください。 -
ワークスペースが正常に作成されたことを確認します。
curl -X GET https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>" -
Schematics でクラウドリソースを管理 して、クラウドリソースを更新または削除します。
Terraform を使用したワークスペースの作成
-
Schematics 用の Terraform のセットアップの手順に従って、Terraform を使用してワークスペースを作成します。
-
Schematics でクラウドリソースを管理 して、クラウドリソースを更新または削除します。
次のステップ
ワークスペースを扱う次の段階は、ワークスペースのデプロイ です。