Skip to content

Commit 7c4e2dd

Browse files
authored
Merge pull request microsoft#79 from vhorne/ag-qs
create app gateway quickstart
2 parents 4950e13 + 9adb4bf commit 7c4e2dd

4 files changed

Lines changed: 584 additions & 0 deletions

File tree

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
resource "azurerm_resource_group" "rg1" {
2+
name = "myResourceGroupAG"
3+
location = "eastus"
4+
}
5+
6+
resource "azurerm_virtual_network" "vnet1" {
7+
name = "myVNet"
8+
resource_group_name = azurerm_resource_group.rg1.name
9+
location = azurerm_resource_group.rg1.location
10+
address_space = ["10.21.0.0/16"]
11+
}
12+
13+
resource "azurerm_subnet" "frontend" {
14+
name = "myAGSubnet"
15+
resource_group_name = azurerm_resource_group.rg1.name
16+
virtual_network_name = azurerm_virtual_network.vnet1.name
17+
address_prefixes = ["10.21.0.0/24"]
18+
}
19+
20+
resource "azurerm_subnet" "backend" {
21+
name = "myBackendSubnet"
22+
resource_group_name = azurerm_resource_group.rg1.name
23+
virtual_network_name = azurerm_virtual_network.vnet1.name
24+
address_prefixes = ["10.21.1.0/24"]
25+
}
26+
27+
resource "azurerm_public_ip" "pip1" {
28+
name = "myAGPublicIPAddress"
29+
resource_group_name = azurerm_resource_group.rg1.name
30+
location = azurerm_resource_group.rg1.location
31+
allocation_method = "Static"
32+
sku = "Standard"
33+
}
34+
35+
36+
37+
resource "azurerm_application_gateway" "network" {
38+
name = "myAppGateway"
39+
resource_group_name = azurerm_resource_group.rg1.name
40+
location = azurerm_resource_group.rg1.location
41+
42+
sku {
43+
name = "Standard_v2"
44+
tier = "Standard_v2"
45+
capacity = 2
46+
}
47+
48+
gateway_ip_configuration {
49+
name = "my-gateway-ip-configuration"
50+
subnet_id = azurerm_subnet.frontend.id
51+
}
52+
53+
frontend_port {
54+
name = var.frontend_port_name
55+
port = 80
56+
}
57+
58+
frontend_ip_configuration {
59+
name = var.frontend_ip_configuration_name
60+
public_ip_address_id = azurerm_public_ip.pip1.id
61+
}
62+
63+
backend_address_pool {
64+
name = var.backend_address_pool_name
65+
}
66+
67+
backend_http_settings {
68+
name = var.http_setting_name
69+
cookie_based_affinity = "Disabled"
70+
port = 80
71+
protocol = "Http"
72+
request_timeout = 60
73+
}
74+
75+
http_listener {
76+
name = var.listener_name
77+
frontend_ip_configuration_name = var.frontend_ip_configuration_name
78+
frontend_port_name = var.frontend_port_name
79+
protocol = "Http"
80+
}
81+
82+
request_routing_rule {
83+
name = var.request_routing_rule_name
84+
rule_type = "Basic"
85+
http_listener_name = var.listener_name
86+
backend_address_pool_name = var.backend_address_pool_name
87+
backend_http_settings_name = var.http_setting_name
88+
}
89+
}
90+
91+
resource "azurerm_network_interface" "nic" {
92+
count = 2
93+
name = "nic-${count.index+1}"
94+
location = azurerm_resource_group.rg1.location
95+
resource_group_name = azurerm_resource_group.rg1.name
96+
97+
ip_configuration {
98+
name = "nic-ipconfig-${count.index+1}"
99+
subnet_id = azurerm_subnet.backend.id
100+
private_ip_address_allocation = "Dynamic"
101+
}
102+
}
103+
104+
resource "azurerm_network_interface_application_gateway_backend_address_pool_association" "nic-assoc01" {
105+
count = 2
106+
network_interface_id = azurerm_network_interface.nic[count.index].id
107+
ip_configuration_name = "nic-ipconfig-${count.index+1}"
108+
backend_address_pool_id = azurerm_application_gateway.network.backend_address_pool[0].id
109+
}
110+
111+
resource "random_password" "password" {
112+
length = 16
113+
special = true
114+
lower = true
115+
upper = true
116+
number = true
117+
}
118+
119+
resource "azurerm_windows_virtual_machine" "vm" {
120+
count = 2
121+
name = "myVM${count.index+1}"
122+
resource_group_name = azurerm_resource_group.rg1.name
123+
location = azurerm_resource_group.rg1.location
124+
size = "Standard_DS1_v2"
125+
admin_username = "azureadmin"
126+
admin_password = random_password.password.result
127+
128+
network_interface_ids = [
129+
azurerm_network_interface.nic[count.index].id,
130+
]
131+
132+
os_disk {
133+
caching = "ReadWrite"
134+
storage_account_type = "Standard_LRS"
135+
}
136+
137+
138+
source_image_reference {
139+
publisher = "MicrosoftWindowsServer"
140+
offer = "WindowsServer"
141+
sku = "2019-Datacenter"
142+
version = "latest"
143+
}
144+
}
145+
146+
resource "azurerm_virtual_machine_extension" "vm-extensions" {
147+
count = 2
148+
name = "vm${count.index+1}-ext"
149+
virtual_machine_id = azurerm_windows_virtual_machine.vm[count.index].id
150+
publisher = "Microsoft.Compute"
151+
type = "CustomScriptExtension"
152+
type_handler_version = "1.10"
153+
154+
settings = <<SETTINGS
155+
{
156+
"commandToExecute": "powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"
157+
}
158+
SETTINGS
159+
160+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
terraform {
2+
3+
required_version = ">=0.12"
4+
5+
required_providers {
6+
azurerm = {
7+
source = "hashicorp/azurerm"
8+
version = ">=2.97.0"
9+
}
10+
}
11+
}
12+
13+
provider "azurerm" {
14+
features {}
15+
}

0 commit comments

Comments
 (0)