[英]Terraform Azure Provision VM to existing subnet/vnet/resourcegroup
我有一個現有的 Azure 環境,其中已經創建了資源組、網絡、vnet 和子網。 我想使用 terraform 將 VM 自動部署到這個現有的 Azure 環境中,但所有示例和文檔都面向從頭開始構建整個環境/基礎設施。
任何人都可以建議有關如何使用 terraform 將 VM 部署到現有 Azure 環境的文檔或示例嗎?
您可以使用 數據源:azurerm_subnet和azurerm_resource_group來訪問現有子網和資源組的屬性。
使用現有子網創建新 Linux VM 的示例。 在網絡接口子網subnet_id = "${data.azurerm_subnet.test.id}"
引用子網數據源的輸出"subnet_id subnet_id = "${data.azurerm_subnet.test.id}"
# refer to a resource group
data "azurerm_resource_group" "test" {
name = "nancyResourceGroup"
}
#refer to a subnet
data "azurerm_subnet" "test" {
name = "mySubnet"
virtual_network_name = "myVnet"
resource_group_name = "nancyResourceGroup"
}
# Create public IPs
resource "azurerm_public_ip" "test" {
name = "myPublicIP-test"
location = "${data.azurerm_resource_group.test.location}"
resource_group_name = "${data.azurerm_resource_group.test.name}"
public_ip_address_allocation = "dynamic"
}
# create a network interface
resource "azurerm_network_interface" "test" {
name = "nic-test"
location = "${data.azurerm_resource_group.test.location}"
resource_group_name = "${data.azurerm_resource_group.test.name}"
ip_configuration {
name = "testconfiguration1"
subnet_id = "${data.azurerm_subnet.test.id}"
private_ip_address_allocation = "dynamic"
public_ip_address_id = "${azurerm_public_ip.test.id}"
}
}
# Create virtual machine
resource "azurerm_virtual_machine" "test" {
name = "myVM-test"
location = "${azurerm_network_interface.test.location}"
resource_group_name = "${data.azurerm_resource_group.test.name}"
network_interface_ids = ["${azurerm_network_interface.test.id}"]
vm_size = "Standard_DS1_v2"
# Uncomment this line to delete the OS disk automatically when deleting the VM
delete_os_disk_on_termination = true
# Uncomment this line to delete the data disks automatically when deleting the VM
delete_data_disks_on_termination = true
storage_image_reference {
publisher = "Canonical"
offer = "UbuntuServer"
sku = "16.04-LTS"
version = "latest"
}
storage_os_disk {
name = "myosdisk1"
caching = "ReadWrite"
create_option = "FromImage"
managed_disk_type = "Standard_LRS"
}
os_profile {
computer_name = "hostname"
admin_username = "testadmin"
admin_password = "Password1234!"
}
os_profile_linux_config {
disable_password_authentication = false
}
}
更多參考可以參考這個案例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.