The simple way to describe Azure Cloud Shell is an on-demand Linux VM with a managed toolset that is accessible from virtually anywhere. You can access Azure Cloud Shell via the Azure Portal, shell.azure.com, the Azure Mobile App, and Visual Studio Code. Azure Cloud Shell pricing is simple. You only need to pay for storage that is used to persist your files between Cloud Shell sessions. Finally, Cloud Shell offers two shell experiences – Bash and PowerShell – however you can access PowerShell from Bash and Bash from PowerShell, so just choose whatever you are most comfortable with.
Azure Cloud Shell contains the following tools:
- Linux Tools– bash, zsh, sh, tmux, dig
- Azure Tools– Azure CLI, AzCopy, Service Fabric CLI
- Programming Languages– .NET Core, Go, Java, Node.js, PowerShell, Python
- Editors– vim, nano, emacs, code
- Source Control– git
- Build Tools– make, maven, npm, pip
- Containers– Docker CLI / Docker Machine, Kubectl, Helm, DC/OS CLI
- Databases– MySQL client, PostgreSQL client, sqlcmd utility, mssql-scripter
- Other– iPython Client, Cloud Foundry CLI, Terraform, Ansible, Chef InSpec
You are probably thinking to yourself, that’s great, but what can I use it for? Good question…
Got a bunch of Azure management scripts that you have developed and need to be able to run? Cloud Shell is a great way to run and manage those scripts. You can leverage git for version control and run PowerShell, Bash, or Python scripts whenever and wherever you are. For example, you are grabbing some lunch and the boss sends you an email asking how many VMs are currently running in your environment and wants the answer right now. Being that this isn’t the first time that the boss has asked this question, you have already created a script that will send a report with how many VMs are currently running. So, you load the Azure Mobile App on your phone, connect to Cloud Shell to run the script and get back to your lunch without having to run back to the office.
Are you an Azure CLI master? Azure Cloud Shell has you covered! Cloud Shell always has the latest version of the Azure CLI without you ever having to maintain a VM or update your local installation.
Need to deploy an agent to a bunch of VMs but don’t want to manage a Configuration Management tool? Once again, Cloud Shell has you covered. Use the built-in Ansible to run a playbook that deploys the agent you need installed.
Do you run a multi-cloud shop? Need to deploy things to both Azure and AWS? Then you are in luck! With Cloud Shell you can use Terraform to deploy both Azure and AWS resources. Another multi-cloud idea would be to install the AWSPowerShell.NetCore PowerShell module to be able to perform day-to-day tasks and automation of AWS.
There are some limitations of Cloud Shell, such as your Cloud Shell session being temporary. It will be recycled after your session is inactive after 20 minutes.
The pricing for Azure Cloud Shell is great. Like I mentioned before, you only pay for storage. Storage is used to persist data between instances of Cloud Shell. If you install a PowerShell module or use git to clone a repo, the next time you fire up Cloud Shell, those files are still there.
Azure Cloud Shell can help with a lot of different use cases and requires very little management. For more information on Azure Cloud Shell visit https://docs.microsoft.com/en-us/azure/cloud-shell/overview or for help getting started with Azure.
-Russell Slater, Senior Cloud Consultant