我使用terraform设置和开放堆栈实例。我正在将ip返回的文件写入文件,但由于某种原因,它总是空的(我已经在openstack consol中查看了该实例,并且使用ip,securitygroups等,everythign都是正确的)
resource "openstack_compute_instance_v2" "my-deployment-web" {
count = "1"
name = "my-name-WEB"
flavor_name = "m1.medium"
image_name = "RHEL7Secretname"
security_groups = [
"our_security_group"]
key_pair = "our-keypair"
network {
name = "public"
}
metadata {
expire = "2",
owner = ""
}
connection {
type = "ssh"
user = "vagrant"
private_key = "config/vagrant_private.key"
agent = "false"
timeout = "15m"
}
##Create Ansible host in staging inventory
provisioner "local-exec" {
command = "echo -e '\n[web]\n${openstack_compute_instance_v2.my-deployment-web.network.0.floating_ip}' > ../ansible/inventories/staging/hosts"
interpreter = ["sh", "-c"]
}
}
生成的主机文件仅获取[web],而没有IP。有人知道为什么吗?
[web]
答案 0 :(得分:0)
修改变量
${openstack_compute_instance_v2.my-deployment-web.network.0.floating_ip}
到
${openstack_compute_instance_v2.my-deployment-web.network.0.access_ip_v4
}
解决了问题。谢谢@Matt Schuchard