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).