Доступ к переменным Terraform в файле шаблона поставщика user_data
Я запускаю экземпляр aws_launch_configuration
используя terraform.
Я использую скрипт оболочки для переменной user_data
, например:
resource "aws_launch_configuration" "launch_config" {
...
user_data = "${file("router-init.sh")}"
....
}
Внутри этого router-init.sh одна из вещей, которые я хотел бы сделать, - иметь доступ к ip-адресам для других экземпляров, которые я запускаю через terraform.
Я знаю, что я могу использовать splat для доступа ко всем IP-адресам этого экземпляра, например:
output ip_address {
value = ${aws_instance.myAWSInstance.*.private_ip}"
}
Есть ли способ передать/получить доступ к этим IP-адресам в скрипте router-init.sh?
Ответы
Ответ 1
Вы можете сделать это, используя template_file
источник данных:
data "template_file" "init" {
template = "${file("router-init.sh.tpl")}"
vars = {
some_address = "${aws_instance.some.private_ip}"
}
}
Затем назовите его внутри шаблона, например:
#!/bin/bash
echo "SOME_ADDRESS = ${some_address}" > /tmp/
Затем используйте это для user_data
:
user_data = ${data.template_file.init.rendered}
Ответ 2
Получение "Ошибка: Цикл: aws_instance.some, data.template_file.init" здесь... есть ли способ заставить это работать на