How To Automate Your Development Virtual Machines In Azure

Microsoft offers more than 200 cloud services. Azure Automation is a very powerful service in the Microsoft Cloud to automate other services.

For example Azure Automation can help in order to automate

  • Auto space provisioning/ Backup Restore space
  • VM’s availability in specific hours (On Prem/Cloud)
  • Notify users of underutilized VMs and perform remediation
  • Alert on a VM then turn on tracing, collect logs, upload to Azure Storage and make available in Visual Studio for troubleshooting
  • Deploy a new service to Azure and configure the end points for CPU and Memory alerts

There are many things you can automate but below I will automate one scenario

Scenario: Azure Dev VM's required only in office hours (9:00 AM - 5:00 PM). That automation will save your VM consumption time significantly.

You don't need to Start/Stop manually VM's daily.

Here is step by step guide

  1. Open Azure Portal with URL https://portal.azure.com



  2. Click on more services

    Azure Portal

  3. Search with name "Automation" you will found (Automation Account)

    Azure Portal

  4. Click "Add" to create new "Automation Account"



  5. Provide necessary details like name, Subscription, Resource Group, Location etc as in example its "TariqAzureAutomationAccount"

    Azure Portal

  6. After you press create button you can see bell sign for status  -- either created or not yet

    Azure Portal

  7. In below image Automation Account created

    Azure Portal

  8. Click on created automation account for details and here you can see "RunBooks", Click on "RunBooks"

    Azure Portal

  9. This will redirect to page shown below to create new "RunBook"

    Azure Portal

  10. Provide details like Name, Type as shown below

    Azure Portal

  11. After some seconds you can see "RunBook" created

    Azure Portal

  12. Click on newly created RunBook as in my example is "MyTestRunBook", click Edit button

    Azure Portal

  13. This is called Canvas where you can write code, here I pasted Connection String. This will handle authentication with Automation Run as account

    Azure Portal

    $Conn = Get-AutomationConnection -Name AzureRunAsConnection
    Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID `
    -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint

  14. On the left side you can find PowerShell commands available for further actions.

    Azure Portal

  15. In my example we want to start Azure Development VM, so selected "Start VM" command by doing right click and adding to canvas.

    Azure Portal

  16. This will look like this.

    Azure Portal

  17. Put your VM name and Resource Group Name as shown below.

    Azure Portal

  18. After saving, click on start

    Azure Portal

  19. After some moments this will show you status like below

    Azure Portal

  20. Now save and click Publish

    Azure Portal

  21. Once you click Publish option it will give you an alert

    Azure Portal

  22. Window will look like below and you can set schedule for your job

    Azure Portal

  23. Click on Schedule in order to create new schedule

    Azure Portal

  24. In the below example name of schedule is "StartDailyVMs" and start time is 9:00 AM

    Azure Portal

  25. You can see schedule has been created and "Status" is On

    Azure Portal

  26. Schedule is already done and job will be executed next day morning at 9:00AM but here you run job forcefully also

    Azure Portal

  27. After job I can see the status of my existing virtual machine "TestVM1" is changed from "Stopped" to "Starting"

    Azure Portal