私はAWSでTerraformを使用してDocker Swarmクラスタを構築しようとしています。私はSwarmマネージャーを始めて成功裏に開始しましたが、(マネージャーの後に作成される)作業者に結合キーをどのように渡すのが最善かを試してみようとしています。Terraformはremote_execコマンドから変数を設定できますか?
私はTerraform変数に設定できるdocker swarm join-token worker -q
コマンドを何らかの方法で実行したいと思います。そうすれば、労働者は次のような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
]
}
}
おかげ
ええ、私はそれをすべて避けることを望んでいました。ホーハム。 おそらくAnabilitiesを使うとスクリプトよりもプロビジョニングが良くなると思います – RiggerTheGeek
ここでは、Vagrant/Docker/Centosの画像で働いていた統一されたプロビジョニングを思いつきました。 – Adrian