vRealize Automation Cloud で Terraform 構成をリソースとして組み込む際は、特定の制限事項やトラブルシューティングについて考慮する必要があります。

Terraform 構成の制限事項

  • Terraform 構成を使用したデザインを検証する場合、テスト ボタンでは Cloud Assembly 構文はチェックされますが、ネイティブの Terraform コード構文はチェックされません。

    また、テスト ボタンでは、Terraform 構成に関連付けられたコミット ID は検証されません。

  • 最新リリースの Terraform バージョン 0.13 では、まだ公式にサポートされていません。
  • Terraform 構成を含むクラウド テンプレートでは、テンプレートのクローンを別のプロジェクトに作成する場合に次の回避策が必要になります。
    1. 新しいプロジェクトの [統合] タブで、統合の repositoryId をコピーします。
    2. クローンのテンプレートを開きます。コード エディタで、repositoryId をコピーした値に置き換えます。
  • バージョン管理リポジトリでは、Terraform 構成ファイルに状態ファイルを含めないでください。terraform.tfstate が存在する場合、展開中にエラーが発生します。

Terraform の親リソースに対する Day 2 アクションをサポート

Terraform の親リソースでは、Terraform の状態ファイルを表示または更新できます。状態ファイルのアクションの詳細については、Cloud Assembly 環境で実行できるアクションのアクションの包括的なリストを参照してください。

子リソースに対する Day 2 アクションをサポート

Terraform 構成を展開した後、子リソースで Day 2 アクションが使用可能になるまでに最大 20 分かかる場合があります。

Terraform 構成の子リソースでは、次の Day 2 アクションのサブセットのみがサポートされます。アクションの詳細については、Cloud Assembly 環境で実行できるアクションのアクションの包括的なリストを参照してください。

プロバイダ Terraform リソース タイプ Day 2 アクションのサポート
AWS aws_instance パワーオン
パワーオフ
再起動
リセット
Azure azurerm_virtual_machine パワーオン
パワーオフ
再起動
中断
vSphere vsphere_virtual_machine パワーオン
パワーオフ
再起動
リセット
シャットダウン
中断
スナップショットの作成
スナップショットの削除
スナップショットに戻す
GCP google_compute_instance パワーオン
パワーオフ
スナップショットの作成
スナップショットの削除

Day 2 アクションの可用性に関するトラブルシューティング

特別な設定は不要の(OOTB、Out-of-the-box)Day 2 アクションが不足しているか、無効になっている場合は、トラブルシューティングが必要になる場合があります。

問題 原因 解決方法
Terraform リソースで [アクション] メニューに OOTB Day 2 アクションが表示されない。

このアクションは、前述のリストに記載されているように、プロバイダおよびリソース タイプでサポートされていない可能性があります。

他の可能性として、リソースの検出とリソースのキャッシュのタイミングにより、このアクションの表示に最大で 20 分かかることもあります。

デザインのプロバイダとリソース タイプを確認します。

データ収集が完了するまで、最大 20 分待機します。

データ収集を考慮した 20 分間が経過した後でも Terraform リソースに Day 2 アクションが表示されない。

リソース検出の問題により、アクションが表示されません。

リソースが誤ってプロジェクト外のクラウド ゾーンに作成されている可能性があります。たとえば、プロジェクトにはクラウド アカウントとリージョン us-east-1 のクラウド ゾーンのみが含まれていますが、Terraform 構成には us-west-1 に対するプロバイダ ブロックが含まれているため、デザイン時には変更していない場合などです。

もう 1 つの可能性は、データ収集が機能していないことです。

プロジェクトのクラウド ゾーンをデザインのクラウド ゾーンと対比して確認します。

[インフラストラクチャ] > [接続] > [クラウド アカウント] の順に選択し、データ収集ステータスと、クラウド アカウントの収集が最後に成功した時間を確認します。

リソース状態とデータ収集について明らかな問題がないにもかかわらず、Day 2 アクションは無効になっている(グレーアウトしている)。 断続的に発生するタイミングの問題と、データ収集の失敗が時折発生することが知られています。 この問題は、20 分以内に解決します。
リソースの状態に基づいて有効になるはずの、Day 2 アクションが誤って無効になっている。

たとえば、プロバイダのインターフェイスを使用してリソースをパワーオフしたにもかかわらず、パワーオフが有効になり、パワーオンが無効になる。

データ収集のタイミングによって一時的な不一致が発生する可能性があります。電源状態を vRealize Automation Cloud の外部から変更すると、変更が正しく反映されるまでに時間がかかります。 最大 20 分待機します。

vRealize Automation Cloud でのカスタム Terraform プロバイダの使用

カスタムの Terraform プロバイダを作成して使用する場合は、次の手順を実行します。

  1. Git バージョン管理リポジトリ内のデフォルトの Terraform ディレクトリに、次のサブディレクトリ構造を追加します。

    terraform.d/plugins/linux_amd64

  2. カスタムの Terraform プロバイダ Go バイナリを linux_amd64 ディレクトリに追加します。

    デフォルトでは、terraform init はカスタム プロバイダ プラグインのディレクトリを検索します。

注: VMware は、カスタムの Terraform プロバイダの実行に失敗し、 no such file or directory メッセージが送信される場合があることを認識しています。

この問題が発生した場合は、CGO が無効な(ゼロに設定された)状態でカスタム プロバイダ Go バイナリを再コンパイルしてください。CGO は、C コードを呼び出す Go パッケージのことです。