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