Repeatable deploymentsedit

For repeatable deployments, it is recommended to target a specific template release within the GitHub repository; Each release is identified by tagging the commit and the release notes indicate the changes in the release.

Targeting a specific release ensures that the template parameters remain the same, in addition to which resources are deployed and how they are configured. Furthermore, a release undergoes considerable testing before being considered ready for public release.

As an example, to target 7.4.0 release of the template

Azure CLI 2.0. 

template_base_uri=https://raw.githubusercontent.com/elastic/azure-marketplace
template_version=7.4.0

az group deployment create \
  --resource-group "<name>" \
  --template-uri $template_base_uri/$template_version/src/mainTemplate.json \
  --parameters _artifactsLocation=$template_base_uri/$template_version/src/ \
               esVersion=7.4.0 esClusterName=elasticsearch \
               vmDataDiskCount=1 dataNodesAreMasterEligible=Yes \
               adminUsername=russ adminPassword=Password1234 \
               securityBootstrapPassword=bootstrapPassword123 \
               securityAdminPassword=adminPassword123 \
               securityKibanaPassword=kibanaPassword123 \
               securityLogstashPassword=logstashPassword123 \
               securityBeatsPassword=beatsPassword123 \
               securityApmPassword=apmPassword123 \
               securityRemoteMonitoringPassword=remoteMonitoringPassword123

Azure PowerShell. 

$templateBaseUri = "https://raw.githubusercontent.com/elastic/azure-marketplace"
$templateVersion = "7.4.0"

$parameters = @{
  "_artifactsLocation" = "$templateBaseUri/$templateVersion/src/"
  "esVersion" = "7.4.0"
  "esClusterName" = "elasticsearch"
  "vmDataDiskCount" = 1
  "dataNodesAreMasterEligible" = "Yes"
  "adminUsername" = "russ"
  "adminPassword" = "Password1234"
  "securityBootstrapPassword" = "bootstrapPassword123"
  "securityAdminPassword" = "adminPassword123"
  "securityKibanaPassword" = "kibanaPassword123"
  "securityLogstashPassword" = "logstashPassword123"
  "securityBeatsPassword" = "beatsPassword123"
  "securityApmPassword" = "apmPassword123"
  "securityRemoteMonitoringPassword" = "remoteMonitoringPassword123"
}

$deployment = New-AzureRmResourceGroupDeployment -ResourceGroupName "<name>" `
  -TemplateUri "$templateBaseUri/$templateVersion/src/mainTemplate.json" `
  -TemplateParameterObject $parameters