github.com/spirius/terraform@v0.10.0-beta2.0.20170714185654-87b2c0cf8fea/examples/azure-vmss-ubuntu/main.tf (about) 1 # provider "azurerm" { 2 # subscription_id = "${var.subscription_id}" 3 # client_id = "${var.client_id}" 4 # client_secret = "${var.client_secret}" 5 # tenant_id = "${var.tenant_id}" 6 # } 7 8 resource "azurerm_resource_group" "rg" { 9 name = "${var.resource_group}" 10 location = "${var.location}" 11 } 12 13 resource "azurerm_virtual_network" "vnet" { 14 name = "${var.resource_group}vnet" 15 location = "${azurerm_resource_group.rg.location}" 16 address_space = ["10.0.0.0/16"] 17 resource_group_name = "${azurerm_resource_group.rg.name}" 18 } 19 20 resource "azurerm_subnet" "subnet" { 21 name = "subnet" 22 address_prefix = "10.0.0.0/24" 23 resource_group_name = "${azurerm_resource_group.rg.name}" 24 virtual_network_name = "${azurerm_virtual_network.vnet.name}" 25 } 26 27 resource "azurerm_public_ip" "pip" { 28 name = "${var.hostname}-pip" 29 location = "${azurerm_resource_group.rg.location}" 30 resource_group_name = "${azurerm_resource_group.rg.name}" 31 public_ip_address_allocation = "Dynamic" 32 domain_name_label = "${var.hostname}" 33 } 34 35 resource "azurerm_lb" "lb" { 36 name = "LoadBalancer" 37 location = "${azurerm_resource_group.rg.location}" 38 resource_group_name = "${azurerm_resource_group.rg.name}" 39 depends_on = ["azurerm_public_ip.pip"] 40 41 frontend_ip_configuration { 42 name = "LBFrontEnd" 43 public_ip_address_id = "${azurerm_public_ip.pip.id}" 44 } 45 } 46 47 resource "azurerm_lb_backend_address_pool" "backlb" { 48 name = "BackEndAddressPool" 49 resource_group_name = "${azurerm_resource_group.rg.name}" 50 loadbalancer_id = "${azurerm_lb.lb.id}" 51 } 52 53 resource "azurerm_lb_nat_pool" "np" { 54 resource_group_name = "${azurerm_resource_group.rg.name}" 55 loadbalancer_id = "${azurerm_lb.lb.id}" 56 name = "NATPool" 57 protocol = "Tcp" 58 frontend_port_start = 50000 59 frontend_port_end = 50119 60 backend_port = 22 61 frontend_ip_configuration_name = "LBFrontEnd" 62 } 63 64 resource "azurerm_storage_account" "stor" { 65 name = "${var.resource_group}stor" 66 location = "${azurerm_resource_group.rg.location}" 67 resource_group_name = "${azurerm_resource_group.rg.name}" 68 account_type = "${var.storage_account_type}" 69 } 70 71 resource "azurerm_storage_container" "vhds" { 72 name = "vhds" 73 resource_group_name = "${azurerm_resource_group.rg.name}" 74 storage_account_name = "${azurerm_storage_account.stor.name}" 75 container_access_type = "blob" 76 } 77 78 resource "azurerm_virtual_machine_scale_set" "scaleset" { 79 name = "autoscalewad" 80 location = "${azurerm_resource_group.rg.location}" 81 resource_group_name = "${azurerm_resource_group.rg.name}" 82 upgrade_policy_mode = "Manual" 83 overprovision = true 84 depends_on = ["azurerm_lb.lb", "azurerm_virtual_network.vnet"] 85 86 sku { 87 name = "${var.vm_sku}" 88 tier = "Standard" 89 capacity = "${var.instance_count}" 90 } 91 92 os_profile { 93 computer_name_prefix = "${var.vmss_name}" 94 admin_username = "${var.admin_username}" 95 admin_password = "${var.admin_password}" 96 } 97 98 os_profile_linux_config { 99 disable_password_authentication = false 100 } 101 102 network_profile { 103 name = "${var.hostname}-nic" 104 primary = true 105 106 ip_configuration { 107 name = "${var.hostname}ipconfig" 108 subnet_id = "${azurerm_subnet.subnet.id}" 109 load_balancer_backend_address_pool_ids = ["${azurerm_lb_backend_address_pool.backlb.id}"] 110 load_balancer_inbound_nat_rules_ids = ["${element(azurerm_lb_nat_pool.np.*.id, count.index)}"] 111 } 112 } 113 114 storage_profile_os_disk { 115 name = "${var.hostname}" 116 caching = "ReadWrite" 117 create_option = "FromImage" 118 vhd_containers = ["${azurerm_storage_account.stor.primary_blob_endpoint}${azurerm_storage_container.vhds.name}"] 119 } 120 121 storage_profile_image_reference { 122 publisher = "${var.image_publisher}" 123 offer = "${var.image_offer}" 124 sku = "${var.ubuntu_os_version}" 125 version = "latest" 126 } 127 }