これは何?
Terraform Cloud のサブモジュールの呼び出しについて解説します。
サブモジュールについて
前回、Private Registryを登録して、メインモジュールを呼び出すことができました。
その際、プライベートレジストリから呼びだす際はsource句の部分のような内容になります。
# メインモジュールの呼び出し
module "network-templates" {
source = "app.terraform.io/atsuw0w-test-terraform/network-templates/aws"
version = "1.0.0"
}
上記のモジュールですが、サブモジュールを複数作成し呼び出すことも可能です。
例えば、VPCネットワークをメインモジュールと定義し、セキュリティグループやVPCエンドポイントについてはサブモジュールから呼び出すことが可能です。
(メインとしては作成したくないけど、必要な時に作成したいリソースとかをサブモジュール化すると使い勝手が良いと思います。)
次にサブモジュールを登録します。
前回作成したプライベートレジストリ下にmodules/<リソース名>
を作成し.tfテンプレートを作成します。
また、テンプレートはこちらから是非参考にお願いします!!
登録が完了して利用可能であるなら、以下のようにサブモジュールを確認することができます。
次に作成したサブモジュールを呼び出しましょう。
以前のワークスペース作成 を使用しても構いませんが、ディレクトリを「02_private_registory」に変更し、
呼び出す./02_private_registory
下のテンプレートはこちらになります。
サブモジュールの呼び出しは以下の通りとなります。
source 部分のレジストリの後ろに//modules/<モジュール名>
と後付けすればサブモジュールを呼び出すことができます。
# サブモジュールの呼び出し
# source =
module "network-templates" {
source = "app.terraform.io/atsuw0w-test-terraform/network-templates/aws//modules/security_group"
version = "1.0.0"
}
Terraform Cloud から呼び出してみましょう。
ワークスペース内の「+New Run」ボタンから手動でplan/applyを以下のように実行してみましょう。