Tôi đã định cấu hình vai trò Terraform Ansible đang tạo phiên bản thành công trên OVHPublicCloud, nhưng tôi không biết cách trích xuất địa chỉ IP công cộng từ phiên bản mới được tạo sang máy chủ khoảng không quảng cáo Ansible bằng Terraform.
tôi đã cố gắng với những câu trả lời đó, nhưng tôi luôn gặp lỗi:
Một "ví dụ" "tmpnode" tài nguyên được quản lý chưa được khai báo trong mô-đun gốc.
Đây là của tôi .tf
tập tin:
tài nguyên "openstack_compute_keypair_v2" "keypair" {
nhà cung cấp = openstack.ovh
tên = "test_keypair2"
public_key = file("~/.ssh/id_rsa.pub")
}
tài nguyên "openstack_compute_instance_v2" "test_terraform_instance" {
tên = "tmpnode${count.index}"
đếm = var.node_count
nhà cung cấp = openstack.ovh
image_name = "Debian 10"
hương vị_name = var.flavor_name
key_pair = openstack_compute_keypair_v2.test_keypair.name
mạng {
tên = "Ext-Net"
}
}
tài nguyên "local_file" "hosts_cfg" {
nội dung = templatefile("${path.module}/templates/hosts",
{
tmpnodes = instance.tmpnode.*.public_ip
}
)
tên tệp = "../inventory/hosts"
}
Và ${path.module}/templates/hosts
tập tin:
[tmpnodes]
%{ cho ip trong tmpnodes ~}
${ip}
%{ endfor ~}
Tôi cũng đã thử với các giá trị từ địa hình.tfstate
Thích instance.attributes.access_ip_v4
sử dụng openstack_compute_instance_v2
resource mà không gặp may mắn (cùng một lỗi).