Рейтинг:0

Автоматическое создание инвентаризаций Ansible при создании экземпляров из Ansible playbook с помощью Terraform в OVHCloud с использованием OpenStack.

флаг gb

Я настроил роль 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 ресурс без везения (та же ошибка).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.