---
sourceDocument: Xanadu IT Operations Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/it-operations-management

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu IT Operations Management

ft:clusterId :

    - itom

bundleId :

    - itom

workflow :

    - Technology


---

# リソースブロックへの Terraform オーケストレーションインターフェイスの追加

# リソースブロックへの Terraform オーケストレーションインターフェイスの追加 {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：8分

クラウドプロビジョニングとガバナンス の Terraform ストアアプリを有効にした後、Terraform オープンソースエディションを使用して、クラウドプロバイダーのクラウドベースの操作をサポートします。Terraform テンプレートを使用してクラウドベースの操作を実行するには、Terraform オーケストレーションインターフェイスをリソースブロックに追加します。

## 始める前に

必要なロール：sn_cmp.cmp_root_admin、sn_cmp.cloud_service_designer

## 手順

1. クラウド管理ポータルで、 Design (デザイン)リソースブロック.
2. リソースブロック、たとえば \[Azure データセンター\] をクリックします。
3. リソースブロックのステータスを \[公開\] から \[ドラフト\] に移動して、編集可能にします。
4. 移動先 一般情報ゲストインターフェイスをクリックし、\[ 新規\] をクリックします。
5. \[ゲストインターフェイス\] リストから \[Terraform オーケストレーションインターフェイス\] を検索して選択し、\[送信\] をクリックします。
6. \[操作\] タブを選択します。
7. \[入力パラメーター\] タブで \[インターフェイス\] に移動し、\[Terraform オーケストレーションインターフェイス\] を選択します。
8. \[入力パラメーター\] タブで、CAPI 操作入力を設定します。  
   CAPI インターフェイス (この場合は Terraform オーケストレーションインターフェイス) で、CreateStack メソッドを開きます。CAPI からの入力が \[入力\] タブに表示されます。ここでパラメーターを作成します。

   ユーザーは、\[入力パラメーター\] タブに値を入力します。これらの入力パラメーターを、\[入力\] タブのパラメーターにマップできます。これを行うには、\[Input Parameters\] タブの \[Mapping\] の値を \[Value\] フィールドにコピーします。 ステップ入力 タブに戻ります

   このステップでスクリプトを呼び出し、そのスクリプトで値を返す引数が必要とされる場合は、各引数に新しい入力パラメーターを追加できます。\[値\] フィールドで、構文 <kbd class="ph userinput">${parameter.arg1}</kbd> を使用します。
9. \[操作\] の下にある \[ステップ\] サブタブをクリックします。
10. \[ステップを追加\] をクリックします。
11. フォームフィールドに記入します。  
    {#add-terraform-orchestration-interface__table_q1n_4qw_52b__entry__2}

    | フィールド | 説明 |
    |-|-|
    | 操作タイプ | 操作のタイプを選択します。 クラウド API の呼び出し (Invoke Cloud API)：CAPI からプロバイダー、インターフェイス、およびメソッドを選択するには、このオプションを選択します。 |
    | API プロバイダー | 必要なインターフェイスを提供する API を選択します。プロバイダはクラウド API (CAPI) の一部です。 たとえば、CAPI は、構成オーケストレーションインターフェイスを提供する Terraform OpenSource プロバイダを提供します。 この値は、\[クラウド API の呼び出し (Invoke Cloud API)\] 操作タイプを選択した場合に表示されます。 |
    | API インターフェイス | 使用するメソッドを含むインターフェイスを選択します。この例では、構成オーケストレーションインターフェイスにより、システムがプロビジョニング中に使用する複数のインターフェイスまたはメソッドが提供されます。 |
    | API メソッド | 操作を実行するメソッドを選択します。この例では、Terraform テンプレートをプロビジョニングするために ExecuteCommand が必要です。 |
    | CAPI バージョン | CAPI API のバージョンを入力します。 |
    | 条件 | システムがこのステップを使用する前に、満たす必要があるオプションの条件を入力します。 |
    [ ]

    {#add-terraform-orchestration-interface__table_q1n_4qw_52b}
12. \[送信\] をクリックします。  
    ステップの \[入力\] および \[応答プロセッサ\] タブが表示されます。
13. \[入力\] タブで、CAPI 操作入力を設定します。  
    CAPI インターフェイス (この場合は 構成 オーケストレーションインターフェイス) で、ExecuteCommand メソッドを開きます。CAPI からの入力が \[入力\] タブに表示されます。ここでパラメーターを作成します。

    \[入力パラメーター\] タブのパラメーターは、ユーザーが値を入力する場所です。これらの入力パラメーターを、\[入力\] タブのパラメーターにマップできます。\[Input Parameters\] タブの \[Mapping\] の値を \[Value\] フィールドにコピーします。 ステップ入力 タブに戻ります

    このステップでスクリプトを呼び出し、そのスクリプトで値を返す引数が必要とされる場合は、各引数に新しい入力パラメーターを追加できます。\[値\] フィールドで、構文 <kbd class="ph userinput">${parameter.arg1}</kbd> を使用します。  
    注:  
    次のテーブルに示すように、値を次のパラメーターにマップします。
    {#add-terraform-orchestration-interface__table_kr1_4fz_kjb__entry__2}

    | パラメーター | 値 |
    |-|-|
    | AdditionalParameters | 次のスクリプトを入力します。 {"ServerType":"$(Script:sn_cmp_terraform.TerraformCommandUtils. getConfigProviderServerTypeByName[arg=${parameter.WorkloadConfigProvider}])"} |
    | ConfigMgmtProviderInfo | $(capiResolver.NodeCredentialResolver#nodeCredentialId=$(ci.sn_cmp_wl_cfg_mgmt_provider [name=${parameter.WorkloadConfigProvider}].credential)) |
    | ノードアドレス | $(ci.cmdb_ci_workload_config_provider[name=${parameter.WorkloadConfigProvider}].url) |
    | スクリプト CreateStack 操作の場合 | ${CloudScript.scripts.TerraformDeploy} |
    | スクリプト DeleteStack 操作の場合 | ${CloudScript.scripts.DestroyTerraform} |
    [ ]

    {#add-terraform-orchestration-interface__table_kr1_4fz_kjb}
14. \[応答プロセッサー\] タブで、リソーススクリプトをアタッチして応答プロセッサーを構成します。  
    リソースブロックの作成中に、リソースブロックにリソーススクリプトを追加しています。
15. \[操作\] リストから、\[CreateStack\] または \[DeleteStack\] 操作を選択します。
16. \[応答プロセッサーの追加\] の ![\[応答プロセッサーの追加\]]() 追加アイコンをクリックします。
17. \[リソーススクリプト\] サブタブをクリックし、\[新規\] をクリックします。
18. フォームに入力します。  
    {#add-terraform-orchestration-interface__table_hwh_cw2_pdb__entry__2}

    | フィールド | 説明 |
    |-|-|
    | 名前 | リソーススクリプトの名前 (たとえば、Create_AzureTF_Stack_Response_Processor) を入力します。 |
    | タイプ | スクリプトのタイプ (\[応答プロセッサー\]) を選択します。 |
    | スクリプト 作成用リソーススクリプト | 次のスクリプトを入力します。 function processResponse (response, cloudServiceAccountId, ldc, correlationId, step, requestorContext, stackId) { var responseObject = global.JSON.parse(response); var tfState = global.JSON.parse(responseObject.terraform.state); var processor = new sn_cmp_terraform.TerraformResponseProcessor(); var processedResponses = processor.processResponse(tfState, cloudServiceAccountId,  ldc, correlationId, step, requestorContext, stackId); return global.JSON.stringify(processedResponses); } |
    | スクリプト 削除用リソーススクリプト | 次のスクリプトを入力します。 function processResponse (response, cloudServiceAccountId, ldc, correlationId, step, requestorContext, stackId) { var responseObject = global.JSON.parse(response); var tfState = global.JSON.parse(responseObject.terraform.state); var processor = new sn_cmp_terraform.TerraformResponseProcessor(); var processedResponses = processor.processResponse(tfState, cloudServiceAccountId,  ldc, correlationId, step, requestorContext, stackId); return global.JSON.stringify(processedResponses); } |
    [表 : 1. 新規レコード]

    {#add-terraform-orchestration-interface__table_hwh_cw2_pdb}
19. \[スクリプト名\] リストで、選択した操作に対応するスクリプトを選択し、\[送信\] をクリックします。
20. リソースブロックのステータスを \[ドラフト\] から \[公開\] に移行します。  
    データセンターのリソースブロックはドラフトから公開ステータスに移行し、リソースブロックにそれ以上変更を加えることはできなくなります。リソースブロックを変更できるのは、ステータスを \[ドラフト\] に設定した後のみです。

