首页 > 解决方案 > Creating Neo4j vm Terraform Message="从 Marketplace 镜像创建虚拟机需要请求中的 Plan 信息

问题描述

我用于从市场创建 Vm 的脚本给出错误错误:代码 =“VMMarketplaceInvalidInput”消息 =“从市场映像创建虚拟机需要请求中的计划信息。VM:'/subscriptions/bc8afca8-32ba-48ac-b418-77de827c2bc1 /resourceGroups/NexxeNeo4j-rg/providers/Microsoft.Compute/virtualMachines/NexxeNeo4j4'。”

provider "azurerm" {
subscription_id = "**************************************"
   features {}
}
# Use existing resource group 
data "azurerm_resource_group" "gepgroup1" {
    name     = "NexxeNeo4j-rg"
}

# Use Existing virtual network
data "azurerm_virtual_network" "gepnetwork1" {
    name                = "DEVRnD"
    resource_group_name = "RnDdev"
}

# Use Existing subnet
data "azurerm_subnet" "gepsubnet" {
    name                 = "subnet"
    resource_group_name  = "RnDdev"
    virtual_network_name = data.azurerm_virtual_network.gepnetwork1.name
}


# Create public IPs NexxeNeo4j
resource "azurerm_public_ip" "geppublicip2" {
    name                         = "NexxeNeo4jPublicIP"
    location                     = "eastus"
    resource_group_name          = "NexxeNeo4j-rg"
    allocation_method            = "Dynamic"

    tags = {
        environment = "Dev-Direct"
    }
}

# Create network interface NexxeNeo4j2
resource "azurerm_network_interface" "gepnic3" {
    name                      = "NexxeNeo4jNIC"
    location                  = "eastus"
    resource_group_name       = "NexxeNeo4j-rg"


    ip_configuration {
        name                          = "NexxeNeo4jConfiguration"
        subnet_id                     = data.azurerm_subnet.gepsubnet.id
        private_ip_address_allocation = "Dynamic"
        public_ip_address_id          = azurerm_public_ip.geppublicip2.id
    }

    tags = {
        environment = "Dev-Direct"
    }
}

# Create virtual machine NexxeNeo4j
resource "azurerm_virtual_machine" "gepvm4" {
    name                  = "NexxeNeo4j"
    location              = "eastus"
    resource_group_name   = "NexxeNeo4j-rg"
    network_interface_ids = [azurerm_network_interface.gepnic3.id]
    vm_size               = "Standard_DS3_v2" 
        plan {
        name= "neo4j_3_5_13_apoc"
        publisher= "neo4j"
        product= "neo4j-enterprise-3_5"
    }
    storage_os_disk {
        name              = "NexxeNeo4j_OsDisk"
        caching           = "ReadWrite"
        create_option     = "FromImage"
        managed_disk_type = "Premium_LRS"
    }

  storage_image_reference {
        publisher = "neo4j"
        offer     = "neo4j-enterprise-3_5"
        sku       = "neo4j_3_5_13_apoc"
        version   = "3.5.13"
    }


    os_profile {
        computer_name  = "NexxeNeo4j"
        admin_username = "gep"
        admin_password = "Nexxegep#07066"
    }
    os_profile_linux_config {
    disable_password_authentication = false
  }

    tags = {
        environment = "Dev-Direct"
    }
}

标签: azureneo4jterraformterraform-provider-azureazure-marketplace

解决方案


我在 Azure 云外壳中尝试了您的配置文件。它确实有效,只是我需要在再次运行之前运行这些 Powershell 命令以接受法律条款terraform apply

Get-AzMarketplaceTerms -Publisher neo4j -Product neo4j-enterprise-3_5 -Name neo4j_3_5_13_apoc | Set-AzMarketplaceTerms -Accept

我建议删除 terraform.tfstate terraform.tfstate.backup文件并运行 terraform init,计划,再次申请。


推荐阅读