我正试图做
地形应用
但出现错误
发生1个错误:
- digitalocean_droplet.testvm [0]:找不到变量的资源“ digitalocean_droplet.testvm” 'digitalocean_droplet.testvm.ipv4_address'
面对错误,Terraform不会自动回滚。 相反,您的Terraform状态文件已部分更新为 成功完成的资源。请解决以上错误 并再次应用以逐步更改您的基础架构。
如何将创建的Droplet的公共IP传递给预配器local-exec命令。
下面是我的 .tf 文件
provider "digitalocean" {
token = "----TOKEN----"
}
resource "digitalocean_droplet" "testvm" {
count = "10"
name = "do-instance-${count.index}"
image = "ubuntu-16-04-x64"
size = "512mb"
region = "nyc3"
ipv6 = true
private_networking = false
ssh_keys = [
"----SSH KEY----"
]
provisioner "local-exec" {
command = "fab production deploy ${digitalocean_droplet.testvm.ipv4_address}"
}
}
谢谢!
答案 0 :(得分:2)
对于本地执行人员配置者,您可以使用self
关键字。在这种情况下,它将是{self.ipv4_address}
。
我的猜测是,如果您没有将count=10
放入testvm
小滴中,您的代码片段将奏效。您还可以使用${count.index}
更多信息:https://www.terraform.io/docs/provisioners/
还发现this github issue可能对您有帮助。
希望有帮助