expo sponsors - intelligent cloud conference · •vm extensions: small applications that provide...
TRANSCRIPT
Expo Sponsors
Event Sponsors
Expo Light Sponsors
Automation Tools for Azure
Aleksandar Nikolić | Microsoft MVP
@alexandair
Agenda
•Azure PowerShell
•Azure CLI 2.0
•ARM Template
•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
Infrastructure automation tools
•A management in a consistent manner at scale
• Some form of automation is desired
•Many tools allow you to 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
• Puppet
• Desired State Configuration (DSC)
• VM customization for Linux VMs
• cloud-init
• VM customization for all Azure VMs
• Azure Custom Script Extension
Automate infrastructure management
• The infrastructure build process• ARM template• Azure Building Blocks• Terraform
• Custom VM image builds• Packer
• Azure Automation
Application deployment and delivery
• Visual Studio Team Services (VSTS)
• Jenkins
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)
• Azure Cloud Shell (public preview)• UPDATE: https://azure.microsoft.com/en-us/blog/pscloudshellrefresh/
• AzureRM.Netcore runs on top of PowerShell Core
Azure PowerShellDEMO
Azure VM extensions
• Azure VM Agent is a secure, lightweight process that manages VM interaction with the Azure Fabric Controller
• VM extensions: Small applications that provide post-deployment configuration and automation tasks
• PowerShell DSC, Chef, Puppet and Custom Script Extensions
• If the application in the extension repository does not exist, then you can use the Custom Script extension and configure your VM with your own scripts and commands
Azure CLI 2.0
• Command-line experience for managing Azure resources
• Install it on macOS, Linux, and Windows
• Azure Cloud Shell (both, Bash and PowerShell)
• Based on Python
• az interactive
• Run it in a Docker container (Linux)• docker run -it microsoft/azure-cli
Azure CLI 2.0DEMO
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
• Require a great deal of knowledge
• Authoring is not for the faint of heart
ARM TemplateAA and ARM TemplateDEMO
Azure Building Blocks
• A tool for deploying Azure infrastructure based on proven practices
• A CLI tool (azbb) and set of ARM templates designed to simplify deployment
• Requires Azure CLI 2.0
• 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
Azure Building Blocks DEMO
Terraform
• Allows you to define and create an entire Azure infrastructure
• A template format language - the HashiCorp Configuration Language (HCL).
• Use your existing Terraform templates for other platforms (AWS, Google Cloud…)
• No need to convert to an ARM template
TerraformDEMO
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 playbooks
AnsibleDEMO