1

我使用 terraform 设置和 openstack 实例。我正在写入一个ip返回的文件,但由于某种原因它总是空的(我已经查看了openstack consol中的实例,并且ip、securitygroups等的所有内容都是正确的)

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]
4

1 回答 1

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

于 2019-04-03T13:42:34.340 回答