ฉันได้กำหนดค่าบทบาท Terraform Ansible ที่สร้างอินสแตนซ์ได้สำเร็จบน OVHPublicCloud แต่ฉันไม่รู้วิธีแยกที่อยู่ IP สาธารณะจากอินสแตนซ์ที่สร้างขึ้นใหม่ไปยังโฮสต์สินค้าคงคลัง Ansible โดยใช้ Terraform
ฉันกำลังพยายามกับ คำตอบเหล่านั้นแต่ฉันมีข้อผิดพลาดเสมอ:
ทรัพยากรที่มีการจัดการ "อินสแตนซ์" "tmpnode" ไม่ได้ถูกประกาศในรูทโมดูล
นี่ของฉัน .tf
ไฟล์:
ทรัพยากร "openstack_compute_keypair_v2" "คู่กุญแจ" {
ผู้ให้บริการ = openstack.ovh
ชื่อ = "test_keypair2"
public_key = ไฟล์ ("~/.ssh/id_rsa.pub")
}
ทรัพยากร "openstack_compute_instance_v2" "test_terraform_instance" {
ชื่อ = "tmpnode${count.index}"
นับ = var.node_count
ผู้ให้บริการ = openstack.ovh
image_name = "เดเบียน 10"
รส_ชื่อ = var.รส_ชื่อ
key_pair = openstack_compute_keypair_v2.test_keypair.name
เครือข่าย {
ชื่อ = "Ext-Net"
}
}
ทรัพยากร "local_file" "hosts_cfg" {
content = templatefile("${path.module}/templates/hosts",
{
tmpnodes = instance.tmpnode.*.public_ip
}
)
ชื่อไฟล์ = "../สินค้าคงคลัง/โฮสต์"
}
และ ${path.module}/templates/hosts
ไฟล์:
[tmpnodes]
%{ สำหรับ ip ใน tmpnodes ~}
${ip}
%{ ปลายทาง ~}
ฉันก็พยายามด้วยค่าจาก terraform.tfstate
ชอบ อินสแตนซ์.attributes.access_ip_v4
โดยใช้ openstack_compute_instance_v2
ทรัพยากรไม่มีโชค (ข้อผิดพลาดเดียวกัน)