如何查找给定 Azure VM 映像参考的计划和市场详细信息

问题描述 投票:0回答:1

我正在尝试使用 Terraform 提供程序部署

Suse Manager 4.3
Azure VM。但我不断收到如下错误。 我怀疑计划或市场协议是错误的。

Terraform 片段:

resource "azurerm_marketplace_agreement" "suse_agree" {
  publisher = "Suseirelandltd1692213356027"
  offer     = "manager-server-4-3-ltd-image"
  plan      = "payg"
}

resource "azurerm_linux_virtual_machine" "vm4susemanager" {
  name                = "vm01"
  location            = "westeurope"
  resource_group_name = "my-rg"
  # ..
  source_image_reference {
    publisher = "Suseirelandltd1692213356027"
    offer     = "manager-server-4-3-ltd-image"
    sku       = "gen2"
    #version   = "2023.11.27"
    version   = "latest"
  }

  plan {
    name = "payg"
    publisher = "Suseirelandltd1692213356027"
    product = "manager-server-4-3-ltd-image"
  }
  depends_on = [ azurerm_marketplace_agreement.suse_agree ]
}

错误:

│ Error: creating Linux Virtual Machine (Subscription: "XXX"
│ Resource Group Name: "XXX"
│ Virtual Machine Name: "XXX"): compute.VirtualMachinesClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="ResourcePurchaseValidationFailed" Message="User failed validation to purchase resources. Error message: 'The plan with ID 'payg' was not found. Try one of these: 1- Make sure the plan name is written correctly. 2- If this plan was recently created, allow up to 30 minutes for it to be available. 3- The subscription you're using is associated with Market IN which doesn't support this plan. Try using a different subscription. 4- The subscription/tenant you're using isn't part of the plan's private audience. Ask the offer publisher to add your subscription/tenant to the plan's private audience. subscription ID: XXX. Publisher ID: 'suseirelandltd1692213356027', Offer ID: 'manager-server-4-3-ltd-image', Plan ID: 'payg', Correlation ID: 'XXX'.'"

我尝试使用 Az Powershell cmdlet,但无法弄清楚这一点:

$pubName="Suseirelandltd1692213356027"
$locName="westeurope"
$offerName = "manager-server-4-3-ltd-image"
$skuName="gen2"

Get-AzVMImageOffer -Location $locName -PublisherName $pubName | Select Offer
Get-AzVMImageSku -Location $locName -PublisherName $pubName -Offer $offerName | Select Skus
Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Sku $skuName | Select Version

Get-AzMarketplaceTerms -Publisher "suseirelandltd1692213356027" -Product "manager-server-4-3-ltd-image" -Name "payg"
azure azure-powershell terraform-provider-azure
1个回答
0
投票

我正在尝试使用 Terraform 提供程序部署

Suse Manager 4.3
Azure VM。但我不断收到如下错误。

Failure sending request: StatusCode=400 -- Original Error: Code="ResourcePurchaseValidationFailed" Message="User failed validation to purchase resources. Error message: 'The plan with ID 'payg' was not found. Try one of these: 1- Make sure the plan name is written correctly. 2- If this plan was recently created, allow up to 30 minutes for it to be available. 3- The subscription you're using is associated with Market IN which doesn't support this plan. Try using a different subscription. 4- The subscription/tenant you're using isn't part of the plan's private audience. Ask the offer publisher to add your subscription/tenant to the plan's private audience. subscription ID: XXX. Publisher ID: 'suseirelandltd1692213356027', Offer ID: 'manager-server-4-3-ltd-image', Plan ID: 'payg', Correlation ID: 'XXX'.'"

您遇到的上述错误是因为您传递了错误的 publisheroffer Suse Manager 4.3 详细信息。

在代码中,您将使用 publisher“Suseirelandltd1692213356027”传递版本

5.5
,并提供“manager-server-4-3-ltd-image”(“manager-server-4-3-byos”)。

以下是 Suse Manager 4.3 的正确详细信息。

publisher  =  "suse"
offer  =  "manager-server-4-3-byos"
sku  =  "gen2"
version  =  "latest"

南苏4.3

enter image description here

南苏5.5

enter image description here

Terraform 代码

provider "azurerm" {
  features {}
  tenant_id = ""
}
data "azurerm_resource_group" "example" {
  name = "venkat"
}
resource "azurerm_marketplace_agreement" "suse_agree" {
  publisher = "suse"
  offer     = "manager-server-4-3-byos"
  plan      = "payg"
}
resource "azurerm_virtual_network" "example" {
  name                = "example-network1"
  address_space       = ["10.0.0.0/16"]
  location            = data.azurerm_resource_group.example.location
  resource_group_name = data.azurerm_resource_group.example.name
}

resource "azurerm_subnet" "example" {
  name                 = "internal1"
  resource_group_name  = data.azurerm_resource_group.example.name
  virtual_network_name = azurerm_virtual_network.example.name
  address_prefixes     = ["10.0.2.0/24"]
}

resource "azurerm_network_interface" "example" {
  name                = "example-nic1"
  location            = data.azurerm_resource_group.example.location
  resource_group_name = data.azurerm_resource_group.example.name

  ip_configuration {
    name                          = "internal1"
    subnet_id                     = azurerm_subnet.example.id
    private_ip_address_allocation = "Dynamic"
  }
}

resource "azurerm_linux_virtual_machine" "example" {
  name                = "susu-linuxmachine1"
  resource_group_name = data.azurerm_resource_group.example.name
  location            = data.azurerm_resource_group.example.location
  size                = "Standard_D2s_v3"  
  admin_username      = "adminuser"
  network_interface_ids = [
    azurerm_network_interface.example.id,
  ]

  admin_ssh_key {
    username   = "adminuser"
    public_key = file("~/.ssh/id_rsa.pub")
  }

  os_disk {
    caching              = "ReadWrite"
    storage_account_type = "Standard_LRS"
  }

  source_image_reference {
    publisher = "suse"
    offer     = "manager-server-4-3-byos"
    sku       = "gen2"
    version   = "latest"
  }
  depends_on = [ azurerm_marketplace_agreement.suse_agree ]
}

输出:

enter image description here

Suse Manager 4.3

Azure VM
已成功创建。

enter image description here

参考:私有 Azure 市场价值和优势

© www.soinside.com 2019 - 2024. All rights reserved.