私は新しい作成されたaws_instanceのスクリプトに変数を渡そうとしていますが、どうすればよいか分かりません。私が持っているものは次のとおりです。Terraformのリモート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
だから、基本的に私はこのマシンを作成し、それが設定だ行うことができますので、IPアドレスのリストを渡される私のプロビジョニングスクリプトのキックしたい:私はテラフォームを経由して取得
あり誤差がある適用されます。
コンマで区切った文字列を配列に変換してプロビジョニングスクリプトに渡すので、これはかなり奇妙に見えます。私はあなたがそれを文字列として渡すことを望むと期待しているので、期待される振る舞いが実際にはそれが何であるかを100%確信していません。それは本当に意味がありますか?あるいは、カンマをスペースで置き換えるほうがいいでしょうか( 'replace()'を使って)? – ydaetskcoR
これらのIPアドレスをbashスクリプトに渡して、私たちのクラスタのための動物園の設定を更新するだけです。問題はちょっとしたbashフォーマットで解決されました。 –