Azure and PowerShell - Automating Azure Infrastructure Solutions with Aleksandar Nikolić
In this course, you will learn how to create and scale the most common IaaS services, and how to automate the manual, long-running, error-prone, and frequently-repeated tasks that are commonly performed in a cloud.
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.
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.
Target Audience and Prerequisites
The course is intended for IT Professionals and developers who want to automate provisioning and management of Azure Virtual Machines and related IaaS resources.
Ti attend this course you need basic knowledge of Azure Infrastructure Services (IaaS) and PowerShell.
Aleksandar Nikolić is a Microsoft Most Valuable Professional (MVP) for Cloud and Datacenter Management and Microsoft Azure, a co-founder of PowerShellMagazine.com, and the community manager of PowerShell.com. He is a Microsoft Azure Advisor and has delivered a PowerShell training to Microsoft employees at Microsoft HQ in Redmond, USA.
After more than 17 years as a system administrator, Aleksandar is experienced presenting and speaking to Microsoft customers, and skilled with describing complex management and automation tasks. He also delivers PowerShell and Azure training courses around the world (Iceland, Norway, Sweden, USA, Finland, the Netherlands, Serbia, Croatia...) and is a frequent speaker at various IT conferences (Microsoft Ignite, Microsoft TechDays, PowerShell Conference Europe, MMS, NIC, IT/Dev Connections, ExpertsLive Europe and USA…).
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
Automating Azure Networking
This module introduces the student to automating Azure Networking and its common management tasks.
- Creating a virtual network for multi-tier applications
- Implementing network security groups (NSG)
- Configuring VNet peering
Automating Azure Storage
This module introduces the student to automating Azure Storage (Blob and File storage) and its common management tasks.
- 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
Automating Azure Virtual Machines
This module introduces the student to creating, configuring, and managing Azure Virtual Machines (VM) using different automation techniques.
- 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
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
Azure Automation State Configuration (Desired State Configuration) and Azure Policy Guest Configuration
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
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
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
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
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