Am configurat rolul Terraform Ansible care creează cu succes instanțe pe OVHPublicCloud, dar nu știu cum să extrag adresa IP publică de la instanța nou creată la gazdele de inventar Ansible folosind Terraform.
am incercat cu acele raspunsuri, dar mereu am o eroare:
O „instanță” „tmpnode” de resurse gestionate nu a fost declarată în modulul rădăcină.
Aici e al meu .tf
fişier:
resursă „openstack_compute_keypair_v2” „pereche de taste” {
provider = openstack.ovh
nume = "test_keypair2"
cheie_publică = fișier("~/.ssh/id_rsa.pub")
}
resursa „openstack_compute_instance_v2” „test_terraform_instance” {
nume = "tmpnode${count.index}"
count = var.node_count
provider = openstack.ovh
image_name = "Debian 10"
flavor_name = var.flavor_name
key_pair = openstack_compute_keypair_v2.test_keypair.name
retea {
nume = "Ext-Net"
}
}
resursa „local_file” „hosts_cfg” {
continut = templatefile("${path.module}/templates/hosts",
{
tmpnodes = instance.tmpnode.*.public_ip
}
)
nume fișier = "../inventar/gazde"
}
Si ${path.module}/templates/hosts
fişier:
[tmpnodes]
%{ pentru ip în tmpnodes ~}
${ip}
%{ endfor ~}
Am încercat și cu valori din terraform.tfstate
ca instances.attributes.access_ip_v4
folosind openstack_compute_instance_v2
resursă fără noroc (aceeași eroare).