새롭게 생성 된 aws_instance에서 스크립트에 변수를 전달하려고하지만 확실하지 않습니다. 다음은 내가 가지고있는 것입니다.Terraform 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 목록이 있는지 확인했습니다. 내가 terraform를 통해 얻을 적용
이 오류는 다음과 같습니다
/tmp/terraform_939984059.sh: 5: /tmp/terraform_939984059.sh: 10.239.12.181: not found
그래서 기본적으로 나는이 기계와 그것을 구성의 할 수 있도록 IP 목록을 전달됩니다 내 제공자 스크립트의 다음 킥을 만들려고합니다.
쉼표로 구분 된 문자열을 가져 와서 배열로 변환 한 다음 프로비저 스크립트로 전달할 때 꽤 이상하게 보입니다. 나는 그것이 당신이 그것을 문자열로 전달하기를 기대하기 때문에 기대되는 행동이 실제로 무엇인지를 100 % 확신하지는 못합니다. 너 정말 그 뜻 이니? 또는 쉼표를 공백으로 대체하는 것이 더 낫지 않습니까 ('replace() '사용)? – ydaetskcoR
우리는이 IP 주소를 우리 클러스터의 사육사 구성을 업데이트하는 bash 스크립트로 전달합니다. 문제는 bash 포맷으로 해결되었습니다. –