forked from gderossilive/AIOps
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.bicep
More file actions
146 lines (132 loc) · 3.85 KB
/
Copy pathMain.bicep
File metadata and controls
146 lines (132 loc) · 3.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
targetScope='subscription'
// General
param location string
param Seed string
param MyObjectId string
@secure()
param adminPassword string
// Resource Group
param HubRgName string = '${Seed}-Demo'
// Virtual Network
param HubVnetName string = 'VNet-${Seed}'
param HubVnetAddressPrefix string
param PEsubnetName string = 'PE-Subnet'
param PEsubnetAddressPrefix string
param DMZsubnetName string = 'DMZ-Subnet'
param DMZsubnetAddressPrefix string
param BastionSubnetAddressPrefix string
param FirewallSubnetAddressPrefix string
param FirewallManagementSubnetAddressPrefix string
param GatewaySubnetAddressPrefix string
param BastionHostName string = 'Bastion-${Seed}'
param BastionPublicIpName string = 'BastionPublicIp-${Seed}'
param WinCommand string = ''
param LinCommand string = ''
param LinNum int = 0
param WinNum int = 0
param WinVMname string = 'WinVM-${Seed}'
param LinVMname string = 'LinVM-${Seed}'
param CustomDnsServer string =''
param rnd string = substring(uniqueString(utcNow()),0,5)
param vmsize string = 'Standard_B2ms'
param WorskspaceName string = 'LA-${Seed}'
param publicNetworkAccess string = 'Enabled'
param KVname string = 'KV-${Seed}'
param SSHPublickey string
// Hub Resource Group Deploy
resource HubRG 'Microsoft.Resources/resourceGroups@2021-01-01' existing = {
name: HubRgName
}
// Hub Virtual Network Deploy
module HubDeploy 'src/HubDeploy.bicep' = {
name: 'HubVnet'
scope: HubRG
params: {
location: location
Seed: Seed
MyObjectId: MyObjectId
adminPassword: adminPassword
HubVnetName: HubVnetName
BastionSubnetAddressPrefix: BastionSubnetAddressPrefix
FirewallSubnetAddressPrefix: FirewallSubnetAddressPrefix
FirewallManagementSubnetAddressPrefix: FirewallManagementSubnetAddressPrefix
GatewaySubnetAddressPrefix: GatewaySubnetAddressPrefix
HubVnetAddressPrefix: HubVnetAddressPrefix
PEsubnetAddressPrefix: PEsubnetAddressPrefix
PEsubnetName: PEsubnetName
DMZsubnetAddressPrefix: DMZsubnetAddressPrefix
DMZsubnetName: DMZsubnetName
BastionHostName: BastionHostName
BastionPublicIpName: BastionPublicIpName
}
}
module LAW './src/LAworkspace.bicep' ={
dependsOn: [HubDeploy]
name: WorskspaceName
scope: HubRG
params: {
WorkspaceName: WorskspaceName
publicNetworkAccess : publicNetworkAccess
}
}
module WindowsVM 'src/AzureVM.bicep' = [for i in range(1, WinNum): {
dependsOn: [HubDeploy]
name: 'WindowsVM-${Seed}-${rnd}-${i}'
scope: HubRG
params: {
vmName: 'DC-${i}'
adminPassword: adminPassword
virtualNetworkName: HubVnetName
subnetName: DMZsubnetName
location: location
Command: WinCommand
CustomDnsServer: CustomDnsServer
vmSize: vmsize
Publisher: 'MicrosoftWindowsServer'
Offer: 'WindowsServer'
Sku: '2022-Datacenter'
Version: 'latest'
}
}]
module LinuxVM 'src/AzureVM.bicep' = [for i in range(1, LinNum): {
dependsOn: [HubDeploy]
name: 'LinuxVM-${Seed}-${rnd}-${i}'
scope: HubRG
params: {
vmName: '${LinVMname}-${i}'
adminPassword: adminPassword
virtualNetworkName: HubVnetName
subnetName: DMZsubnetName
location: location
Command: LinCommand
CustomDnsServer: CustomDnsServer
vmSize: vmsize
Publisher: 'Canonical'
Offer: 'UbuntuServer'
Sku: '18.04-LTS'
Version: 'latest'
}
}]
module AKS 'src/AKS.bicep' = {
dependsOn: [LAW]
name: 'AKS-${Seed}'
scope: HubRG
params: {
location: location
clusterName: 'AKS-${Seed}'
LAWName: WorskspaceName
Seed: Seed
SSHPublicKey: SSHPublickey
}
}
output WinVMsName array = [for i in range(0,WinNum):{
name: WindowsVM[i].outputs.hostname
}]
output LinVMsName array = [for i in range(0,LinNum):{
name: LinuxVM[i].outputs.hostname
}]
output HubVnetName string = HubVnetName
output PEsubnetName string = PEsubnetName
output KvName string = KVname
output AKSName string = AKS.name
output laWname string = WorskspaceName