#!/bin/bash CreateGroup() { echo Creating resource group $resource_group in '$location' az group create --name $resource_group --location $location } # end of CreateGroup() deployresources() { echo Deploying ARM template '$path_and_filename.json' in resource group $resource_group az group deployment create --resource-group $resource_group --parameters @$path_and_filename.parameters.json --template-file $path_and_filename.json } # end of deployresources Error_Usage() { echo "" echo Usage: echo create-resources arm-file resource-group-name [-c location] echo arm-file: Path to ARM template WITHOUT .json extension. An parameter file with same name plus '.parameters' MUST exist in same folder echo resource-grop-name: Name of the resource group to use or create echo -c: If appears means that resource group must be created. If -c is specified, must use enter location echo "" echo Examples: echo "1 create-resources path_and_filename testgroup (Deploys path_and_filename.json with parameters specified in path_and_filename.parameters.json file)." echo "2 create-resources path_and_filename newgroup -c westus (Deploys path_and_filename.json (with parameters specified in path_and_filename.parameters.json file) in a NEW resource group named newgroup in the westus location)" } if [ $# -le 1 ]; then Error_Usage exit 1 fi if [ "$1" == "" ]; then echo "path_and_filename is empty" Error_Usage exit 1 fi if [ "$2" == "" ]; then echo "Resource Group is empty" Error_Usage exit 1 fi if [ ! -f "$1.json" ]; then echo "$1.json doesn't exist" exit 1 fi if [ ! -f "$1.parameters.json" ]; then echo "$1.parameters.json doesn't exist" exit 1 fi path_and_filename=$1 resource_group=$2 if [ "$3" == "-c" ]; then echo "Resource Group needs to be created" if [ "$4" == "" ]; then echo "but Resource Group name is missing" Error_Usage exit 1 else location=$4 CreateGroup fi fi deployresources echo "all resources finished successfully"