我正在尝试使用 Terraform 提供程序部署
Suse Manager 4.3
Azure VM。但我不断收到如下错误。
我怀疑计划或市场协议是错误的。
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"
我正在尝试使用 Terraform 提供程序部署
Azure VM。但我不断收到如下错误。Suse Manager 4.3
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'.'"
您遇到的上述错误是因为您传递了错误的 publisher 和 offer 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
南苏5.5
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 ]
}
输出:
Suse Manager 4.3
Azure VM
已成功创建。