gpt4 book ai didi

azure - 在 Terraform 中定义 Azure VM CustomScriptExtension (预期状态 'Element' ..遇到 'Text' ,名称 '' ,命名空间 '' 。\".")

转载 作者:行者123 更新时间:2023-12-03 00:51:13 25 4
gpt4 key购买 nike

我在 Terraform 中为 Azure VM 定义了 CustomScriptExtension:

resource "azurerm_virtual_machine_extension" "test" {
name = "WinRM"
location = "South Central US"
resource_group_name = "${azurerm_resource_group.test.name}"
virtual_machine_name = "${azurerm_virtual_machine.test.name}"
publisher = "Microsoft.Compute"
type = "CustomScriptExtension"
type_handler_version = "1.8"

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

}

但是我得到了(在 VM 扩展中的 Azure 门户中可以看到相同的错误):

azurerm_virtual_machine_extension.test: compute.VirtualMachineExtensionsClient#CreateOrUpdate: Failure sending request: StatusCode=200 -- Original Error: Long running operation terminated with status 'Failed': Code="VMExtensionProvisioningError" Message="VM has reported a failure when processing extension 'WinRM'. Error message: \"Invalid handler configuration. Exiting. Error Message: Expecting state 'Element'.. Encountered 'Text' with name '', namespace ''. \"."

Azure deployment 执行相同的参数工作没有问题(相关摘录如下):

"fileUris": {
"type": "string",
"defaultValue": "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1",
"metadata": {
"description": "The uri list of files. Split by a space."
}
},
"settings": {
"fileUris": "[split(parameters('fileUris'), ' ')]",
"commandToExecute": "[parameters('commandToExecute')]"
}

我错过了什么,还是 Terraform 中的错误?

<小时/>

一些调试:

  • 如果我将设置替换为:

    {
    "commandToExecute": "mkdir C:\\Test"
    }

    目录已创建,因此问题出在 fileUris 上。

  • 如果我将设置 JSON 中的 fileUris 替换为 fileUri (这应该是错误的):

    {
    "fileUri": "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1",
    "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File ConfigureRemotingForAnsible.ps1"
    }

    没有遇到名称为“”、命名空间“”的“文本”。\". 错误,powershell.exe 触发并报告缺少 ConfigureRemotingForAnsible.ps1

最佳答案

Error message: \"Invalid handler configuration. Exiting. Error Message: Expecting state 'Element'.. Encountered 'Text' with name '', namespace ''. \"."

据我所知,fileUris的值类型应该是数组,我已经使用Azure部署对其进行了测试,如果我配置fileUris作为字符串值,那么我可能会得到与您提供的相同的错误。

enter image description here

更新

fileUris 应如下所示:

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

关于azure - 在 Terraform 中定义 Azure VM CustomScriptExtension (预期状态 'Element' ..遇到 'Text' ,名称 '' ,命名空间 '' 。\"."),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42310382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com