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

Schematics を使用して、Terraform を通じて IBM Cloud Schematics のリソースを管理します。 ワークスペースの設定では、 Git リポジトリでホストされているTerraformエンジンを指定するとともに、テンプレートをカスタマイズするための入力変数を定義します。

IBM Cloud Schematics Terraformの旧バージョンのサポートを終了し、新しいバージョンのTerraformへの対応を導入しています。 詳細については、「 Schematics 」のTerraformの非推奨ライフサイクル および 非推奨スケジュール をご覧ください。

開始前に

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テンプレートが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.0v1.5.1v1.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 を参照する必要があります。

  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の変数「version」が指定されていない場合、デフォルトでは、 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の変数「version」が指定されていない場合、デフォルトでは、 Schematics はテンプレートからバージョンを選択します。
    location ワークスペースを作成するロケーションを決定します。 このロケーションに基づいて、Schematics アクションが実行される場所とワークスペース・データが保管される場所が決まります。 ロケーションは、IBM Cloud サービスを作成するリージョンとは独立しています。
    description ワークスペースの説明を入力します。
    github_source_repo_url Terraformの設定ファイルが保存されている GitHub または GitLab リポジトリに、 URL を指定してください
    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 でクラウドリソースを管理 して、クラウドリソースを更新または削除します。

次のステップ

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