Azure PowerShell: How it Works, Best Practices, and Tutorials
Azure PowerShell: How it Works, Best Practices, and Tutorials
Torn between your love of both Azure and command lines? Here's Azure PowerShell, which you can use to provision VMs and create cloud services.
Join the DZone community and get the full member experience.Join For Free
We’ve talked about Azure and some of its helpful features before, such as Azure App Services and the oh-so-useful deployment slots, how to find Azure App service logs for your apps, and other tips. If you’re on the fence about what cloud service is right for you, you might find our recent Azure vs. AWS comparison helpful. However, if you’re already using Azure, you want to make the most of its capabilities, and Azure PowerShell can help you do just that. Let’s take a look at Azure PowerShell, how it works, and how you can use it to your advantage.
What Is Azure PowerShell?
Azure PowerShell is basically an extension of Windows PowerShell. It lets Windows PowerShell users control Azure’s robust functionality. From the command line, Azure PowerShell programmers use preset scripts called cmdlets to perform complex tasks like provisioning virtual machines (VMs) or creating cloud services. APS can work programmatically too, to automate tasks. While some users complain the terminal feels “unfinished” and support is lacking, proponents point out the ease of use aids typically intensive tasks.
How Azure PowerShell Works
Azure PowerShell works by using mini scripts called cmdlets to perform powerful, common tasks in Microsoft Azure through an extension of Windows PowerShell. Without logging in, users can enter a single cmdlet from the command line to create a new virtual machine. Other single-cmdlet functions include configuring a virtual machine, moving content from a local machine to an Azure storage blog, and creating new resource groups. You can also write scripts to automate your use of cmdlets.
How to Install Azure PowerShell
Azure PowerShell works by extending Windows PowerShell with its own set of modules and cmdlets. Programmers can enter these cmdlets from the command line to perform tasks. Alternately, the cmdlets can work programmatically, to automate complicated tasks in the Azure cloud.
To use Azure PowerShell, users first need to install the system. That requires a subscription to Azure, though a free trial is available here.
Install Azure PowerShell
Once Azure is installed, users must install Azure PowerShell. First log into the Azure Management Portal, then click the “Downloads” tab. Under “Command-line tools,” click “Windows PowerShell Install.” Alternately, download it from the PowerShell Gallery here.
Connect to Your Azure Account
You can run the Azure PowerShell cmdlets either from the Windows PowerShell console or from the PowerShell ISE.
Once you’ve downloaded Azure PowerShell and connected it to your Azure account, you can start running the cmdlets.
Azure Cloud Shell
At Build 2017 Microsoft announced the new Azure Cloud Shell which is built into the Azure Portal. This makes it easier than ever to use Azure PowerShell. You don’t have to mess with authenticating to your account, and it is always there. It even provides your own storage to save scripts!
How Azure PowerShell Can Help
The Azure GUI offers an effective way to control Azure’s many services. That said, there comes a time when programmers want to speed up their use of Azure or automate processes to save time and hassle. The Azure PowerShell was designed specifically with speed and automation in mind. Whether it succeeds is open to debate.
Programmers can use Azure PowerShell’s cmdlets to create and manage multiple virtual machines. The system also comes in handy for building environments to test new scripts.
Below is a list of other critical Azure PowerShell benefits from Microsoft Contractor David McWee.
- Create a new virtual machine. Use the New-AzureRmVm cmdlet to create a new VM. You’ll have to create the Azure RM Config object first. Even so, this one can save hours of data entry in Azure Portal forms.
- Configure a virtual machine. The Set-AzureRmVMCustomerScriptExtension cmdlet lets users run script files on their VM without the need to log in first.
- Move content to an Azure Storage Blob from a local machine. The Set-AzureStorageBlobContent cmdlet lets you move content in a hassle-free way.
- Create a new resource group for an Environment with the New-AzureRmResourceGroup cmdlet. This makes it easy to control and keep track of environments without a lot of extra work.
Not everyone sings PowerShell’s praises. In fact, a lot of people just plain hate it. Googling “Azure PowerShell sucks” returns several emphatic results.
The reasons for the dislike are varied. According to some users, the terminal seems half-baked. Support is less than exemplary. Commands to perform basic and important tasks are missing. It seems thrown-together. The documentation is hard to follow.
So what are the alternatives to Azure PowerShell? If you’re not Azure’s biggest fan, you might find these alternatives helpful:
- Cerebrata makes a popular alternative to Azure PowerShell called Azure Management Studio. It’s not cheap, but users say the extra ease-of-use is worth the cost. Not sure? Try it with a 30-day free trial.
- The Azure Explorer tool by Cerabrata is a free blob manipulation tool with some of the functions of Azure PowerShell. It’s free and easy to use.
- Another alternative to Azure PowerShell involves not using Azure at all. There are migration barriers here, but the rewards may well be worth the time. Some good alternative options include Kahu, CloudSigma, DigitalOcean and CloudVPS.
Since Azure PowerShell is an extension of Windows PowerShell that controls Azure, the best practices are a mix of rules for Azure and best practices for PowerShell. The list includes:
- Data Validation. For example, if your script is doing something to a file and it expects a .CSV file, make sure it rejects files with non .CSV extensions.
- Error Handling. Add code that catches errors and lets scripts fail gracefully.
- Use Full cmdlet names. PowerShell allows the use of aliases in place of full cmdlets. While this saves time, it sacrifices readability in scripts.
- When creating VMs, use the DS- and GS-series. These sizes support Premium Storage, which gives the best disk I/O performance.
You can also get Retrace, Stackify’s APM tool, through the Azure Marketplace to retrace your code from development to production. We built it with Azure in mind. For a full list of best practices for managing a Windows VM on Azure, see Microsoft’s documentation page here.
Additional Resources and Tutorials on Azure PowerShell
For further reading on PowerShell, including some helpful Azure PowerShell tutorials, visit the following helpful resources:
Published at DZone with permission of Angela Stringfellow , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.