我试图为几个服务器生成随机主机名。然而,当运行terraform应用程序时,我会收到一条错误消息:" error : random_pet.swm01_managers,hcloud_server.swm01_managers“。
这就是我想要做的:
variable "swm01_managers_count" {
default = 5
}
# ─── CREATE RANDOM SERVER HOSTNAMES ─────────────────────────────────────────────
resource "random_pet" "swm01_managers" {
count = "${var.swm01_managers_count}"
keepers = {
id = "${hcloud_server.swm01_managers[count.index].id}"
}
}
# ─── CREATE DOCKER SWARM MANAGER NODES ──────────────────────────────────────────
resource "hcloud_server" "swm01_managers" {
count = "${var.swm01_managers_count}"
name = "${random_pet.swm01_managers[count.index]}"
image = "ubuntu-18.04"
server_type = "cx11"
ssh_keys = "${var.ssh_keys}"
labels = {
"env" = "prd"
"docker_swarm_role" = "manager"
}
}这是我得到的错误:
terraform apply --var-file=prd/prd.tfvars
Error: Cycle: random_pet.swm01_managers, hcloud_server.swm01_managers发布于 2019-08-16 10:50:04
这两个资源是相互引用的,通过插值其他属性,因此Terraform无法确定需要先创建哪个。
Terraform不能创建随机主机名,因为它需要服务器的ID,而不能创建服务器,因为它需要它们的随机主机名。
您需要打破循环依赖才能工作,我想说的是,通过使随机主机名不依赖于服务器ID。
https://serverfault.com/questions/979230
复制相似问题