我的问题类似于这个 git hub 帖子:
https://github.com/hashicorp/terraform/issues/745
它也与我的另一个堆栈交换帖子有关:
Terraform 在尝试获取多个实例的 IP 地址时停止?
我正在尝试引导多台服务器,并且需要在我的实例上运行一些命令,这些命令需要所有其他实例的 IP 地址。但是,在创建新实例之前,我无法访问保存新创建实例的 IP 地址的变量。因此,当我尝试运行这样的provisioner "remote-exec"
块时:
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}"
]
}
什么都没有发生,因为所有实例都在等待所有其他实例完成创建,所以一开始什么都没有创建。所以我需要一种方法来创建我的资源,然后在创建provisioner "remote-exec"
它们之后运行我的块命令,并且 terraform 可以访问我所有实例的 IP 地址。