TemplateParameterObject Parameter in Azure Powershell New-AzureRmResourceGroupDeployment
2018, Jun 11
If you’re initiating a deployment to Azure using an ARM template, then you can make use of the TemplateParameterObject to pass through a hashtable that contains the parameters for the template.
EG.
$params = @{
clusterName = $clustername
adminUsername = "myadmin"
adminPassword = "myCompl000xPa%%%%wo"
certificateThumbprint = $NewCert.Thumbprint
sourceVaultResourceId = $vaultResourceId
certificateUrlValue = $NewSecret.Id
nt0InstanceCount = 3
nodeTypeSize = "Standard_D2_v2"
SFReverseProxyPort = 19081
}
When you come to deploy the template using Powershell, you can therefore run something like this.
$clustername="SfChallenge2018".ToLower()
$rg = Get-AzureRmResourceGroup -Name $clustername -ErrorAction SilentlyContinue
if ($rg -eq $null) {
$rg =New-AzureRmResourceGroup $clustername -Location "WestEurope"
}
$params = @{
clusterName = $clustername
adminUsername = "myadmin"
adminPassword = "myCompl000xPa%%%%wo"
certificateThumbprint = $NewCert.Thumbprint
sourceVaultResourceId = $vaultResourceId
certificateUrlValue = $NewSecret.Id
nt0InstanceCount = 3
nodeTypeSize = "Standard_D2_v2"
SFReverseProxyPort = 19081
}
$deployment = New-AzureRmResourceGroupDeployment -ResourceGroupName $rg.ResourceGroupName -Name $rg.ResourceGroupName `
-TemplateFile "C:\sfHack-arm-templates\arm-templates\sf-cluster.json" `
-TemplateParameterObject $params -Verbose