AWS에서 Terraform을 사용하여 Docker Swarm 클러스터를 구축하려고합니다. Swarm 관리자가 성공적으로 시작되었지만 관리자 (관리자 뒤에 생성 됨)에 조인 키를 전달하는 최선의 방법을 찾으려고합니다.Terraform이 remote_exec 명령에서 변수를 설정할 수 있습니까?
Terraform 변수로 설정할 수있는 docker swarm join-token worker -q
명령을 실행하고 싶습니다. 그렇게하면 worker는 다음과 같은 remote_exec 명령을 가질 수 있습니다. docker swarm join ${var.swarm_token} ${aws_instance.swarm-manager.private_ip}
어떻게하면됩니까?
내 설정은 다음과 같습니다 :
resource "aws_instance" "swarm-manager" {
ami = "${var.manager_ami}"
instance_type = "${var.manager_instance}"
tags = {
Name = "swarm-manager${count.index + 1}"
}
provisioner "remote-exec" {
inline = [
"sleep 30",
"docker swarm init --advertise-addr ${aws_instance.swarm-manager.private_ip}"
"docker swarm join-token worker -q" // This is the value I want to store as a variable/output/etc
]
}
}
감사
그래, 나는 모든 것을 피하기를 바랐다. Ho hum. Anabilities를 사용하면 스크립트보다 프로비저닝을 더 잘 수행 할 수 있다고 생각합니다. – RiggerTheGeek
여기에있는 Vagrant/Docker/Centos 이미지에서 통일 된 프로비저닝을 시도했습니다. 격렬한 작은 차이점이 많습니다. – Adrian