ワークスペースの作成とTerraformのインポート
Terraform を使用して IBM Cloud Schematics リソースを管理するには、 Schematics を使用します。 ワークスペース設定は、使用される Git リポジトリーでホストされる Terraform エンジンと、テンプレートをカスタマイズするための入力変数を定義します。
IBM Cloud Schematics では、Terraform の旧バージョンが非推奨となります。 詳しくは、IBM Cloud Schematics での旧バージョンの Terraform プロセスの非推奨を参照してください。
IBM Cloud Schematics は、 IBM Cloud Provider Plug-in for Terraform v1.2、 v1.3 テンプレートを使用したワークスペースの作成を 2024 年 4 月第 2 週から非推奨にします。
開始前に
- Terraform 構成を作成し、その構成を
GitHub
リポジトリー、GitLab
リポジトリー、またはBitbucket
リポジトリーに保管します。 また、テンプレートを IBM Cloud Schematics に提供するために、ローカルのワークステーションからテープアーカイブファイル(.tar
)をアップロードすることもできます。 詳細については、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 v1.4を使用して Terraform テンプレートを作成する場合は、Terraform version
パラメーターとして terraform_v1.4 を選択します。 Terraform バージョン 1.5を使用するにはTerraform_v1.5
を選択し、Terraform バージョン 1.4を使用するにはterraform_v1.4
を選択します。terraform_v1.5
を指定すると、ユーザーは Terraformv1.5.0
、v1.5.1
、またはv1.5.7
などを使用できます。 Schematics は、Terraform_v1.x
をサポートしており、 HashiCorp 構成言語 (HCL) リリースの30 to 45 days
より後のリリースも使用可能にする予定です。Schematics は、
Terraform_v1.6
を介してTerraform v1.4
の現行リリースをサポートします。 Terraformは、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_version
Terraform コードを実行する際に使用する Terraform バージョン。 Terraform version 1.4
を使用するには、terraform_v1.4
と入力し、同様にterraform_v1.5
とterraform_v1.6
と入力します。 使用する Terraform 構成ファイルに、指定した Terraform バージョンとの互換性があることを確認してください。 Terraform変数のバージョンが指定されていない場合、デフォルトでは、 Schematics がテンプレートからバージョンを選択します。location
ワークスペースを作成するロケーションを決定します。 このロケーションに基づいて、Schematics アクションが実行される場所とワークスペース・データが保管される場所が決まります。 ロケーションは、IBM Cloud サービスを作成するリージョンとは独立しています。 description
ワークスペースの説明を入力します。 github_source_repo_url
Terraform 構成ファイルが格納されている 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_version
Terraform コードを実行する際に使用する Terraform バージョン。 Terraform バージョン 1.4、同様に terraform_v1.5
、およびterraform_v1.6
を使用するには、terraform_v1.4
と入力します。 使用する Terraform 構成ファイルに、指定した Terraform バージョンとの互換性があることを確認してください。 Terraform 変数のバージョンが指定されていない場合、 Schematics はデフォルトでテンプレートからバージョンを選択します。location
ワークスペースを作成するロケーションを決定します。 このロケーションに基づいて、Schematics アクションが実行される場所とワークスペース・データが保管される場所が決まります。 ロケーションは、IBM Cloud サービスを作成するリージョンとは独立しています。 description
ワークスペースの説明を入力します。 github_source_repo_url
URL を GitHub または GitLab リポジトリに入力します。Terraform 構成ファイルが保存されている場所です 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 でクラウドリソースを管理 して、クラウドリソースを更新または削除します。
次のステップ
ワークスペースを扱う次の段階は、ワークスペースのデプロイ です。