azure - 如何使用 Terraform 将多个数据磁盘添加到多个 Azure VM

标签 azure terraform

如何将多个数据添加到多个 Azure 虚拟机。我正在使用 MAP 和 For_each 创建虚拟机,因此无法使用 Count。下面是我的虚拟机代码。

因此所有虚拟机都有 2 个 120 GB 大小的数据磁盘。

disk_count = 2
disk_size = 120

    vm_names = {
    testvm = "10.0.1.5",
    testvm2 = "10.0.1.6"

}

    resource "azurerm_virtual_machine" "terraform_windows" {
    for_each =                        var.vm_names
    name                           =  each.key
    location                       =  var.location
    resource_group_name            =  data.azurerm_resource_group.Resource_group.name
    network_interface_ids          =  ["${azurerm_network_interface.az_nic[each.key].id}"]
    vm_size                        =  var.vm_size
    delete_os_disk_on_termination  =   true
    delete_data_disks_on_termination = true

    storage_image_reference {
    publisher = var.OS_win["publisher"]
    offer     = var.OS_win["offer"]
    sku       = var.OS_win["sku"]
    version   = "latest"
  }

    storage_os_disk {
    name              = "${each.key}_OSdisk"
    caching           = "ReadWrite"
    create_option     = "FromImage"
    managed_disk_type = var.hdd_type
    os_type           = var.os_type
    disk_size_gb = "127" 
  }

    os_profile {
    computer_name  = each.key
    admin_username = "azureadmin"
    admin_password = "Azurecloud@321$%"
  }

    os_profile_windows_config {
    enable_automatic_upgrades = true
    provision_vm_agent = true
  }
 
  }

最佳答案

您可以使用dynamic blocks :

 dynamic "storage_os_disk" {

    for_each = range(var.disk_count)

    content {
      name              = "${storage_os_disk.key}_OSdisk"
      caching           = "ReadWrite"
      create_option     = "FromImage"
      managed_disk_type = var.hdd_type
      os_type           = var.os_type
      disk_size_gb = "127" 
  }
}

关于azure - 如何使用 Terraform 将多个数据磁盘添加到多个 Azure VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71250131/

相关文章:

azure - 如何指定 'Azure SQL Publish'任务SQL脚本?

c# - Azure 离线同步

amazon-web-services - 未找到 Terraform AWS Provider 的有效凭证来源

azure - 我可以使用 Terraform 恢复备份的 Azure 虚拟机吗?

azure - Terraform Cloud 无法在 Azure 中国订阅中部署资源

python - 如何从 Azure IoT Edge 模块 Python 发送新消息

azure - 如何从队列中获取错误消息的数量

c# - 如何设置 Azure Functions 的 MaxReceivedMessageSize

amazon-web-services - 如何在用户数据中重新启动后运行多个 PowerShell 命令?

terraform - 是否可以将 terraform 工作区链接到 AWS 账户