Terraform Azure虚拟机扩展执行报错,调整配置后问题仍存在
问题分析与解决方案
你的报错核心是JSON配置语法错误,导致扩展无法解析配置。具体问题和修正如下:
1. JSON格式错误
你的settings中的JSON存在两个关键问题:
fileUris字段要求是数组类型(即使只有一个URL),而你写成了单个字符串fileUris行末尾缺少逗号,破坏了JSON结构
2. 修正后的Terraform配置
resource "azurerm_virtual_machine_extension" "main" { name = "vm12345" virtual_machine_id = azurerm_virtual_machine.main.id publisher = "Microsoft.Azure.Extensions" type = "CustomScript" type_handler_version = "2.0" settings = <<SETTINGS { "fileUris": ["https://www.githubprogrammercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"], "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File ConfigureRemotingForAnsible.ps1" } SETTINGS }
3. 额外检查点
- 确认虚拟机能够访问
fileUris中的URL:检查VM的NSG规则、路由表是否允许出站HTTPS访问 - 验证
publisher和type的正确性:Microsoft.Azure.Extensions的CustomScript扩展确实支持Windows VM的PowerShell脚本执行 - 确保
type_handler_version与扩展版本兼容:2.0版本是稳定兼容的版本
内容的提问来源于stack exchange,提问作者user19742296
相关产品推荐
相关产品推荐

