diff --git a/quickstart/101-windows-vm-with-iis-server/main.tf b/quickstart/101-windows-vm-with-iis-server/main.tf index 4ef032b7..40c393ea 100644 --- a/quickstart/101-windows-vm-with-iis-server/main.tf +++ b/quickstart/101-windows-vm-with-iis-server/main.tf @@ -1,15 +1,11 @@ -resource "random_pet" "rg_name" { - prefix = var.resource_group_name_prefix -} - resource "azurerm_resource_group" "rg" { location = var.resource_group_location - name = random_pet.rg_name.id + name = "${random_pet.prefix.id}-rg" } # Create virtual network resource "azurerm_virtual_network" "my_terraform_network" { - name = "myVnet" + name = "${random_pet.prefix.id}-vnet" address_space = ["10.0.0.0/16"] location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name @@ -17,7 +13,7 @@ resource "azurerm_virtual_network" "my_terraform_network" { # Create subnet resource "azurerm_subnet" "my_terraform_subnet" { - name = "mySubnet" + name = "${random_pet.prefix.id}-subnet" resource_group_name = azurerm_resource_group.rg.name virtual_network_name = azurerm_virtual_network.my_terraform_network.name address_prefixes = ["10.0.1.0/24"] @@ -25,7 +21,7 @@ resource "azurerm_subnet" "my_terraform_subnet" { # Create public IPs resource "azurerm_public_ip" "my_terraform_public_ip" { - name = "myPublicIP" + name = "${random_pet.prefix.id}-public-ip" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name allocation_method = "Dynamic" @@ -33,7 +29,7 @@ resource "azurerm_public_ip" "my_terraform_public_ip" { # Create Network Security Group and rules resource "azurerm_network_security_group" "my_terraform_nsg" { - name = "myNetworkSecurityGroup" + name = "${random_pet.prefix.id}-nsg" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name @@ -63,7 +59,7 @@ resource "azurerm_network_security_group" "my_terraform_nsg" { # Create network interface resource "azurerm_network_interface" "my_terraform_nic" { - name = "myNIC" + name = "${random_pet.prefix.id}-nic" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name @@ -81,16 +77,6 @@ resource "azurerm_network_interface_security_group_association" "example" { network_security_group_id = azurerm_network_security_group.my_terraform_nsg.id } -# Generate random text for a unique storage account name -resource "random_id" "random_id" { - keepers = { - # Generate a new ID only when a new resource group is defined - resource_group = azurerm_resource_group.rg.name - } - - byte_length = 8 -} - # Create storage account for boot diagnostics resource "azurerm_storage_account" "my_storage_account" { name = "diag${random_id.random_id.hex}" @@ -102,10 +88,10 @@ resource "azurerm_storage_account" "my_storage_account" { # Create virtual machine -resource "azurerm_windows_virtual_machine" "my_terraform_vm" { - name = "myVM" +resource "azurerm_windows_virtual_machine" "main" { + name = "${var.prefix}-vm" admin_username = "azureuser" - admin_password = var.admin_password + admin_password = random_password.password.result location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name network_interface_ids = [azurerm_network_interface.my_terraform_nic.id] @@ -132,8 +118,8 @@ resource "azurerm_windows_virtual_machine" "my_terraform_vm" { # Install IIS web server to the virtual machine resource "azurerm_virtual_machine_extension" "web_server_install" { - name = "web_server_install" - virtual_machine_id = azurerm_windows_virtual_machine.my_terraform_vm.id + name = "${random_pet.prefix.id}-wsi" + virtual_machine_id = azurerm_windows_virtual_machine.main.id publisher = "Microsoft.Compute" type = "CustomScriptExtension" type_handler_version = "1.8" @@ -144,4 +130,28 @@ resource "azurerm_virtual_machine_extension" "web_server_install" { "commandToExecute": "powershell -ExecutionPolicy Unrestricted Install-WindowsFeature -Name Web-Server -IncludeAllSubFeature -IncludeManagementTools" } SETTINGS +} + +# Generate random text for a unique storage account name +resource "random_id" "random_id" { + keepers = { + # Generate a new ID only when a new resource group is defined + resource_group = azurerm_resource_group.rg.name + } + + byte_length = 8 +} + +resource "random_password" "password" { + length = 20 + min_lower = 1 + min_upper = 1 + min_numeric = 1 + min_special = 1 + special = true +} + +resource "random_pet" "prefix" { + prefix = var.prefix + length = 1 } \ No newline at end of file diff --git a/quickstart/101-windows-vm-with-iis-server/outputs.tf b/quickstart/101-windows-vm-with-iis-server/outputs.tf index 14c19952..75b1c85b 100644 --- a/quickstart/101-windows-vm-with-iis-server/outputs.tf +++ b/quickstart/101-windows-vm-with-iis-server/outputs.tf @@ -3,5 +3,10 @@ output "resource_group_name" { } output "public_ip_address" { - value = azurerm_windows_virtual_machine.my_terraform_vm.public_ip_address + value = azurerm_windows_virtual_machine.main.public_ip_address +} + +output "admin_password" { + sensitive = true + value = azurerm_windows_virtual_machine.main.admin_password } \ No newline at end of file diff --git a/quickstart/101-windows-vm-with-iis-server/providers.tf b/quickstart/101-windows-vm-with-iis-server/providers.tf index 0234a678..058b6871 100644 --- a/quickstart/101-windows-vm-with-iis-server/providers.tf +++ b/quickstart/101-windows-vm-with-iis-server/providers.tf @@ -1,19 +1,15 @@ terraform { - required_version = ">=0.12" + required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" - version = "~>2.0" + version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } - tls = { - source = "hashicorp/tls" - version = "~>4.0" - } } } diff --git a/quickstart/101-windows-vm-with-iis-server/variables.tf b/quickstart/101-windows-vm-with-iis-server/variables.tf index e1484681..2f55f9d4 100644 --- a/quickstart/101-windows-vm-with-iis-server/variables.tf +++ b/quickstart/101-windows-vm-with-iis-server/variables.tf @@ -3,11 +3,8 @@ variable "resource_group_location" { description = "Location of the resource group." } -variable "resource_group_name_prefix" { - default = "rg" - description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." -} - -variable "admin_password" { - description = "The password to assign to the Windows Administrator user account." +variable "prefix" { + type = string + default = "win-vm-iis" + description = "Prefix of the resource name" } \ No newline at end of file