我想从社区映像创建虚拟机,但在 https://registry.terraform.io/providers/hashicorp/azurerm
中找不到任何信息任何人都可以分享有关如何从社区映像创建虚拟机的任何信息吗?
这是我到目前为止所尝试的,似乎没有任何效果。
variable "source_image_id_backbox" {
default = "westeurope/BackBox-39ccaf4b-e81f-4250-a8f4-e32bc23a8312/BackBox/versions/latest"
0225a84c1f4c/resourceGroups/AviatrixPlayground-Mgmt/providers/Microsoft.Compute/disks/pg-backbox_OsDisk_1_e19ed152086b4953807aea9a5d81cd94"
source_image_id = "/subscriptions/MY_SUBSCRIPTION/resourceGroups/myrg/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0"
}
resource "azurerm_network_interface" "azweu_backbox_crp_nic" {
name = "azweu-backbox-crp-nic"
location = azurerm_resource_group.servers.location
resource_group_name = azurerm_resource_group.servers.name
ip_configuration {
name = "internal"
subnet_id = azurerm_subnet.servers_subnet_payload.id
private_ip_address_allocation = "Dynamic"
}
tags = var.azweu_servers_tags
}
data "azurerm_image" "azweu-backbox-crp" {
name = "BackBox"
location = azurerm_resource_group.servers.location
resource_group_name = azurerm_resource_group.servers.name
}
resource "azurerm_linux_virtual_machine" "azweu_backbox_crp_vm" {
name = "azweu-backbox-crp"
computer_name = "azweu-backbox-crp"
location = azurerm_resource_group.servers.location
resource_group_name = azurerm_resource_group.servers.name
zone = "1"
network_interface_ids = [azurerm_network_interface.azweu_backbox_crp_nic.id]
size = "Standard_D2lds_v5"
admin_username = "backbox"
disable_password_authentication = true
admin_ssh_key {
username = "admin"
public_key = servers_ssh_public_key
}
os_disk {
name = "azweu-backbox-crp-os-disk"
caching = "ReadWrite"
create_option = "FromImage"
storage_account_type = "Premium_LRS"
disk_size_gb = 100
}
source_image_id = var.source_image_id_backbox
lifecycle {
ignore_changes = [
admin_ssh_key,
]
}
tags = var.azweu_servers_tags
}
来自图库图像的 Terraform Azure 虚拟机。
评论中提到的错误表明您提供的
source_image_id
的格式与 Azure 中社区图库图像 ID 的预期格式不匹配。 Azure 要求这些 ID 具有特定的格式,而您的 ID 似乎大小写不正确,并且可能缺少部分。
source_image_id = "/communityGalleries/backboxGallery/images/backboxImage"
要使用图库图像创建 VM,请尝试将安全类型设置为标准。
我尝试使用正确的语法从图库图像创建虚拟机的演示版本,并且能够成功配置要求。
我的地形配置:
provider "azurerm" {
features {}
}
variable "subscription_id" {
default = "Subscription_ID"
}
variable "admin_password" {
default = "Password"
}
resource "azurerm_resource_group" "example" {
name = "sbvk-rg"
location = "East US"
}
resource "azurerm_virtual_network" "example" {
name = "testvk-network"
address_space = ["10.0.0.0/16"]
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
}
resource "azurerm_subnet" "example" {
name = "internal-subnet"
resource_group_name = 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 = "testvk-nic"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
ip_configuration {
name = "internal"
subnet_id = azurerm_subnet.example.id
private_ip_address_allocation = "Dynamic"
}
}
resource "azurerm_linux_virtual_machine" "example" {
name = "testvk-vm"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
size = "Standard_D2s_v3"
network_interface_ids = [azurerm_network_interface.example.id]
admin_username = "Vinayadmin"
admin_password = "yourpassword"
disable_password_authentication = "false"
os_disk {
name = "testvmosdisk"
caching = "ReadWrite"
storage_account_type = "Standard_LRS"
}
source_image_id = "/subscriptions/${var.subscription_id}/resourcegroups/vinay-rg/providers/Microsoft.Compute/galleries/testvkgallery/images/vkvmdef/versions/0.0.1"
}
部署成功:
参考:
azurerm_linux_virtual_machine |资源 | Hashicorp/azurerm |地形 | Terraform 注册表