Linux
Terraform 中的 random_pet:錯誤:循環:
我正在嘗試為幾台伺服器生成隨機主機名。但是,當執行 terraform apply 時,我收到一條錯誤消息“錯誤:循環: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" } }
Ans 這是我得到的錯誤:
terraform apply --var-file=prd/prd.tfvars Error: Cycle: random_pet.swm01_managers, hcloud_server.swm01_managers
這兩個資源通過插值其他屬性相互引用,因此 Terraform 無法確定需要先創建哪個資源。
Terraform 無法創建隨機主機名,因為它需要伺服器的 ID,並且它無法創建伺服器,因為它需要它們的隨機主機名。
你需要打破循環依賴才能讓它工作,我想說的是讓隨機主機名不依賴於伺服器 ID。