Completes the following:
- Deploys multiple virtual machines over multiple resource groups.
- Encrypts all os and data disks using a key encryption key from a specified keyvault.
- Mounts all hard drives set up in the vms.
- Enables azure monitor and links all vms to the core log analytics workspace.
- Automatically accepts terms for using custom images.
This command forms part of the IaaS Building Block.
Parameters
-SettingsFile
Required. (String) File path for the settings file to be converted into a settings object.
-SettingsObject
Required. (Object) Object containing the configuration values required to run this cmdlet.
-LocalAdminUsername
Required. (SecureString) Local admin username for deployed vms, max length 20 characters.
-LocalAdminPassword
Required. (SecureString) Local admin passwords for deployed vms, requires three of the following character types: * Uppercase * Lowercase * Numeric * Special
-TagSettingsFile
Required. (String) File path for the tag settings file to be converted into a tag settings object.
-WhatIf
(Switch) Run the command without executing any actions, so that no changes are made. The command will output a description of actions to be performed against the affected resources in the console window. Use this option if you are unsure of the overall impact of your command and wish to review it before committing to making changes.
-Confirm
(Switch) Run the command without executing any actions, so that no changes are made. The command will output a description of actions to be performed against the affected resources in the console window. Use this option if you are unsure of the overall impact of your command and wish to review it before committing to making changes.
Usage
Example 1
1
New-CmAzIaasCompute -SettingsFile "c:/directory/settingsFile.yml" -LocalAdminUsername "username" -LocalAdminPassword "password"
Example 2
1
New-CmAzIaasCompute -SettingsObject $settings -LocalAdminUsername "username" -LocalAdminPassword "password"
Settings
Beta documentation
The following schema documentation is automatically generated as part of a recent roadmap task. There may be inaccuracies or incomplete information while we flush out bugs; please refer to the packed project settings examples where necessary.Settings Root.
- Component
-
Value to determine what cmdlet should be dynamically loaded for these settings.
- Location
-
Default location for all deployed resources.
- DSCConfigNode
-
Name of the compiled configuration node in automation account.
- Service
-
Contains dependency and publish details for service location.
- Dependencies
-
Contains dependency details for service location.
- Automation
-
Dependency value to fetch existing resource type.
- Keyvault
-
Dependency value to fetch existing resource type.
- VNet
-
Global default dependency value to fetch existing resource type.
- Workspace
-
Dependency value to fetch existing resource type.
- Publish
-
Contains publish details for service location.
- ResourceGroup
-
Global default value to publish on deployed resource type.
- VM
-
Global default value to publish on deployed resource type.
- NIC
-
Global default value to publish on deployed resource type.
- proximityPlacementGroup
-
Global default value to publish on deployed resource type.
- availabilitySet
-
Global default value to publish on deployed resource type.
- DiskEncryptionKey
-
Name of key encryption key in the existing key vault.
- Groups
-
Contains list of details required to deploy resource groups, vm's and associated resources.
- Name
-
Becomes part of the generated resource group's name.
- Location
-
Resource group deployment location
- Service
-
Contains dependency and publish details for service location.
- Publish
-
Contains publish details for service location.
- ResourceGroup
-
Local overriding value to publish on deployed existing resource type.
- proximityPlacementGroups
-
Contains list of details required to deploy proximityPlacementGroups.
- Name
-
Becomes part of the generated proximityPlacementGroups name.
- Location
-
ProximityPlacementGroup's location
- Service
-
Contains dependency and publish details for service location.
- Publish
-
Contains publish details for service location.
- proximityPlacementGroup
-
Local overriding value to publish on deployed existing resource type.
- availabilitySets
-
Contains list of details required to deploy availabilitySets.
- Name
-
Becomes part of the generated availabilitySets name.
- Location
-
availabilitySets location
- platformUpdateDomainCount
-
Provide total number of Update Domains in Availability set.
- platformFaultDomainCount
-
Provide total number of Fault Domains in availability set.
- proximityPlacementGroup
-
Specifies proximity placement group to attach with availability set.
- sku
-
sku details.
- name
-
The sku name.
Valid values:
"Classic" , "Aligned" , "classic" , "aligned"
- tier
-
Specifies the tier of virtual machines in a scale set.
Valid values:
"Standard" , "Basic" , "standard" , "basic" , ""
- capacity
-
Specifies the number of virtual machines in the scale set.
- Service
-
Contains dependency and publish details for service location.
- Publish
-
Contains publish details for service location.
- availabilitySet
-
Local overriding value to publish on deployed existing resource type.
- VirtualMachines
-
Contains list of details required to deploy vm's and associated resources.
- Name
-
Becomes part of the generated virtual machine's name.
- Size
-
Preset vm hardware configuration option (predefined in azure).
- UpdateGroup
-
Pre-defined group of azure defined vm update bundles.
Valid values:
"Critical" , "CriticalSecurity" , "Recommended" , "All" , "critical" , "criticalsecurity" , "recommended" , "all" , ""
- UpdateFrequency
-
The frequency of the updates applied to the vm.
Valid values:
"Monthly" , "Monday" , "Tuesday" , "Wednesday" , "Thursday" , "Friday" , "Saturday" , "Sunday" , "Daily" , "monthly" , "monday" , "tuesday" , "wednesday" , "thursday" , "friday" , "saturday" , "sunday" , "daily" , ""
- ImageReference
-
Container of details in regards to the vm image used.
- Publisher
-
Publisher source of the image.
- Offer
-
Platform or marketplace image product.
- Sku used
-
Image sku.
- Version
-
Platform or marketplace image version, (Major.Minor.Build) or latest.
- Location
-
Virtual machine deployment location
- zone
-
Virtual machine deployment zone.
Valid values:
"1" , "2" , "3" , ""
- zone
-
Availability set of virtual machine.
- Service
-
Contains dependency and publish details for service location.
- Publish
-
Contains publish details for service location.
- VM
-
Local overriding value to publish on deployed existing resource type.
- NIC
-
Local overriding value to publish on deployed existing resource type.
- OSDisk
-
Container of details in regards to vm's operating system disk.
- OSType
-
The over arching type of OS to use.
Valid values:
"Windows" , "Linux" , "windows" , "linux"
- ExpandableDiskSizeGB
-
The size of the disk in gigabytes. (Overwrites disk size in vm image).
- caching
-
Defines disk caching strategy
Valid values:
"None" , "ReadOnly" , "ReadWrite" , "none" , "readonly" , "readwrite"
- DataDiskSizes
-
List of details specifiying the size of and how many data disks will be deployed with the vm.
- diskSizeGB
-
The size of the disk in gigabytes.
- Caching
-
Defines disk caching strategy
Valid values:
"None" , "ReadOnly" , "ReadWrite" , "none" , "readonly" , "readwrite"
- Plan
-
Container of details in regards to what vm marketplace image to use for the vm.
- Name
-
Plan id.
- Publisher
-
Publisher id source of the image..
- Product
-
Marketplace image product.
- Networking
-
Container of details in regards to network dependency values.
- Service
-
Contains dependency and publish details for service location.
- Dependencies
-
Contains dependency details for service location.
- Vnet
-
Local overriding dependency value to fetch existing resource type.
- IPAddress
-
Private ip address for the network interface card. Must follow ipv4 format.
- SubnetName
-
Name of subnet to use in existing vnet.
Examples
The following example files are automatically generated from the settings file schema definition to show how the specification can be used in practise. Cloudmarque can accept both JSON and YAML parameter files.
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
{
"component": "string",
"location": "string",
"dscConfigNode": "string",
"service": {
"dependencies": {
"automation": "string",
"keyvault": "string",
"vnet": "string",
"workspace": "string"
},
"publish": {
"resourceGroup": "string",
"vm": "string",
"nic": "string",
"proximityPlacementGroup": "string",
"availabilitySet": "string"
}
},
"diskEncryptionKey": "string",
"groups": [
{
"name": "string",
"location": "string",
"service": {
"publish": {
"resourceGroup": "string"
}
},
"proximityPlacementGroups": [
{
"name": "string",
"location": "string",
"service": {
"publish": {
"proximityPlacementGroup": "string"
}
}
}
],
"availabilitySets": [
{
"name": "string",
"location": "string",
"platformUpdateDomainCount": "integer",
"platformFaultDomainCount": "integer",
"proximityPlacementGroup": "string",
"sku": {
"name": "Classic",
"tier": "Standard",
"capacity": "integer"
},
"service": {
"publish": {
"availabilitySet": "string"
}
}
}
],
"virtualMachines": [
{
"name": "string",
"size": "string",
"updateGroup": "Critical",
"updateFrequency": "Monthly",
"imageReference": {
"publisher": "string",
"offer": "string",
"sku": "string",
"version": "string"
},
"location": "string",
"zone": "1",
"availabilitySet": "string",
"service": {
"publish": {
"vm": "string",
"nic": "string"
}
},
"osDisk": {
"osType": "Windows",
"expandableDiskSizeGB": 0,
"caching": "None"
},
"dataDisks": [
{
"diskSizeGB": 0,
"caching": "None"
}
],
"plan": {
"name": "string",
"publisher": "string",
"product": "string"
},
"networking": {
"service": {
"dependencies": {
"vnet": "string"
}
},
"ipAddress": "string",
"subnetName": "string"
}
}
]
}
]
}
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
component: "string" # Optional
location: "string" # Mandatory
dscConfigNode: "string" # Optional
service: # Mandatory
dependencies: # Mandatory
automation: "string" # Mandatory
keyvault: "string" # Mandatory
vnet: "string" # Optional
workspace: "string" # Mandatory
publish: # Optional
resourceGroup: "string" # Optional
vm: "string" # Optional
nic: "string" # Optional
proximityPlacementGroup: "string" # Optional
availabilitySet: "string" # Optional
diskEncryptionKey: "string" # Mandatory
groups: # Mandatory
- name: "string" # Mandatory
location: "string" # Optional
service: # Optional
publish: # Optional
resourceGroup: "string" # Optional
proximityPlacementGroups: # Optional
- name: "string" # Mandatory
location: "string" # Optional
service: # Optional
publish: # Optional
proximityPlacementGroup: "string" # Optional
availabilitySets: # Optional
- name: "string" # Mandatory
location: "string" # Optional
platformUpdateDomainCount: "integer" # Mandatory
platformFaultDomainCount: "integer" # Mandatory
proximityPlacementGroup: "string" # Optional
sku: # Mandatory
name: "Classic" # Mandatory
tier: "Standard" # Optional
capacity: "integer" # Optional
service: # Optional
publish: # Optional
availabilitySet: "string" # Optional
virtualMachines: # Mandatory
- name: "string" # Mandatory
size: "string" # Mandatory
updateGroup: "Critical" # Optional
updateFrequency: "Monthly" # Optional
imageReference: # Mandatory
publisher: "string" # Mandatory
offer: "string" # Mandatory
sku: "string" # Mandatory
version: "string" # Mandatory
location: "string" # Optional
zone: "1" # Optional
availabilitySet: "string" # Optional
service: # Optional
publish: # Optional
vm: "string" # Optional
nic: "string" # Optional
osDisk: # Mandatory
osType: "Windows" # Mandatory
expandableDiskSizeGB: 0 # Mandatory
caching: "None" # Optional
dataDisks: # Optional
- diskSizeGB: 0 # Mandatory
caching: "None" # Optional
plan: # Optional
name: "string" # Mandatory
publisher: "string" # Mandatory
product: "string" # Mandatory
networking: # Mandatory
service: # Optional
dependencies: # Optional
vnet: "string" # Optional
ipAddress: "string" # Optional
subnetName: "string" # Mandatory