Sample bash script executing Azure CLI 2.0 commands, which can be executed on Linux (tested on Ubuntu) or Bash on Ubuntu on Windows 10


Hello everyone, this blog post directs you to a sample bash script that uses Azure CLI 2.0 that performs some deployment operations on Azure. There is a counterpart script based on PowerShell that can be found at https://gallery.technet.microsoft.com/Azure-Resource-Manager-6514f9ca?redir=0.

Basically this bash script with Azure CLI 2.0 deploys the following components:

  • 1 x Resource Group
  • 1 x Storage Account
  • 2 x Virtual Networks
  • 1 x Network Security Group
  • 2 x Linux Virtual Machines, one in each virtual network

This script requires JQ and Azure CLI 2.0 installed in your Linux/Bash on Ubuntu on Windows.

If you want to use Bash on Ubuntu on Windows 10, please refer to this documentation in order to enable it.

Installing Azure CLI 2.0 on Bash on Ubuntu on Windows

Azure CLI 2.0 is a new version of Azure Xplat CLI, and it is used to manage Azure (Resource Manager mode only) through command line on Windows, Linux and OS X.

  • Updating Python to the latest version (minimum supported is 2.7.6)
    • To check installed version: python –version,
    • Execute the following steps to update to the latest version if needed:
    sudo add-apt-repository ppa:fkrull/deadsnakes-python2.7
    sudo apt-get update 
    sudo apt-get install python2.7
  • Install other dependencies

    sudo apt-get update && sudo apt-get install -y libssl-dev libffi-dev python-dev

 

  • Install Azure CLI 2.0

    sudo su
    curl -L https://aka.ms/InstallAzureCli | bash


    When asked type the following answers:

    /usr/lib/azure-cli
    /usr/bin
    y
    /etc/bash.bashrc

 

  • Exit bash and open it again

 

Installing Azure CLI 2.0 on Ubuntu 16.10

  • These steps assumes you installed a VM based on Ubuntu 16.10 from Azure marketplace, perform upgrade on existing packages

    sudo apt-get update
    sudo apt-get upgrade –y

   

  • Install dependencies

    sudo apt-get update && sudo apt-get install -y libssl-dev libffi-dev python-dev build-essential
    sudo su
    curl -L https://aka.ms/InstallAzureCli | bash


  • When asked type the following answers:

    /usr/lib/azure-cli    
    /usr/bin
    y
    /etc/bash.bashrc


  • Logoff of this session and open session again

 

 

For more information about Azure CLI 2.0 please refer to https://docs.microsoft.com/en-us/cli/azure/overview.



Installing JQ

jq is a json command-line json processor which helps querying (it also transforms) json strings to extract information.

  • On Bash on Ubuntu on Windows 10 prompt execute the following steps:

    • Install dependencies

      sudo apt-get install build-essential libtool autoconf gcc –y


    • Download and extract oniguruma and jq sources

      curl -L https://github.com/kkos/oniguruma/releases/download/v5.9.6_p1/onig-5.9.6_p1.tar.gz -o ./onig-5.9.6_p1.tar.gz
      curl -L https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz -o jq-1.5.tar.gz
      tar -xvzf ./onig-5.9.6_p1.tar.gz
      tar -xvzf ./jq-1.5.tar.gz


    • Install oniguruma

      cd onig-5.9.6
      ./configure && make && sudo make install


    • Install jq

      cd jq-1.5
      ./configure && make && sudo make install


  • To install on full Ubuntu 16.10 execute the following:

    sudo apt-get install jq -y


For more information on jq, please refer to https://stedolan.github.io/jq/.

 

 

Running the script

The script can be manually downloaded from https://github.com/paulomarquesc/AzureCLI2.0BashDeployment or you can download directly using curl:

curl -O https://raw.githubusercontent.com/paulomarquesc/AzureCLI2.0BashDeployment/master/azuredeploy.sh

 

Change the file properties to be able to be executed as a script:

chmod 700 ./azuredeploy.sh

 

Authenticate to azure with az login (follow the steps to sign on using a browser and entering your Azure AD or MSA account that you use to manage Azure resources):

az login

 

Basic Script syntax:

./azuredeploy.sh -s <subscription name> -r <resource group name> -l <location>

 

 

Hope that this blog post gives you a good visibility on how to use Azure CLI 2.0 and bash. This script was tested on Ubuntu 16.10 and Bash on Ubuntu on Windows 10 environments.

 

Regards

 

Paulo


Comments (0)

Skip to main content