Azure Resource Manager Support for Packer and Terraform
We are excited to announce Azure Resource Manager (ARM) support for HashiCorp’s core infrastructure configuration and provisioning tools, Packer and Terraform. Now all of HashiCorp's open source tools - Vagrant, Packer, Terraform, Consul, Nomad, Vault, Otto - support best practices for application delivery on Microsoft Azure.
HashiCorp tools focus on workflows, not technologies. Users of our tools can apply the same workflow for infrastructure provisioning, application deployment, application maintenance, and security across all their infrastructure — both on-premises and in the cloud. As a result, enterprises save time on infrastructure management so they can commit more resources towards solving business-critical needs.
Read on to learn more about the HashiCorp workflow for infrastructure automation on Microsoft Azure.
Packer users can easily build virtual hard disks (VHDs) in Azure Resource Manager using the same workflow and configuration as used for building images on Amazon Web Services, Google Cloud, and more. Here's a basic Packer build configuration for Azure:
{
"type": "azure-arm",
"client_id": "fe354398-d7sf-4dc9-87fd-c432cd8a7e09",
"client_secret": "keepitsecret&#*$",
"resource_group_name": "packerdemo",
"storage_account": "virtualmachines",
"subscription_id": "44cae533-4247-4093-42cf-897ded6e7823",
"tenant_id": "de39842a-caba-497e-a798-7896aea43218",
"capture_container_name": "images",
"capture_name_prefix": "packer",
"image_publisher": "Canonical",
"image_offer": "UbuntuServer",
"image_sku": "14.04.3-LTS",
"location": "West US",
"vm_size": "Standard_A2"
}
Similarly, Terraform users can provision compute, network, and storage resources on Microsoft Azure using the same workflow and configuration as used for managing infrastructure on all major clouds. Here's a basic configuration for setting up the ARM provider and provisioning a resource group:
# Configure the Azure Resource Manager Provider
provider "azurerm" {
subscription_id = "..."
client_id = "..."
client_secret = "..."
tenant_id = "..."
}
# Create a resource group
resource "azurerm_resource_group" "production" {
name = "production"
location = "West US"
}
# Create a virtual network in the web_servers resource group
resource "azurerm_virtual_network" "network" {
name = "productionNetwork"
address_space = ["10.0.0.0/16"]
location = "West US"
resource_group_name = "${azurerm_resource_group.production.name}"
subnet {
name = "subnet1"
address_prefix = "10.0.1.0/24"
}
subnet {
name = "subnet2"
address_prefix = "10.0.2.0/24"
}
subnet {
name = "subnet3"
address_prefix = "10.0.3.0/24"
}
}
The technology landscape is rapidly changing with greater cloud adoption by enterprises. As these technologies change, your developer and operator workflows should still stay the same. Use HashiCorp products to provide one common workflow for managing applications and infrastructure.
Sign up for the latest HashiCorp news
More blog posts like this one
Terraform Stacks, explained
Terraform Stacks simplify provisioning and managing resources at scale, reducing the time and overhead of managing infrastructure.
New SLM offerings for Vault, Boundary, and Consul at HashiConf 2024 make security easier
The latest Security Lifecycle Management (SLM) features from HashiCorp Vault, Boundary, and Consul help organizations offer a smoother path to better security practices for developers.
Don’t leave cloud security to chance: 7 mistakes and how to avoid them
Learn how to avoid 7 common cloud security mistakes and reduce risk through Infrastructure Lifecycle Management best practices.