来自本地脚本的 Terraform Azure VM 扩展自定义脚本

时间:2021-03-30 07:45:06

标签: azure powershell azure-powershell terraform-provider-azure

我正在尝试通过 Terraform 部署带有 VM 扩展的 Azure Windows VM,该扩展将为 Windows VM 安装 ADDS 角色。

我有一个用于安装的 Powershell 脚本文件,名为 install_adds.ps1,来自我的本地机器

VM Extension 的 Terraform 文件如下:

resource "azurerm_virtual_machine_extension" "main" {
  name                 = "extensionTest"
  virtual_machine_id   = azurerm_virtual_machine.main.id
  publisher            = "Microsoft.Azure.Extensions"
  type                 = "CustomScript"
  type_handler_version = "2.0"

  settings = <<SETTINGS
    {
        "commandToExecute": "powershell.exe ./install_adds.ps1"
    }
SETTINGS
}

我已经部署了 VM 扩展 Terraform 文件,但无法正常工作

我认为我的 Terraform 文件语法错误,Windows 无法运行我的 PowerShell 脚本。

任何方式都可以通过 Terraform VM 扩展文件运行我的本地 PowerShell 脚本?

1 个答案:

答案 0 :(得分:0)

根据您发布的架构,您可能正在尝试在基于 Windows 的 VM 上部署错误的客户脚本扩展(Linux VM 的 CSE)。

以下扩展架构说明了您可以根据操作系统使用的内容:

Linux

"publisher": "Microsoft.Azure.Extensions",
"type": "CustomScript",
"typeHandlerVersion": "2.1",

Windows

    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.10",

您在 Windows 上使用过:

publisher            = "Microsoft.Azure.Extensions"
type                 = "CustomScript"
type_handler_version = "2.0"