Ich bin relativ neu in Terraform und ich versuche über alle aws_instances zu iterieren, um eine null_resource anzuwenden. Können Sie mehrere Instanzen verwenden, um auf alle Instanzen zuzugreifen, unabhängig von ihren Namen?Wie man über alle aws_instances in Terraform iteriert?
Die EC2-Instanzen werden durch drei Arten unterteilt:
aws_instance.web.* (3 instances)
aws_instance.app.* (3 instances)
aws_instance.db.* (2 instances)
mein Versuch, hier eine null_resource auf alle acht aws_instances anzuwenden:
resource "null_resource" "install_security_package" {
#count = "${length(aws_instance)}" #terraform error: resource count can't reference variable: aws_instance
#count = "${length(aws_instance.*)}" #terraform error: resource variables must be three parts: TYPE.NAME.ATTR
count = "${length(aws_instance.*.*)}" #terraform error: unknown resource 'aws_instance.*'
connection {
type = "ssh"
host = "${element(aws_instance.*.private_ip, count.index)}"
user = "${lookup(var.user, var.platform)}"
private_key = "${file("${var.private_key_path}")}"
timeout = "2m"
}
provisioner "remote-exec" {
inline = [
"sudo rpm -Uvh http://www.example.com/security/repo/security_baseline.rpm",
]
}
}