Automating Azure Infrastructure Solutions with Aleksandar Nikolic
Microsoft Azure Portal is a great management tool for your Azure resources. People like clean, modern looking, and easy-to-use graphical interface. However, when you start working on more complex IaaS solutions that involves a number of Azure resources, you will quickly realize that GUI wizards don't scale. Automation is a key to fully embrace what Azure IaaS offers in a consistent and optimal manner.
The Azure Portal is a great management tool for your Azure resources. People like clean, modern looking, and easy-to-use graphical interface. However, when you start working on more complex IaaS solutions that involves a number of Azure resources, you will quickly realize that GUI wizards don’t scale. Automation is a key to fully embrace what Azure IaaS offers in a consistent and optimal manner. It saves time and increases the reliability of regular administrative tasks. In this course, you will learn how to create and scale the most common IaaS services, and how to automate the manual, long-running, errorprone, and frequently-repeated tasks that are commonly performed in a cloud. We will focus on using VM extensions, Azure PowerShell, Azure CLI, Azure Cloud Shell, Azure Automation, Azure Automation State Configuration (DSC) (with a connection to Azure Monitor Logs), ARM templates, Ansible, Terraform, and event-based automation with PowerShell in Azure Functions. The course includes a variety of practical exercises after each presentation.
After completion of this course you will have a solid understanding of how to automate provisioning and management of virtual machines, set up networking, manage virtual machine storage, and some of the common VM extensions using different automating technologies in Azure
IT Professionals and developers who want to automate provisioning and management of Azure Virtual Machines and related IaaS resources.
Module 1: Using Azure PowerShell / Azure CLI / Azure Cloud Shell
To create and manage Azure infrastructure solutions in a consistent manner at scale, some form of automation is typically desired. There are many tools and solutions that allow you to automate the complete Azure infrastructure deployment and management lifecycle. This module introduces some of the infrastructure automation tools that you can use in Azure.
- Installing and configuring Azure PowerShell
- Installing and configuring Azure CLI
- Using Azure Cloud Shell
- Using Visual Studio Code and Windows Terminal
Module 2: Automating Azure Networking
This module introduces the student to automating Azure Networking and its common management
- Creating a virtual network for multi-tier applications
- Implementing network security groups (NSG)
- Configuring VNet peering
Module 3: Automating Azure Storage
This module introduces the student to automating Azure Storage (Blob and File storage) and its common
- Create a storage account and retrieve the access keys
- Perform Azure Blob storage operations
- Migrate Blobs across storage accounts using AzCopy
- Uploading a VHD to Azure Storage
- Creating, connecting, and mounting Azure File Share
Module 4: Automating Azure Virtual Machines
This module introduces the student to creating, configuring, and managing Azure Virtual Machines (VM)
- Creating Azure VM
- Creating highly available virtual machines
- Managing a VM using VM extensions (Custom Script, DSC…)
- Monitoring a VM with Log Analytics
- Creating a managed image of a generalized VM
- Creating a VM from a managed OS disk
- Back up a virtual machine
- Encrypting virtual disks on a VM
- Exploring Azure VMs using Resource Graph
Module 5: Azure Automation
This module introduces the student to using the Azure Automation service that works the best when it is linked to the Azure Monitor Logs (Log Analytics). Student will learn how to author, test, and schedule automation runbooks to automate and monitor Azure infrastructure. Azure Automation can run across both Windows and Linux VMs, as well as on-premises virtual or physical machines with a hybrid runbook worker.
- Configuring Automation accounts
- Creating a Log Analytics workspace
- Creating runbooks
- Adding a module
- Importing and scheduling a runbook
- Starting a runbook
Module 6: Azure Automation State Configuration (Desired State Configuration) and Azure Policy Guest
Azure Automation also provides a State Configuration (DSC) service that allows you to create definitions for how a given set of VMs (Windows and Linux) should be configured. This module details how to ensure that the required configuration is applied and the VM stays consistent. It also covers how to audit settings inside a VM using Azure Policy Guest Configuration.
- Desired State Configuration (DSC) Overview
- Onboarding machines for management
- Compiling DSC configurations
- Configure machines to a desired state and manage drift
- Forwarding Azure Automation State Configuration reporting data to Azure Monitor Logs
Module 7: Azure Resource Manager Template
This module walks a student through the steps of deploying Azure resources using the Azure Resource Manager (ARM) templates. ARM templates are files that define the resources we need to deploy for our
solution. They enable idempotent deployment of Azure infrastructure resources and give us a full declarative solution to build our environment and provision our VMs.
- Visual Studio Code extension for ARM templates
- Understanding the structure and syntax of ARM templates
- Creating an ARM template
- Deploying an ARM template
- View deployment operations
- Export an ARM template and redeploy
Module 8: 3rd-party Automation Tools (1): Ansible
Ansible is an automation engine for configuration management, VM creation, or application deployment. Ansible uses an agent-less model, typically with SSH keys, to authenticate and manage target machines. Configuration tasks are defined in playbooks, with a number of Ansible modules available to carry out specific tasks.
- Installing and configuring Ansible
- Creating a basic VM
- Create a complete VM environment including supporting resources
Module 9: 3rd-party Automation Tools (2): Terraform
Terraform is an automation tool that allows you to define and create an entire Azure infrastructure with a single template format language. You define templates that automate the process to create network, storage, and VM resources for a given application solution. Terraform simplifies the infrastructure deployment without needing to convert to an Azure Resource Manager template.
- Installing and configuring Terraform with Azure
- Creating an Azure infrastructure with Terraform
Module 10: Event-based Automation with PowerShell in Azure Functions
Azure Functions enables users to deliver event-based services using serverless architecture. A student will learn how PowerShell works in Azure Functions and the new scenarios it opens up to deliver seamless automation across Azure and on-premises environments. This module will cover the core architecture of how PowerShell works in Azure Functions and the benefits and limitations it has when automating tasks.
- Setting up PowerShell in Azure Functions
- Running event-based automation tasks in Azure and on-premises