首页 > 解决方案 > azurerm_virtual_machine_extension - 在 azurerm_windows_virtual_machine 上计数不工作

问题描述

我有一个azurerm_virtual_machine_extension看起来像这样的部分

resource "azurerm_virtual_machine_extension" "InstallCts" {
  name                 = "Install_Cts"
  virtual_machine_id   = "${element(azurerm_windows_virtual_machine.myserver.*.id, count.index )}"
  publisher            = "Microsoft.Azure.Extensions"
  type                 = "CustomScript"
  type_handler_version = "2.0"

settings = <<SETTINGS
    {   
    "fileUris": [ "https://someurl_server.ps1}" ],
    "commandToExecute": "powershell someurl_server.ps1"
    }
SETTINGS


}

我不断收到以下错误消息

The "count" object can only be used in "module", "resource", and "data"
blocks, and only when the "count" argument is set.

azurerm_virtual_machine_extension可以很好地azurerm_windows_virtual_machine使用count还是不兼容?对此的任何帮助将不胜感激

标签: terraformterraform-provider-azure

解决方案


作为错误显示,您应该count在资源azurerm_virtual_machine_extension部分中定义。请注意,该扩展Microsoft.Azure.Extensions.CustomScript用于Linux VM 扩展,您可以像下面这样更改它以与 Windows VM 一起使用。

 resource "azurerm_virtual_machine_extension" "InstallCts" {
  count                = length(var.vm_names)              # specify here
  name                 = "Install_Cts"
  virtual_machine_id   = "${element(azurerm_windows_virtual_machine.rg.*.id, count.index )}"
 # publisher            = "Microsoft.Azure.Extensions"
 # type                 = "CustomScript"
 # type_handler_version = "2.0"

   publisher            = "Microsoft.Compute"
   type                 = "CustomScriptExtension"
   type_handler_version = "1.8"

settings = <<SETTINGS
    {   
    "fileUris": [ "https://someurl_server.ps1}" ],
    "commandToExecute": "powershell someurl_server.ps1"
    }
SETTINGS

}

例如,下面的命令适用于我在每个 VM 中添加一个 Web 服务器。 在此处输入图像描述


推荐阅读