Terraform Module
再利用可能なテンプレ的なもの。
親になるソースから呼び出して使う。
既存のものを参照する場合
公式レジストリ
https://registry.terraform.io/browse/modules
公式モジュールと野良モジュールがある
terraform-aws-modules/alb/aws のようにパスを指定すると使える
自作する場合
定義には以下3つを使い、ディレクトリを分ける。
variableブロック:入力パラメタの定義
resourceブロック:再利用したいリソースの定義本体
outputブロック:戻り値の定義。呼び出し元で使える値を返す
呼び出し側は以下を使う。
moduleブロック
code:main.tf
module "リソースの名前" {
source = "モジュールを定義したフォルダのパス(だいたい相対)"
パラメーター名 = "パラメーター値"
}
/icons/hr.icon
moduleを書いて最初に読み込む際はterraform init or terraform getが必要。
こんなエラーが出る。
code:console
$ t plan
╷
│ Error: Module not installed
│
│ on hello.tf line 14:
│ 14: module "use_locals" {
│
│ This module is not yet installed. Run "terraform init" to install all modules required by this configuration.
╵