resource "random_integer" "rand" { min = 1000 max = 9999 } resource "azurerm_resource_group" "rg" { name = "rg-terratest-sample-${random_integer.rand.result}" location = var.location } resource "azurerm_virtual_network" "vnet" { name = "vnet-terratest-sample" address_space = ["10.0.0.0/16"] location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name } resource "azurerm_subnet" "subnet" { name = "default" resource_group_name = azurerm_resource_group.rg.name virtual_network_name = azurerm_virtual_network.vnet.name address_prefixes = ["10.0.2.0/24"] } ## Linux VM 1 resource "azurerm_public_ip" "pip" { name = "pip-vm-linux-1" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name allocation_method = "Dynamic" idle_timeout_in_minutes = 30 } resource "azurerm_network_interface" "nic1" { name = "nic-vm-linux-1" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name ip_configuration { name = "internal" subnet_id = azurerm_subnet.subnet.id private_ip_address_allocation = "Dynamic" public_ip_address_id = azurerm_public_ip.pip.id } } resource "azurerm_network_security_group" "nsg" { name = "nsg-terraform-sample" location = var.location resource_group_name = azurerm_resource_group.rg.name security_rule { name = "SSH" priority = 1001 direction = "Inbound" access = "Allow" protocol = "Tcp" source_port_range = "*" destination_port_range = "22" source_address_prefix = "*" destination_address_prefix = "*" } } resource "azurerm_network_interface_security_group_association" "nic1-nsg" { network_interface_id = azurerm_network_interface.nic1.id network_security_group_id = azurerm_network_security_group.nsg.id } resource "azurerm_linux_virtual_machine" "vm1" { name = "vm-linux-1" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location size = "Standard_B2s" admin_username = "azureuser" network_interface_ids = [ azurerm_network_interface.nic1.id, ] admin_ssh_key { username = "azureuser" public_key = file("~/.ssh/id_rsa.pub") } os_disk { caching = "ReadWrite" storage_account_type = "Standard_LRS" } source_image_reference { publisher = "Canonical" offer = "UbuntuServer" sku = "18.04-LTS" version = "latest" } } ## Linux VM 2 resource "azurerm_network_interface" "nic2" { name = "nic-vm-linux-2" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name ip_configuration { name = "internal" subnet_id = azurerm_subnet.subnet.id private_ip_address_allocation = "Dynamic" } } resource "azurerm_linux_virtual_machine" "vm2" { name = "vm-linux-2" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location size = "Standard_B2s" admin_username = "azureuser" network_interface_ids = [ azurerm_network_interface.nic2.id, ] admin_ssh_key { username = "azureuser" public_key = file(var.ssh_public_key_file) } os_disk { caching = "ReadWrite" storage_account_type = "Standard_LRS" } source_image_reference { publisher = "Canonical" offer = "UbuntuServer" sku = "18.04-LTS" version = "latest" } }