Skip to content

Commit d187418

Browse files
committed
301-hub-spoke - Added spoke1.tf, spoke2.tf
1 parent 8e5492e commit d187418

File tree

2 files changed

+222
-0
lines changed

2 files changed

+222
-0
lines changed

quickstart/301-hub-spoke/spoke1.tf

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
locals {
2+
spoke1-location = "eastus"
3+
spoke1-resource-group = "spoke1-vnet-rg"
4+
prefix-spoke1 = "spoke1"
5+
}
6+
7+
resource "azurerm_resource_group" "spoke1-vnet-rg" {
8+
name = local.spoke1-resource-group
9+
location = local.spoke1-location
10+
}
11+
12+
resource "azurerm_virtual_network" "spoke1-vnet" {
13+
name = "spoke1-vnet"
14+
location = azurerm_resource_group.spoke1-vnet-rg.location
15+
resource_group_name = azurerm_resource_group.spoke1-vnet-rg.name
16+
address_space = ["10.1.0.0/16"]
17+
18+
tags = {
19+
environment = local.prefix-spoke1
20+
}
21+
}
22+
23+
resource "azurerm_subnet" "spoke1-mgmt" {
24+
name = "mgmt"
25+
resource_group_name = azurerm_resource_group.spoke1-vnet-rg.name
26+
virtual_network_name = azurerm_virtual_network.spoke1-vnet.name
27+
address_prefixes = ["10.1.0.64/27"]
28+
}
29+
30+
resource "azurerm_subnet" "spoke1-workload" {
31+
name = "workload"
32+
resource_group_name = azurerm_resource_group.spoke1-vnet-rg.name
33+
virtual_network_name = azurerm_virtual_network.spoke1-vnet.name
34+
address_prefixes = ["10.1.1.0/24"]
35+
}
36+
37+
resource "azurerm_virtual_network_peering" "spoke1-hub-peer" {
38+
name = "spoke1-hub-peer"
39+
resource_group_name = azurerm_resource_group.spoke1-vnet-rg.name
40+
virtual_network_name = azurerm_virtual_network.spoke1-vnet.name
41+
remote_virtual_network_id = azurerm_virtual_network.hub-vnet.id
42+
43+
allow_virtual_network_access = true
44+
allow_forwarded_traffic = true
45+
allow_gateway_transit = false
46+
use_remote_gateways = true
47+
depends_on = [azurerm_virtual_network.spoke1-vnet, azurerm_virtual_network.hub-vnet , azurerm_virtual_network_gateway.hub-vnet-gateway]
48+
}
49+
50+
resource "azurerm_network_interface" "spoke1-nic" {
51+
name = "${local.prefix-spoke1}-nic"
52+
location = azurerm_resource_group.spoke1-vnet-rg.location
53+
resource_group_name = azurerm_resource_group.spoke1-vnet-rg.name
54+
enable_ip_forwarding = true
55+
56+
ip_configuration {
57+
name = local.prefix-spoke1
58+
subnet_id = azurerm_subnet.spoke1-mgmt.id
59+
private_ip_address_allocation = "Dynamic"
60+
}
61+
}
62+
63+
resource "azurerm_virtual_machine" "spoke1-vm" {
64+
name = "${local.prefix-spoke1}-vm"
65+
location = azurerm_resource_group.spoke1-vnet-rg.location
66+
resource_group_name = azurerm_resource_group.spoke1-vnet-rg.name
67+
network_interface_ids = [azurerm_network_interface.spoke1-nic.id]
68+
vm_size = var.vmsize
69+
70+
storage_image_reference {
71+
publisher = "Canonical"
72+
offer = "UbuntuServer"
73+
sku = "16.04-LTS"
74+
version = "latest"
75+
}
76+
77+
storage_os_disk {
78+
name = "myosdisk1"
79+
caching = "ReadWrite"
80+
create_option = "FromImage"
81+
managed_disk_type = "Standard_LRS"
82+
}
83+
84+
os_profile {
85+
computer_name = "${local.prefix-spoke1}-vm"
86+
admin_username = var.username
87+
admin_password = var.password
88+
}
89+
90+
os_profile_linux_config {
91+
disable_password_authentication = false
92+
}
93+
94+
tags = {
95+
environment = local.prefix-spoke1
96+
}
97+
}
98+
99+
resource "azurerm_virtual_network_peering" "hub-spoke1-peer" {
100+
name = "hub-spoke1-peer"
101+
resource_group_name = azurerm_resource_group.hub-vnet-rg.name
102+
virtual_network_name = azurerm_virtual_network.hub-vnet.name
103+
remote_virtual_network_id = azurerm_virtual_network.spoke1-vnet.id
104+
allow_virtual_network_access = true
105+
allow_forwarded_traffic = true
106+
allow_gateway_transit = true
107+
use_remote_gateways = false
108+
depends_on = [azurerm_virtual_network.spoke1-vnet, azurerm_virtual_network.hub-vnet, azurerm_virtual_network_gateway.hub-vnet-gateway]
109+
}

quickstart/301-hub-spoke/spoke2.tf

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
locals {
2+
spoke2-location = "eastus"
3+
spoke2-resource-group = "spoke2-vnet-rg"
4+
prefix-spoke2 = "spoke2"
5+
}
6+
7+
resource "azurerm_resource_group" "spoke2-vnet-rg" {
8+
name = local.spoke2-resource-group
9+
location = local.spoke2-location
10+
}
11+
12+
resource "azurerm_virtual_network" "spoke2-vnet" {
13+
name = "${local.prefix-spoke2}-vnet"
14+
location = azurerm_resource_group.spoke2-vnet-rg.location
15+
resource_group_name = azurerm_resource_group.spoke2-vnet-rg.name
16+
address_space = ["10.2.0.0/16"]
17+
18+
tags = {
19+
environment = local.prefix-spoke2
20+
}
21+
}
22+
23+
resource "azurerm_subnet" "spoke2-mgmt" {
24+
name = "mgmt"
25+
resource_group_name = azurerm_resource_group.spoke2-vnet-rg.name
26+
virtual_network_name = azurerm_virtual_network.spoke2-vnet.name
27+
address_prefixes = ["10.2.0.64/27"]
28+
}
29+
30+
resource "azurerm_subnet" "spoke2-workload" {
31+
name = "workload"
32+
resource_group_name = azurerm_resource_group.spoke2-vnet-rg.name
33+
virtual_network_name = azurerm_virtual_network.spoke2-vnet.name
34+
address_prefixes = ["10.2.1.0/24"]
35+
}
36+
37+
resource "azurerm_virtual_network_peering" "spoke2-hub-peer" {
38+
name = "${local.prefix-spoke2}-hub-peer"
39+
resource_group_name = azurerm_resource_group.spoke2-vnet-rg.name
40+
virtual_network_name = azurerm_virtual_network.spoke2-vnet.name
41+
remote_virtual_network_id = azurerm_virtual_network.hub-vnet.id
42+
43+
allow_virtual_network_access = true
44+
allow_forwarded_traffic = true
45+
allow_gateway_transit = false
46+
use_remote_gateways = true
47+
depends_on = [azurerm_virtual_network.spoke2-vnet, azurerm_virtual_network.hub-vnet, azurerm_virtual_network_gateway.hub-vnet-gateway]
48+
}
49+
50+
resource "azurerm_network_interface" "spoke2-nic" {
51+
name = "${local.prefix-spoke2}-nic"
52+
location = azurerm_resource_group.spoke2-vnet-rg.location
53+
resource_group_name = azurerm_resource_group.spoke2-vnet-rg.name
54+
enable_ip_forwarding = true
55+
56+
ip_configuration {
57+
name = local.prefix-spoke2
58+
subnet_id = azurerm_subnet.spoke2-mgmt.id
59+
private_ip_address_allocation = "Dynamic"
60+
}
61+
62+
tags = {
63+
environment = local.prefix-spoke2
64+
}
65+
}
66+
67+
resource "azurerm_virtual_machine" "spoke2-vm" {
68+
name = "${local.prefix-spoke2}-vm"
69+
location = azurerm_resource_group.spoke2-vnet-rg.location
70+
resource_group_name = azurerm_resource_group.spoke2-vnet-rg.name
71+
network_interface_ids = [azurerm_network_interface.spoke2-nic.id]
72+
vm_size = var.vmsize
73+
74+
storage_image_reference {
75+
publisher = "Canonical"
76+
offer = "UbuntuServer"
77+
sku = "16.04-LTS"
78+
version = "latest"
79+
}
80+
81+
storage_os_disk {
82+
name = "myosdisk1"
83+
caching = "ReadWrite"
84+
create_option = "FromImage"
85+
managed_disk_type = "Standard_LRS"
86+
}
87+
88+
os_profile {
89+
computer_name = "${local.prefix-spoke2}-vm"
90+
admin_username = var.username
91+
admin_password = var.password
92+
}
93+
94+
os_profile_linux_config {
95+
disable_password_authentication = false
96+
}
97+
98+
tags = {
99+
environment = local.prefix-spoke2
100+
}
101+
}
102+
103+
resource "azurerm_virtual_network_peering" "hub-spoke2-peer" {
104+
name = "hub-spoke2-peer"
105+
resource_group_name = azurerm_resource_group.hub-vnet-rg.name
106+
virtual_network_name = azurerm_virtual_network.hub-vnet.name
107+
remote_virtual_network_id = azurerm_virtual_network.spoke2-vnet.id
108+
allow_virtual_network_access = true
109+
allow_forwarded_traffic = true
110+
allow_gateway_transit = true
111+
use_remote_gateways = false
112+
depends_on = [azurerm_virtual_network.spoke2-vnet, azurerm_virtual_network.hub-vnet, azurerm_virtual_network_gateway.hub-vnet-gateway]
113+
}

0 commit comments

Comments
 (0)