考虑到azurerm_linux_virtual_machine,
resource "azurerm_virtual_machine_extension" "postinstall" {
name = azurerm_linux_virtual_machine.privateeye.computer_name
virtual_machine_id = azurerm_linux_virtual_machine.privateeye.id
publisher = "Microsoft.Azure.Extensions"
type = "CustomScript"
type_handler_version = "2.0"
settings = << SETTINGS
{
"commandToExecute" : "/usr/sbin/postinstall.sh"
}当我摧毁它时,它会产生一个错误:
azurerm_virtual_machine_extension.postinstall: Destroying: [id=/subscriptions/55bee-aaa-445b-vd-420608165/resourceGroups/rg_PrivateEye/providers/Microsoft.Compute/virtualMachines/ollinger-vm-gitlabtemplate/extensions/ollinger-vm-gitlabtemplate]
compute.VirtualMachineExtensionsClient#Delete: Failure sending request: StatusCode=0 -- Original Error: autorest/azure: Service returned an error. Status=<nil> Code="OperationNotAllowed" Message="Cannot modify extensions in the VM when the VM is not running."发布于 2022-06-01 03:34:35
这是因为Terraform在关闭Linux时无法访问/查看Linux的扩展。
从Azure门户也可以看到同样的行为。如果关闭linux机器,则无法看到扩展、添加新扩展或卸载现有扩展。
若要解决此问题,请启动VM,然后再次运行破坏操作。
发布于 2022-06-08 21:53:59
这个问题的出现是因为VM是广义的,这意味着它不能再变成一个特定的实例了。因此我无法重新启动它。其中一个将泛化VM,以便生成一个磁盘映像,该映像可以保存在Azure磁盘库中,该库允许从自定义映像进行部署。
我唯一能做的就是删除Azure控制台中的VM。然后:
terraform destroy -auto-approve这使我当地的地形状态恢复到了Azure的状态。
https://stackoverflow.com/questions/72455053
复制相似问题