azure-image-builder▌
hashicorp/agent-skills · updated Apr 8, 2026
Build Azure managed images and Azure Compute Gallery images using Packer's azure-arm builder.
Azure Image Builder
Build Azure managed images and Azure Compute Gallery images using Packer's azure-arm builder.
Reference: Azure ARM Builder
Note: Building Azure images incurs costs (compute, storage, data transfer). Builds typically take 15-45 minutes depending on provisioning and OS.
Basic Managed Image
packer {
required_plugins {
azure = {
source = "github.com/hashicorp/azure"
version = "~> 2.0"
}
}
}
variable "client_id" {
type = string
sensitive = true
}
variable "client_secret" {
type = string
sensitive = true
}
variable "subscription_id" {
type = string
}
variable "tenant_id" {
type = string
}
variable "resource_group" {
type = string
default = "packer-images-rg"
}
locals {
timestamp = regex_replace(timestamp(), "[- TZ:]", "")
}
source "azure-arm" "ubuntu" {
client_id = var.client_id
client_secret = var.client_secret
subscription_id = var.subscription_id
tenant_id = var.tenant_id
managed_image_resource_group_name = var.resource_group
managed_image_name = "my-app-${local.timestamp}"
os_type = "Linux"
image_publisher = "Canonical"
image_offer = "0001-com-ubuntu-server-jammy"
image_sku = "22_04-lts-gen2"
location = "East US"
vm_size = "Standard_B2s"
azure_tags = {
Name = "my-app"
BuildDate = local.timestamp
}
}
build {
sources = ["source.azure-arm.ubuntu"]
provisioner "shell" {
inline = [
"sudo apt-get update",
"sudo apt-get upgrade -y",
]
}
}
Azure Compute Gallery
source "azure-arm" "ubuntu" {
client_id = var.client_id
client_secret = var.client_secret
subscription_id = var.subscription_id
tenant_id = var.tenant_id
os_type = "Linux"
image_publisher = "Canonical"
image_offer = "0001-com-ubuntu-server-jammy"
image_sku = "22_04-lts-gen2"
location = "East US"
vm_size = "Standard_B2s"
shared_image_gallery_destination {
resource_group = "gallery-rg"
gallery_name = "myImageGallery"
image_name = "ubuntu-webapp"
image_version = "1.0.${formatdate("YYYYMMDD", timestamp())}"
replication_regions = ["East US", "West US 2"]
storage_account_type = "Standard_LRS"
}
}
Authentication
Service Principal
# Create service principal
az ad sp create-for-rbac \
--name "packer-sp" \
--role Contributor \
--scopes /subscriptions/<subscription-id>
# Set environment variables
export ARM_CLIENT_ID="<client-id>"
export ARM_CLIENT_SECRET="<client-secret>"
export ARM_SUBSCRIPTION_ID="<subscription-id>"
export ARM_TENANT_ID="<tenant-id>"
Managed Identity
source "azure-arm" "ubuntu" {
use_azure_cli_auth = true
subscription_id = var.subscription_id
# ... rest of configuration
}
Build Commands
# Set authentication
export ARM_CLIENT_ID="your-client-id"
export ARM_CLIENT_SECRET="your-client-secret"
export ARM_SUBSCRIPTION_ID="your-subscription-id"
export ARM_TENANT_ID="your-tenant-id"
# Initialize plugins
packer init .
# Validate template
packer validate .
# Build image
packer build .
Common Issues
Authentication Failed
- Verify service principal credentials
- Ensure Contributor role on resource group
- Check subscription and tenant IDs
Compute Gallery Version Exists
- Image versions are immutable
- Use unique version numbers with date/build number
- Cannot overwrite existing versions
Timeout During Provisioning
- Check network connectivity from build VM
- Verify NSG rules allow required traffic
- Increase timeout if needed
References
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.5★★★★★65 reviews- ★★★★★Henry Gupta· Dec 20, 2024
Keeps context tight: azure-image-builder is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Noah Yang· Dec 20, 2024
azure-image-builder is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Diya Srinivasan· Dec 16, 2024
Useful defaults in azure-image-builder — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Aarav Diallo· Dec 16, 2024
azure-image-builder fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Aarav Ndlovu· Dec 12, 2024
azure-image-builder has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Chaitanya Patil· Dec 8, 2024
azure-image-builder is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Piyush G· Nov 27, 2024
Useful defaults in azure-image-builder — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Liam Choi· Nov 11, 2024
Useful defaults in azure-image-builder — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Noah Liu· Nov 7, 2024
azure-image-builder is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Sakura Ghosh· Nov 7, 2024
I recommend azure-image-builder for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
showing 1-10 of 65