gpt4 book ai didi

terraform - 如何对多个实例使用 Terraform provisioner

转载 作者:行者123 更新时间:2023-12-05 02:11:57 25 4
gpt4 key购买 nike

我想创建 x 个实例并运行相同的配置器。

resource "aws_instance" "workers" {
ami = "ami-08d658f84a6d84a80"
count = 3
...
provisioner "remote-exec" {
scripts = ["setup-base.sh", "./setup-docker.sh"]
connection {
type = "ssh"
host = "${element(aws_instance.workers.*.public_ip, count.index)}"
user = "ubuntu"
private_key = file("${var.provisionKeyPath}")
agent = false
}
}

我认为 host 行混淆了 Terraform。获取 错误:周期:aws_instance.workers[2]、aws_instance.workers[1]、aws_instance.workers[0]

最佳答案

自从我升级了 terraform 版本(0.12)后,我遇到了和你一样的问题。

您需要为 connection 对象中的 host 属性使用 ${self.private_ip},并且 connection 对象应该位于 provisioner "remote-exec"

之外

详情如下。

resource "aws_instance" "workers" {
ami = "ami-08d658f84a6d84a80"
count = 3
...
connection {
host = "${self.private_ip}"
type = "ssh"
user = "YOUR_USER_NAME"
private_key = "${file("~/YOUR_PEM_FILE.pem")}"
}

provisioner "remote-exec" {
scripts = ["setup-base.sh", "./setup-docker.sh"]
}
...
}

如果您需要获取更多信息,下面的链接将为您提供帮助。 https://github.com/hashicorp/terraform/issues/20286

关于terraform - 如何对多个实例使用 Terraform provisioner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56750213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com