2017-05-08 2 views
1

Ich erstelle 2 Instanzen in 1 Modul und ich muss jetzt diese 2 Instanzen an eine ELB, die mit einem anderen Modul (gleiche Datei) erstellt wird - diese Möglichkeit ist ohne manuell möglich sie spezifizieren?Terraform AWS übergeben Instanzliste von 1 Modul zu einem anderen

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}"]? 
} 

Antwort

4

Zuerst die Ausgabe in Ihrer EC2-Modul definieren:

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

Hinweis: der Ressource-Name web ein Beispiel. Bitte geben Sie den tatsächlichen Ressourcennamen im Modul an.

nächstes die Liste Variable in Ihrem elb Modul deklarieren:

variable "instances" { 
    type = "list" 
} 

schließlich den Ausgang des EC2-Modul zum elb-Modul übergeben:

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

Dank, wusste nicht, können Sie Verwenden Sie die Ausgänge auf diese Weise – jdoe

Verwandte Themen