【发布时间】:2018-08-14 08:11:48
【问题描述】:
我正在尝试在我的 terraform 执行中使用以下内容:
resource "azurerm_virtual_machine_extension" "vmex" {
name = "myVM"
location = "eastus"
resource_group_name = "${azurerm_resource_group.rg.name}"
virtual_machine_name = "${azurerm_virtual_machine.vm.name}"
publisher = "Microsoft.Compute"
type = "CustomScriptExtension"
type_handler_version = "1.9"
settings = <<SETTINGS
{
"fileUris": [
"https://example.com/scripts/test.ps1"
],
"commandToExecute": "powershell -ExecutionPolicy Unrestricted -File 'test.ps1'"
}
SETTINGS
}
当它执行时,我得到以下输出:
错误:应用计划时出错:
发生了 1 个错误:
azurerm_virtual_machine_extension.vmex:发生 1 个错误:
azurerm_virtual_machine_extension.vmex:长时间运行的操作以状态“失败”终止:代码=“VMExtensionProvisioningError”消息=“处理扩展“myVM”时VM 报告失败。错误消息:“已完成执行命令” 。”
Terraform 在遇到错误时不会自动回滚。 相反,您的 Terraform 状态文件已部分更新为 任何成功完成的资源。请解决错误 并再次申请以逐步更改您的基础架构。
当我 RDP 进入 VM 时,我可以看到该文件已正确下载到它应该在的位置,但是,似乎 commandToExecute 从未执行过。
如果我直接从下载文件夹运行脚本,它会成功完成。
任何人都可以就如何解决这个问题提供任何建议吗?
注意:我尝试了各种尝试引用文件的组合,但所有组合似乎都有相同的结果。
更新:按照 cmets 中的建议检查日志后,尝试运行此 sn-p 时的错误是:
"message": "处理 -File ''test.ps1'' 失败,因为该文件没有 '.ps1' 扩展名。请指定有效的 Windows PowerShell 脚本文件名,然后重试。"
【问题讨论】:
标签: azure terraform terraform-provider-azure