将azurerm_virtual_machine与trusted_launch结合使用

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

由于 https://github.com/hashicorp/terraform-provider-azurerm/issues/6117,我必须使用 azurerm_virtual_machine 来创建我想要的机器。

不幸的是,使用的图像需要可信启动,我找不到任何配置选项。

这可能吗,还是我被迫使用 az_api 来代替?

azure terraform terraform-provider-azure
1个回答
0
投票

这里是使用 azurerm 模块创建具有

Trusted Launch
配置的 虚拟机Terraform 脚本。对于Azapi,请参阅MS Doc

provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "venkat" {
  name     = "terraform1-resources"
  location = "East US"
}

resource "azurerm_virtual_network" "venkat" {
  name                = "example-network"
  resource_group_name = azurerm_resource_group.venkat.name
  location            = azurerm_resource_group.venkat.location
  address_space       = ["10.0.0.0/16"]
  depends_on = [ azurerm_resource_group.venkat ]
}

resource "azurerm_subnet" "venkat" {
  name                 = "example-subnet"
  resource_group_name  = azurerm_resource_group.venkat.name
  virtual_network_name = azurerm_virtual_network.venkat.name
  address_prefixes     = ["10.0.1.0/24"]
  depends_on = [ azurerm_virtual_network.venkat ]
}

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

  ip_configuration {
    name                          = "internal"
    subnet_id                     = azurerm_subnet.venkat.id
    private_ip_address_allocation = "Dynamic"
  }
  depends_on = [ azurerm_subnet.venkat ]
}

resource "azurerm_virtual_machine" "venkat" {
  name                  = "venkat-machine-testvm2"
  location              = azurerm_resource_group.venkat.location
  resource_group_name   = azurerm_resource_group.venkat.name
  network_interface_ids = [azurerm_network_interface.venkat.id]
  vm_size               = "Standard_DS1_v2"

  storage_os_disk {
    name              = "terraformvenkat-vm-osdisk"
    caching           = "ReadWrite"
    create_option     = "FromImage"
    managed_disk_type = "Standard_LRS"
  }

  storage_image_reference {
    publisher = "canonical"
    offer     = "0001-com-ubuntu-server-focal"
    sku       = "20_04-lts-gen2"
    version   = "latest"
  }

  os_profile {
    computer_name  = "hostname"
    admin_username = "adminuser"
    admin_password = "P@ssw0rd1234!"
  }

  os_profile_linux_config {
    disable_password_authentication = false
  }
}

resource "null_resource" "vm-deallocate1" {
  provisioner "local-exec" {
    command = <<EOT
az vm deallocate --resource-group ${azurerm_resource_group.venkat.name} --name ${azurerm_virtual_machine.venkat.name}
EOT
    interpreter = ["bash", "-c"]
  }
  depends_on = [azurerm_virtual_machine.venkat]
}

resource "null_resource" "vm-1" {
  provisioner "local-exec" {
    command = <<EOT
az vm update --resource-group ${azurerm_resource_group.venkat.name} --name ${azurerm_virtual_machine.venkat.name} --security-type TrustedLaunch
sleep 60
az vm start --resource-group ${azurerm_resource_group.venkat.name} --name ${azurerm_virtual_machine.venkat.name}
EOT
    interpreter = ["bash", "-c"]
  }
  depends_on = [null_resource.vm-deallocate1]
}

输出:

enter image description here

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