前提・実現したいこと
terraformでAWS環境を構築しています。
ディレクトリ構成
.(root)
|
|--app
| |--modules
| |--ec2.tf
| |--vpc.tf
| |--ecs
| |--codebuild
| |--...
| |--variables
|
|--aaadaigaku
| |--test
| | |--main.tf
| | |--app1-main.tf
| | |--app2-main.tf
| | |--app3-main.tf
| |
| |--prod
| |--stg
| |--...
|
|--bbbdaigaku
|--cccdaigaku
|--...
↓↓↓↓ app/modules/variables ↓↓↓↓
variable daigaku = {} variable env = {} variable vpc = {} variable subnet = {} . . variable cluster = {} variable image = {} . . .
↓↓↓↓↓↓ aaadaigaku/test/main.tf ↓↓↓↓↓↓
module "test" source = "./app/modules" daigaku = "aaadaigaku" env = "test" vpc = "vpc-****" subnet = "subnet-****" . . .
↓↓↓↓↓↓ aaadaigaku/test/app1-main.tf ↓↓↓↓↓↓↓↓
module "app" source = "./app/modules" app_env = "app1" cluster = "arn::*******/app1_cluster" image = "arn://******/app1_image" . . .
aaadaigaku/test/main.tfでは、VPCやサブネットなどの定義をしています。
aaadaigaku/test/app1-main.tfでは、ECSのクラスター名やイメージを定義しています。
app2-main.tf,app3-main.tfも同様にそれぞれのクラスターやイメージを定義しています。
app1,app2,app3はどれも同じVPCやサブネットを使っています。
なので、aaadaigaku/test/main.tf で先にVPCなどを定義してあげて、app1,app2,app3はmain.tfを参照した(含めた)うえでapplyを行いたいです。
applyする場所は"test"です。
testでapplyすることにより、app1,app2,app3が同時に構築されるようにしたいです。
発生している問題・エラーメッセージ
:test$ terraform plan Error: Missing required argument on main.tf line 1, in module "test": 1: module "test" { The argument "cluster" is required, but no definition was found. Error: Missing required argument on main.tf line 1, in module "test": 1: module "test" { The argument "image" is required, but no definition was found. . . .
aaadaigaku/test/main.tfは上手くmodulesと連携してくれたのですが
aaadaigaku/test/app1-main.tfは反応しませんでした。
エラーにはちょうどapp1-main.tfで定義した値がエラー起こしていました。
おそらく、app/modules/variables は aaadaigaku/test/main.tf にしか反応しないらしいです。
同じディレクトリ内で複数のmain.tfファイルは不可能らしいです。
これを上手く解消して、構築できる方法はありますでしょうか??
ご教授お願い致しますm(__)m
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。