2017-05-08 2 views
1

1つのモジュールに2つのインスタンスを作成しているので、別のモジュール(同じファイル)を使用して作成されたELBに2つのインスタンスを追加する必要があります。それらを指定する?terraform awsモジュール間でインスタンスリストを渡す

module "instances" { 
    source = "../../../../modules/ec2" 

    ami       = "ami...." 
    number_of_instances   = 2 
    instance_type    = "t2.micro" 
} 

    module "elb" { 
    source = "../../../../modules//elb" 

    name = "some elb" 
    instances = ["???"] #something like ["${module.ec2.instances.id}"]? 
} 

答えて

4

まず、あなたのEC2のモジュールに出力を定義します。

output "instance_ids" { 
    value = ["${aws_instance.web.*.id}"] 
} 

注:リソース名webは一例です。モジュールに実際のリソース名を指定してください。

次に、あなたのELBモジュールでリスト変数を宣言:

最後に
variable "instances" { 
    type = "list" 
} 

は、ELBモジュールにEC2モジュールの出力を渡す:

module "instances" { 
    source = "../../../../modules/ec2" 

    ami       = "ami...." 
    number_of_instances   = 2 
    instance_type    = "t2.micro" 
} 

module "elb" { 
    source = "../../../../modules/elb" 

    name = "some elb" 
    instances = ["${module.instances.instance_ids}"] 
} 
+1

おかげで、知らなかったことができますこのように出力を使用する – jdoe

関連する問題