Establish connection to a VNET via an ExpressRoute circuit
{"type": "microsoft.network/networksecuritygroups", "name": "[variables('webnsgname')]", "apiversion": "2016-03-30", "location": "[parameters('location')]", "comments": "nsg for web subnet. rules for allowing http and https requests from internet are created", "tags": {"displayname": "web nsg", "quickstartname": "[variables('quickstarttags').name]", "provider": "[variables('redhattags').provider]"}, "properties": {"securityrules": [{"name": "http-allow", "properties": {"protocol": "tcp", "sourceportrange": "*", "destinationportrange": "80", "sourceaddressprefix": "[parameters('remoteallowedcidr')]", "destinationaddressprefix": "10.0.1.0/24", "access": "allow", "priority": 110, "direction": "inbound"}}, {"name": "https-allow", "properties": {"protocol": "tcp", "sourceportrange": "*", "destinationportrange": "443", "sourceaddressprefix": "[parameters('remoteallowedcidr')]", "destinationaddressprefix": "10.0.1.0/24", "access": "allow", "priority": 120, "direction": "inbound"}}]}}{"type": "microsoft.network/networksecuritygroups", "name": "[variables('appnsgname')]", "apiversion": "2016-03-30", "location": "[parameters('location')]", "comments": "nsg for app subnet. by default, intra vnet traffic is allowed and requests from internet are denied", "tags": {"displayname": "app nsg", "quickstartname": "[variables('quickstarttags').name]", "provider": "[variables('redhattags').provider]"}, "properties": {}}{"type": "microsoft.network/networksecuritygroups", "name": "[variables('databasensgname')]", "apiversion": "2016-03-30", "location": "[parameters('location')]", "comments": "nsg for database subnet. by default, intra vnet traffic is allowed and requests from internet are denied", "tags": {"displayname": "database nsg", "quickstartname": "[variables('quickstarttags').name]", "provider": "[variables('redhattags').provider]"}, "properties": {}}{"type": "microsoft.network/networksecuritygroups", "name": "[variables('jumpnsgname')]", "apiversion": "2016-03-30", "location": "[parameters('location')]", "comments": "nsg for jump subnet. rules for allowing ssh from internet are created", "tags": {"displayname": "jump nsg", "quickstartname": "[variables('quickstarttags').name]", "provider": "[variables('redhattags').provider]"}, "properties": {"securityrules": [{"name": "ssh-allow", "properties": {"protocol": "tcp", "sourceportrange": "*", "destinationportrange": "22", "sourceaddressprefix": "[parameters('remoteallowedcidr')]", "destinationaddressprefix": "10.0.0.128/25", "access": "allow", "priority": 110, "direction": "inbound"}}]}}{"type": "microsoft.network/publicipaddresses", "name": "[variables('jumpipaddressname')]", "apiversion": "2016-03-30", "location": "[parameters('location')]", "comments": " public ip used by the jump vm", "tags": {"displayname": "jump vm public ip", "quickstartname": "[variables('quickstarttags').name]", "provider": "[variables('redhattags').provider]"}, "properties": {"publicipallocationmethod": "static", "dnssettings": {"domainnamelabel": "[variables('jumpdnslabel')]"}, "idletimeoutinminutes": 4}}{"type": "microsoft.network/publicipaddresses", "name": "[variables('weblbipaddressname')]", "apiversion": "2016-03-30", "location": "[parameters('location')]", "comments": "public ip used by the web server load balancer", "tags": {"displayname": "web lb public ip", "quickstartname": "[variables('quickstarttags').name]", "provider": "[variables('redhattags').provider]"}, "properties": {"publicipallocationmethod": "static", "idletimeoutinminutes": 4, "dnssettings": {"domainnamelabel": "[variables('weblbdnslabel')]"}}}{"type": "microsoft.network/virtualnetworks", "name": "[variables('virtualnetworkname')]", "apiversion": "2016-03-30", "location": "[parameters('location')]", "comments": "virtual network for overall solution", "tags": {"displayname": "virtual network", "quickstartname": "[variables('quickstarttags').name]", "provider": "[variables('redhattags').provider]"}, "dependson": ["[resourceid('microsoft.network/networksecuritygroups/", variables('webnsgname'))]", "[resourceid('microsoft.network/networksecuritygroups/", variables('appnsgname'))]", "[resourceid('microsoft.network/networksecuritygroups/", variables('databasensgname'))]", "[resourceid('microsoft.network/networksecuritygroups/", variables('jumpnsgname'))]"], "properties": {"addressspace": {"addressprefixes": ["10.0.0.0/16"]}, "subnets": [{"name": "[variables('webtiersubnetname')]", "properties": {"addressprefix": "10.0.1.0/24", "networksecuritygroup": {"id": "[resourceid('microsoft.network/networksecuritygroups", variables('webnsgname'))]"}}}, {"name": "[variables('apptiersubnetname')]", "properties": {"addressprefix": "10.0.2.0/24", "networksecuritygroup": {"id": "[resourceid('microsoft.network/networksecuritygroups", variables('appnsgname'))]"}}}, {"name": "[variables('databasetiersubnetname')]", "properties": {"addressprefix": "10.0.3.0/24", "networksecuritygroup": {"id": "[resourceid('microsoft.network/networksecuritygroups", variables('databasensgname'))]"}}}, {"name": "[variables('jumpsubnetname')]", "properties": {"addressprefix": "10.0.0.128/25", "networksecuritygroup": {"id": "[resourceid('microsoft.network/networksecuritygroups", variables('jumpnsgname'))]"}}}]}}{"type": "microsoft.network/loadbalancers", "name": "[variables('webloadbalancername')]", "apiversion": "2015-06-15", "location": "[parameters('location')]", "comments": "this load balancer is used to load balance web traffic among web tier vms", "tags": {"displayname": "external load balancer", "quickstartname": "[variables('quickstarttags').name]", "provider": "[variables('redhattags').provider]"}, "dependson": ["[resourceid('microsoft.network/publicipaddresses/", variables('weblbipaddressname'))]"], "properties": {"frontendipconfigurations": [{"name": "loadbalancerfrontend", "properties": {"publicipaddress": {"id": "[variables('webloadbalanceripid')]"}}}], "backendaddresspools": [{"name": "loadbalancerbackend"}], "loadbalancingrules": [{"name": "lbruleforlb80ip", "properties": {"frontendipconfiguration": {"id": "[variables('webfrontendipconfigid')]"}, "backendaddresspool": {"id": "[variables('weblbbackendpoolid')]"}, "protocol": "tcp", "frontendport": 80, "backendport": 80, "idletimeoutinminutes": 5, "enablefloatingip": false, "probe": {"id": "[variables('weblbprobehttpid')]"}}}, {"name": "lbruleforlb443ip", "properties": {"frontendipconfiguration": {"id": "[variables('webfrontendipconfigid')]"}, "backendaddresspool": {"id": "[variables('weblbbackendpoolid')]"}, "protocol": "tcp", "frontendport": 443, "backendport": 443, "idletimeoutinminutes": 5, "enablefloatingip": false, "probe": {"id": "[variables('weblbprobehttpsid')]"}}}], "probes": [{"name": "weblbprobehttp", "properties": {"protocol": "tcp", "port": 80, "intervalinseconds": 5, "numberofprobes": 2}}, {"name": "weblbprobehttps", "properties": {"protocol": "tcp", "port": 443, "intervalinseconds": 5, "numberofprobes": 2}}]}} 