Terraform blockiert, während versucht wird, IP-Adressen mehrerer Instanzen abzurufen?

So verwende ich terraform, um ec2-Instanzen und Openstack-Instanzen bereitzustellen. Ich versuche, auf die IP-Adressen der von mir erstellten Instanzen zu verweisen, da ich Befehle ausführen muss, die sie verwenden (um consul einzurichten). Nach dem Hinzufügen von Verweisen auf diese Variablen bleibt terraform jedoch einfach stehen und tut absolut nichts, nachdem ich ein @ ausgeführt habterraform apply oderterraform plan:

Hier ist ein Beispiel des Ressourcenblocks für das, was ich ausführen möchte:

resource "aws_instance" "consul" {
  count = 3
  ami = "ami-ce5a9fa3"
  instance_type = "t2.micro"
  key_name = "ansible_aws"
  tags {
    Name = "consul"
  }

  connection {
    user = "ubuntu"
    private_key="${file("/home/ubuntu/.ssh/id_rsa")}"
    agent = true
    timeout = "3m"
  }

  provisioner "remote-exec" {
    inline = [
      "sudo apt-get update",
      "sudo apt-get install -y curl",
      "echo ${aws_instance.consul.0.private_ip} >> /home/ubuntu/test.txt",
      "echo ${aws_instance.consul.1.private_ip} >> /home/ubuntu/test.txt",
      "echo ${aws_instance.consul.2.private_ip} >> /home/ubuntu/test.txt"
    ]
  }
}

Aktualisieren Also habe ich versucht, einen ähnlichen Befehl mit meiner Openstack-Cloud auszuführen und habe das gleiche Problem:

  provisioner "remote-exec" {
    inline = [
      "sudo apt-get update",
      "sudo apt-get install -y curl",
      "echo ${openstack_compute_instance_v2.consul.0.network.0.fixed_ip_v4}",
      "echo ${openstack_compute_instance_v2.consul.1.network.1.fixed_ip_v4}",
      "echo ${openstack_compute_instance_v2.consul.2.network.2.fixed_ip_v4}"
    ]
  }

So habe ich festgestellt, dass, wenn ich stattdessen nur eine der IP-Adressen verwende, die anderen Instanzen erst dann erstellt werden, wenn meine erste Instanz erstellt wurde, wie im folgenden Block:

  provisioner "remote-exec" {
    inline = [
      "echo ${openstack_compute_instance_v2.consul.0.network.0.fixed_ip_v4}",
    ]
  }

Ich muss alle meine Instanzen gleichzeitig erstellen und habe Zugriff auf die IP-Adressen aller anderen Instanzen, die erstellt wurden, sobald sie erstellt wurden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage