問題タブ [terraform-provider-openstack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
terraform - terraforms 0.12.23 の json オブジェクトのリストを反復処理する
cli コマンドで tfvar ファイルとして渡す json ファイルに、オブジェクトの 2 つの配列があります。1 つはフレーバーのリストで、もう 1 つはイメージのリストです。私がやりたいのは、フレーバーとイメージごとに VM を作成し、それらを組み合わせることです。
画像配列の例を次に示します。
フレーバー リストの例を次に示します。
https://www.hashicorp.com/blog/hashicorp-terraform-0-12-preview-for-and-for-each/の指示に従いましたが、機能せず、エラー メッセージも役に立ちません。
ここに私のtfファイルがあります:
編集
mjpgpy3 の提案の後でも、同じエラー メッセージが表示されます。
terraform - Terraform 内の他のモジュール リソースへの参照
Terraform Cloud git プロジェクトには、次のような階層があります。
すべてのメインmain.tf
ファイルには、子フォルダーを持つモジュール定義が含まれています。
/main.tf
:
/aws/main.tf
:
/aws/security-rules/main-tf
:
/aws/vms/main-tf
:
次に、このセキュリティ ルールを定義します。
/aws/security-rules/sec-rule1/main-tf
:
また、1 つ以上の VM から参照したいのですが、リソース ID (または名前) で参照する方法がわかりません。参照の代わりに平易な名前を使用します。
/aws/vms/vm1/main-tf
:
name または ID で参照する security-rules (およびその他のもの) を使用したいのは、より一貫性があるからです。また、新しいセキュリティ ルールを作成し、同時に VM を作成すると、Terraform OpenStack プロバイダーはエラーなしでそれを計画しますが、適用すると、VM が最初に作成され、まだ作成されていないことが見つからないため、エラーが発生します。新しいセキュリティ ルール。
これどうやってするの?
terraform - openstackでテラフォームを介して複数のボリュームを複数のインスタンスに動的に接続する方法は?
私はテラフォーム モジュール (v0.14) を作成しました。このモジュールを使用して、openstack で複数のインスタンスをプロビジョニングし、正しい availability_zone、network-port、正しいフレーバーを使用して、ブール入力変数などに基づいて 1 つのローカル ディスクまたは 1 つの blockstorage_volume を作成できます。現在、複数のブロック ストレージ ボリューム (=ネットワーク/共有ストレージ ボリューム) を複数のインスタンスに動的に追加できる機能のリクエストを受け取りました。
複数のインスタンスで 1 つの blockstorage_volume に対してすべてが動的に機能する方法の例:
2 つのインスタンスがあり、各インスタンスに 2 つの追加の blockstorage_volumes を動的に追加したいとします。私の最初のアイデアは、試しに 2 つの追加の動的リソースを追加することでした。
.tf ファイルで定義された 2 つの追加の blockstorage_volumes の例:
.tf ファイルで定義された 2 つのインスタンスの例:
ここでは、2 つの追加の blockstorage_volumes を各インスタンスに動的にアタッチしようとしています。
openstack_compute_instance_v2.instance [each.key]は、インスタンスごとに追加の blockstorage_volume を 1 つしか作成しないため、明らかに正しくありません。これを解決するクリーンでエレガントな方法はありますか? したがって、基本的に、変数「multiple_volumes」で指定されたすべてのボリュームを、var.nodes で定義されている各単一インスタンスにアタッチします。
敬具、ジョナス