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  }