【问题标题】:Terraform Azure Virtual Machine from Shared Image Gallery来自共享映像库的 Terraform Azure 虚拟机
【发布时间】:2021-07-29 19:25:24
【问题描述】:

我的 Azure 共享图像库 (myGallery) 中有一张图像,名称为 myImage,版本为 1.0.0

我正在尝试通过 Terraform 为图库中的此图像创建一个虚拟机,但收到以下错误:

错误:创建 Linux 虚拟机“testingvm”(资源组“myrg”):compute.VirtualMachinesClient#CreateOrUpdate:发送请求失败:StatusCode=0 -- 原始错误:Code="InvalidParameter" Message="Parameter 'osProfile'不允许。”目标="osProfile"

  • Azure CLI 版本: 2.26.1
  • Terraform 版本: 1.0.0
  • Azure Terraform 提供程序版本: 2.69.0

我的虚拟机 Terraform 如下所示:

resource "azurerm_linux_virtual_machine" "testingvm" {
  name                        = "testingvm"
  resource_group_name         = var.resource_group_name
  location                    = var.location

  size                        = "Standard_D2s_v4"
  network_interface_ids       = [azurerm_network_interface.testingvm.id]

  admin_username              = "azureuser"

  source_image_id             = "/subscriptions/MY_SUBSCRIPTION/resourceGroups/myrg/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0"

  os_disk {
    name                      = "testingvm-os"
    caching                   = "ReadWrite"
    storage_account_type      = "Premium_LRS"
  }

  admin_ssh_key {
    username                  = "azureuser"
    public_key                = module.vm_key_pair.pair_key_pub_value_openssh
  }
}

我尝试使用这两种方法都没有运气(我相信后者是推荐的方法):

我也尝试引用this Stack Overflow entry,但没有任何运气。

我在这里做错了什么?


又一次尝试

我也试过用这个:

source_image_reference {
  publisher                 = "myPublisher"
  offer                     = "myOffer"
  sku                       = "mySKU"
  version                   = "1.0.0"
}

查看此输出后,identifier 块吐出匹配参数:

az sig image-definition show \
  --gallery-image-definition myImage \
  --gallery-name myGallery
  --resource-group myrg

结果:

错误:创建 Linux 虚拟机“testingvm”(资源组“myrg”):compute.VirtualMachinesClient#CreateOrUpdate:发送请求失败:StatusCode=0 -- 原始错误:Code="PlatformImageNotFound" Message="The platform image ' myPublisher:myOffer:mySKU:1.0.0' 不可用。请验证存储配置文件中的所有字段是否正确。有关存储配置文件信息的更多详细信息,请参阅https://aka.ms/storageprofile"Target="imageReference"

【问题讨论】:

标签: azure azure-cli


【解决方案1】:

感谢@KyleHale,我能够解决这个问题:

resource "azurerm_virtual_machine" "testingvm" {
  name                        = "testingvm"
  resource_group_name         = var.resource_group_name
  location                    = var.location

  vm_size                     = "Standard_D2s_v4"
  network_interface_ids       = [azurerm_network_interface.testingvm.id]

  storage_image_reference {
    id = "THE_ID_I_LISTED_BEFORE"
  }

  storage_os_disk {
    name                      = "testingvm-os"
    caching                   = "ReadWrite"
    create_option             = "FromImage"
    managed_disk_type         = "Standard_LRS"
  }
}

【讨论】:

    猜你喜欢
    • 2016-02-10
    • 2014-06-13
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    相关资源
    最近更新 更多