Я ищу передать переменные сценарию на новом созданном aws_instance, но я не уверен, как это сделать. Вот что у меня есть:Переменная переменной Torraform remote-exec, проходящая
provisioner "file" {
source = "${path.module}/scripts/slave-provisioner.sh"
destination = "/tmp/slave-provisioner.sh"
}
provisioner "remote-exec" {
inline = [
"chmod +x /tmp/slave-provisioner.sh",
"sudo /tmp/slave-provisioner.sh ${split(",",var.zookeeper_ips_list)}"
]
}
Я проверял, что zookeeper_ips_list имеет правильный список IP-адресов.
Там ошибка, которую я получаю через терраформировать применить это:
/tmp/terraform_939984059.sh: 5: /tmp/terraform_939984059.sh: 10.239.12.181: not found
Поэтому в основном я хочу, чтобы создать эту машину, а затем удар моего Provisioner скрипт, который получает передается список IP-адресов, так что он может сделать это конфигурация.
Это выглядит довольно странно для меня, поскольку вы берете разделенную запятыми строку и превращаете ее в массив, который затем переходите к сценарию создателя. Я не на 100% уверен, что ожидаемое поведение на самом деле для этого, как я ожидаю, он хочет, чтобы вы передали его как строку. Вы действительно хотите это сделать? Или вам лучше заменить запятые пробелами (используя 'replace()')? – ydaetskcoR
Мы передаем эти IP-адреса в сценарий bash, который просто обновляет конфигурацию zookeeper для нашего кластера. Проблема была решена только с некоторым форматированием bash. –