You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform在Azure VM运行Ansible配置脚本时遇VMExtension报错

解决Azure Windows VM自定义脚本扩展执行Ansible配置脚本失败的问题

你遇到的VMExtensionProvisioningError错误,根源在于CustomScriptExtension的配置存在几个关键问题,导致脚本未正确执行:

  • 错误的脚本URL:你使用的GitHub链接是网页展示地址(blob页面),而非脚本的原始下载地址。CustomScriptExtension会下载这个网页而非实际的PowerShell脚本,自然无法正常执行。
    替换为GitHub原始文件URL:https://raw.githubusercontent.com/ansible/ansible-documentation/devel/examples/scripts/ConfigureRemotingForAnsible.ps1

  • 过时的扩展版本:type_handler_version = "1.9"版本较旧,存在兼容性风险,建议更新到最新稳定版本(如1.10)。

  • 脚本路径引用问题:CustomScriptExtension下载的文件会存放在默认工作目录,直接使用./可能导致路径识别异常,简化命令直接引用文件名即可。

修正后的Terraform配置代码

resource "azurerm_virtual_machine_extension" "configansible" {
  name                 = "configansible"
  virtual_machine_id   = azurerm_windows_virtual_machine.onboarding.id
  publisher            = "Microsoft.Compute"
  type                 = "CustomScriptExtension"
  type_handler_version = "1.10"

  settings = <<SETTINGS
{
  "fileUris": [
    "https://raw.githubusercontent.com/ansible/ansible-documentation/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
  ],
  "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File ConfigureRemotingForAnsible.ps1"
}
SETTINGS
}

额外排查建议

如果修正后仍报错,可通过以下方式定位问题:

  • 登录目标VM,查看扩展日志文件:C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension
  • 手动在VM上执行脚本,确认脚本本身是否存在依赖缺失或权限问题

内容的提问来源于stack exchange,提问作者Norbert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 20:11:01