#!/bin/bash -e ################################################################################ ## File: azpowershell.sh ## Desc: Installed Azure PowerShell ################################################################################ # List of versions toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json" versions=$(jq -r '.azureModules[] | select(.name | contains("az")) | .versions[]' $toolset) # Try to install and update PowerShellGet before the actual installation pwsh -Command "Install-Module -Name PowerShellGet -Force" pwsh -Command "Update-Module -Name PowerShellGet -Force" # Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) for version in ${versions[@]}; do pwsh -Command "Save-Module -Name Az -LiteralPath /usr/share/az_$version -RequiredVersion $version -Force -Verbose" done # Run tests to determine that the software installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" for version in ${versions[@]}; do modulePath="/usr/share/az_$version" pwsh -Command " \$env:PSModulePath = '${modulePath}:' + \$env:PSModulePath; if ( -not (Get-Module -ListAvailable -Name Az.Accounts)) { Write-Host 'Az Module was not installed' exit 1 }" if [ $? -ne 0 ]; then echo "Az version $version is not installed" exit 1 fi done