我尝试使用 Terraform 在 Azure VM 上运行来自 GitHub 的 Ansible conf Powershell 文件,但出现以下错误。
错误信息:
Code="VMExtensionProvisioningError" Message="VM 在处理扩展“configansible”(发布者“Microsoft.Compute”并键入 '自定义脚本扩展')。错误消息:“已完成执行命令”。有关故障排除的更多信息,请访问 https://aka.ms/VMExtensionCSEWindowsTroubleshoot。 ”
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.9"
settings = <<SETTINGS
{
"fileUris": [
"https://github.com/ansible/ansible-documentation/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
],
"commandToExecute": "powershell.exe -executionpolicy Unrestricted -file ./ConfigureRemotingForAnsible.ps1"
}
SETTINGS
}
错误消息表明问题可能与
PowerShell script
或其执行方式有关。
要解决此问题,您可以尝试以下步骤。
PowerShell
访问 GitHub
脚本。Architect Jamie
这是使用 Terraform 部署的
VM
扩展从存储帐户创建一个包含文本文件的文件夹的脚本。
provider "azurerm" {
features {}
}
data "azurerm_virtual_machine" "example" {
name = "sample-vm"
resource_group_name = "Venkat"
}
resource "azurerm_virtual_machine_extension" "configansible" {
name = "configansible"
virtual_machine_id = data.azurerm_virtual_machine.example.id
publisher = "Microsoft.Compute"
type = "CustomScriptExtension"
type_handler_version = "1.9"
settings = <<SETTINGS
{
"fileUris": [
"https://xxxxxxx.blob.core.windows.net/script/powershell.ps1"
],
"commandToExecute": "powershell.exe -executionpolicy Unrestricted -file ./powershell.ps1"
}
SETTINGS
}
虚拟机扩展:
运行脚本后VM
扩展已安装在虚拟机上。
PowerShell
脚本已成功在
VM
上执行。