270 likes | 284 Views
Automation tools for Azure infrastructure. Aleksandar Nikolić | Microsoft MVP. BRK3266. Agenda. Azure PowerShell Azure CLI 2.0 ARM Templates Azure Building Blocks Terraform Ansible. PS> whoami. Aleksandar Nikolić PowerShell and Azure trainer Microsoft Azure MVP
E N D
Automation tools for Azure infrastructure Aleksandar Nikolić | Microsoft MVP BRK3266
Agenda Azure PowerShell Azure CLI 2.0 ARM Templates Azure Building Blocks Terraform Ansible
PS> whoami Aleksandar Nikolić PowerShell and Azure trainer Microsoft Azure MVP Cloud and Datacenter Management MVP Co-founder of PowerShellMagazine.com @alexandair
What do we want to accomplish? A management in a consistent manner at scale Some form of automation is desired Automate the complete Azure infrastructure deployment and management lifecycle
Infrastructure automation tools Automate the configuration of VMs Automate infrastructure management Automate application deployment and delivery Azure PowerShell Azure CLI 2.0
Automate the configuration of VMs Ansible, Chef, and Puppet Desired State Configuration (DSC) VM customization for Linux VMs cloud-init VM customization for all Azure VMs Azure Custom Script Extension and Run Command
Automate infrastructure management The infrastructure build process ARM templates Azure Building Blocks Terraform Custom VM image builds Packer Actions across your Azure and on-premises infrastructure Azure Automation
How to use them Locally PowerShell console or some other shell Windows Subsystem for Linux (WSL) Azure Cloud Shell Visual Studio Code Docker containers
Azure PowerShell AzureRM, a set of modules that use the ARM model PowerShell Gallery or GitHub repo (.msi) Az, a set of modules run on top of Windows PowerShell/PowerShell Core Azure Cloud Shell
Demo Azure PowerShell
Azure CLI 2.0 Command-line experience for managing Azure resources Install it on macOS, Linux, and Windows Azure Cloud Shell az interactive Run it in a Docker container (Linux) docker run -it microsoft/azure-cli
Demo Azure CLI 2.0
ARM Template Deployment of resources using templates Resources are JSON objects Customize the deployment parameterizing some of the property values Very powerful; deploy large and complex architectures Authoring is not for the faint of heart
Demo ARM Templates
Azure Building Blocks A tool for deploying Azure infrastructure based on proven practices A CLI tool (azbb) and set of pre-built ARM templates Requires Azure CLI 2.0 Deployment workflow: Specify settings for using the Building Blocks JSON schema azbb merges these settings with best practice defaults Produce a set of parameter files azbb deploys these parameter files using a set of pre-built ARM templates
Azure Building Blocks (a picture is worth a thousand words) Source: https://github.com/mspnp/template-building-blocks/wiki/overview
Demo Azure Building Blocks
HashiCorp Terraform Allows you to define and create an entire Azure infrastructure An open source tool that codifies APIs into declarative configuration files Installed and immediately available for you to use in Cloud Shell Microsoft-published Terraform instance on Linux in the Azure Marketplace Terraform and Azure Terraform extensions for Visual Studio Code
Demo Terraform
Ansible An automation engine for configuration management, VM creation, or app deployment Uses an agent-less model Authenticates and manages target machines using the SSH keys Configuration tasks are defined in Ansible playbooks
Demo Ansible
Summary Imperative, ad-hoc cross-platform scripting Azure PowerShell and Azure CLI Deployment using a declarative model is the real deal ARM templates, Terraform, Ansible, and Building Blocks (infrastructure management) Chef, Puppet, Ansible, and DSC (VM configurations) Use Azure Cloud Shell within Visual Studio Code
Please evaluate this sessionYour feedback is important to us! Please evaluate this session through MyEvaluations on the mobile appor website. Download the app:https://aka.ms/ignite.mobileApp Go to the website: https://myignite.techcommunity.microsoft.com/evaluations