Terraform условно, если в for_each - PullRequest
0 голосов
/ 12 марта 2020

У меня есть следующий код, использующий for_each для перебора отображаемых значений:

resource "null_resource" "win_vm" {
  for_each = var.vms_to_image
  provisioner "remote-exec" {
    connection {
    type     = "winrm"
    https    = true
    insecure = true
    user     = var.vm_username
    password = random_password.vm_password.result
    host     = element(azurerm_windows_virtual_machine.win_vm.*.public_ip_address, each.value)
    use_ntlm = true
    }

    inline = [
      "ipconfig"
    ]
  }
}

Это прекрасно работает и создает соединение WinRM для каждой машины, к которой мне нужно подключиться.

Как я могу включить этот ресурс как условный? Что-то вроде if var.create_vm_images == "Yes" then for_each = var.vms_to_image

Я использовал для этого счетчик, но хотел, чтобы он работал с for_each, поскольку он сохраняет значение переменной map.

1 Ответ

0 голосов
/ 12 марта 2020

Это работает:

for_each = var.create_vm_images ? var.vms_to_image : {}

...