首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >azurerm_virtual_machine_extension在Linux上破坏

azurerm_virtual_machine_extension在Linux上破坏
EN

Stack Overflow用户
提问于 2022-05-31 23:32:33
回答 2查看 65关注 0票数 0

考虑到azurerm_linux_virtual_machine,

代码语言:javascript
复制
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"
  }

当我摧毁它时,它会产生一个错误:

代码语言:javascript
复制
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."
EN

回答 2

Stack Overflow用户

发布于 2022-06-01 03:34:35

这是因为Terraform在关闭Linux时无法访问/查看Linux的扩展。

从Azure门户也可以看到同样的行为。如果关闭linux机器,则无法看到扩展、添加新扩展或卸载现有扩展。

若要解决此问题,请启动VM,然后再次运行破坏操作。

票数 1
EN

Stack Overflow用户

发布于 2022-06-08 21:53:59

这个问题的出现是因为VM是广义的,这意味着它不能再变成一个特定的实例了。因此我无法重新启动它。其中一个将泛化VM,以便生成一个磁盘映像,该映像可以保存在Azure磁盘库中,该库允许从自定义映像进行部署。

我唯一能做的就是删除Azure控制台中的VM。然后:

代码语言:javascript
复制
terraform destroy -auto-approve

这使我当地的地形状态恢复到了Azure的状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72455053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档