Azure-ARM-Create-MultipleVM

My command:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PS C:\temp> New-AzResourceGroupDeployment -ResourceGroupName "jackywinupdate1rg" -TemplateFile "C:\Users\jchiou\Downloads\azuredeploy.json"              
cmdlet New-AzResourceGroupDeployment at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
location: Australia East
subnetName: default
virtualNetworkId: /subscriptions/7c……… /resourceGroups/jackywinupdate1rg/providers/Microsoft.Network/virtualNetworks/jackywinupdate1rg-vnet
virtualMachineRG: jackywinupdate1rg
osDiskType: StandardSSD_LRS
createOption: attach
osType: Windows
virtualMachineSize: Standard_D2s_v3
ip_list: 192.168.9.231,192.168.9.232
VM_name_list: vhd1_atm1_vm_0,vhd1_atm1_vm_1
nic_name_list: vhd1_atm1_nic_0,vhd1_atm1_nic_1
diskname_list: vhd1_atm1_disk_0,vhd1_atm1_disk_1

My JSON content:

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
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string"
},
"subnetName": {
"type": "string"
},
"virtualNetworkId": {
"type": "string"
},
"virtualMachineRG": {
"type": "string"
},
"osDiskType": {
"type": "string"
},
"createOption": {
"type": "string"
},
"osType": {
"type": "string"
},
"virtualMachineSize": {
"type": "string"
},
"ip_list": {
"type": "string"
},
"VM_name_list": {
"type": "string"
},
"nic_name_list": {
"type": "string"
},
"diskname_list": {
"type": "string"
}
},
"variables": {
"vnetId": "[parameters('virtualNetworkId')]",
"subnetRef": "[concat(variables('vnetId'), '/subnets/', parameters('subnetName'))]"
},
"resources": [
{
"name": "[split(parameters('nic_name_list'),',')[copyIndex()]]",
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2018-10-01",
"location": "[parameters('location')]",
"dependsOn": [],
"copy": {
"name": "niccopy",
"count": "[length(split(parameters('nic_name_list'),','))]"
},
"properties": {
"ipConfigurations": [
{
"name": "[concat('ipconfig',copyIndex(1))]",
"properties": {
"privateIpAddress": "[split(parameters('ip_list'),',')[copyIndex()]]",
"privateIpAllocationMethod": "Static",
"subnet": {
"id": "[concat(variables('vnetId'), '/subnets/', parameters('subnetName'))]"
}
}
}
]
},
"tags": {
"dataClassification": "UNDEFINED"
}
},
{
"name": "[split(parameters('VM_name_list'),',')[copyIndex()]]",
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2018-10-01",
"location": "[parameters('location')]",
"dependsOn": [
"niccopy"
],
"copy": {
"name": "VMCopy",
"count": "[length(split(parameters('VM_name_list'),','))]"
},
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('virtualMachineSize')]"
},
"storageProfile": {
"osDisk": {
"createOption": "[parameters('createOption')]",
"osType": "[parameters('osType')]",
"managedDisk": {
"id": "[resourceId('Microsoft.Compute/disks', split(parameters('diskname_list'),',')[copyIndex()])]"
}
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', split(parameters('nic_name_list'),',')[copyIndex()])]"
}
]
}
},
"tags": {
"dataClassification": "UNDEFINED"
}
}
],
"outputs": {
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Result:
DeploymentName : azuredeploy
ResourceGroupName : jackywinupdate1rg
ProvisioningState : Succeeded
Timestamp : 9/4/2019 4:07:45 AM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
==================== ========================= ==========
location String Australia East
subnetName String default
virtualNetworkId String /subscriptions/7cfb02…../resourceGroups/jackywinup
date1rg/providers/Microsoft.Network/virtualNetworks/jackywinupdate1rg-vnet
virtualMachineRG String jackywinupdate1rg
osDiskType String StandardSSD_LRS
createOption String attach
osType String Windows
virtualMachineSize String Standard_D2s_v3
ip_list String 192.168.9.231,192.168.9.232
vM_name_list String vhd1_atm1_vm_0,vhd1_atm1_vm_1
nic_name_list String vhd1_atm1_nic_0,vhd1_atm1_nic_1
diskname_list String vhd1_atm1_disk_0,vhd1_atm1_disk_1