Я настроил роль 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 = "Debian 10"
имя_вкуса = var.имя_вкуса
key_pair = openstack_compute_keypair_v2.test_keypair.name
сеть {
имя = "Внешняя сеть"
}
}
ресурс "local_file" "hosts_cfg" {
содержимое = файл_шаблона("${path.module}/templates/hosts",
{
tmpnodes = instance.tmpnode.*.public_ip
}
)
имя_файла = "../инвентарь/хост"
}
И ${путь.модуль}/шаблоны/хосты
файл:
[tmpnodes]
%{ для ip в tmpnodes ~}
${ip}
%{конец~}
Я пытался также со значениями из terraform.tfstate
нравиться instances.attributes.access_ip_v4
с использованием openstack_compute_instance_v2
ресурс без везения (та же ошибка).