IBM Cloud Docs
ワークスペースの作成とTerraformのインポート

ワークスペースの作成と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 週から非推奨にします。

開始前に

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

UIを使用してワークスペースを作成する

  1. IBM Cloudコンソールにログインします。
  2. Menu iconhamburger 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 を指定すると、ユーザーは Terraform v1.5.0v1.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 を参照する必要があります。

  1. ワークスペースの**「設定」**ページで、編集アイコンを入力して Repository URL を編集します。 master・ブランチ、他のブランチ、またはサブディレクトリーを指すリンクを入力できます。

    • master・ブランチの例: https://github.com/myorg/myrepo
    • 他のブランチの例: https://github.com/myorg/myrepo/tree/mybranch
    • サブディレクトリーの例: https://github.com/mnorg/myrepo/tree/mybranch/mysubdirectory
  2. プライベートの Git リポジトリーを使用する場合は、個人用アクセス・トークンを入力します。 個人用アクセス・トークンを使用して Git リポジトリーの認証を受け、Terraform テンプレートにアクセスします。 Open reference picker をクリックして、 Secrets Manager キーリファレンスを選択できます。 詳細は 、「コマンドライン用の個人用アクセストークンの作成」 を参照してください。 テンプレートを安全に検証および複製するには、 Open reference picker をクリックして、 Secrets Manager キー参照を選択します。 詳細は、 Secrets Manager インスタンスの作成 を参照してください。

  3. Terraform 構成ファイルが書き込まれている Terraform version を選択します。

  4. チェック・ボックス I understand the changes that could happen if I edit this URL and I agree to these happening オプションをクリックします。

  5. **「保存」をクリックします。IBM Cloud Schematics をクリックすると、Terraform 構成ファイルがリポジトリーから自動的にダウンロードされ、構文エラーがないかスキャンされ、構成ファイルで宣言したすべての入力変数が取得されます。 すべての構成ファイルが正常にダウンロードされ、構文エラーが見つからなければ、ワークスペースの状態は「非アクティブ」**に変更されます。

    Terraform 構成ファイルがスキャンされた後、その結果をワークスペースの**「アクティビティー」**ページで見ることができます。 ソース・リポジトリー内でスキャンされたファイルの合計数は、scannedとして表示されます。 ファイル拡張子がサポートされていないなど、脆弱なファイルの合計数は、discardedとして表示されます。 「ジョブ」 をクリックして、スキャンされて破棄されたファイルの詳細を見つけます。 ログの表示に関する詳細は 、「 Schematics のジョブの詳細の確認」 を参照してください。

  6. 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を使用してワークスペースを作成する

  1. ローカルのワークステーションに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.5terraform_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 コマンドを参照してください。
  2. ワークスペースを作成します。

    ibmcloud schematics workspace new --file workspace.json
    
  3. ワークスペースが作成されたことを確認します。 作業スペースが非アクティブの状態になっていることを確認してください。

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

API を使用したワークスペースの作成

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

  2. 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 コマンドを参照してください。
  3. ワークスペースが正常に作成されたことを確認します。

    curl -X GET https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>"
    
  4. Schematics でクラウドリソースを管理 して、クラウドリソースを更新または削除します。

Terraform を使用したワークスペースの作成

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

  2. Schematics でクラウドリソースを管理 して、クラウドリソースを更新または削除します。

次のステップ

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