用途:使用 Packer 的 azure-arm 构建器创建 Azure 托管镜像和 Azure Compute Gallery 镜像,用于为 Azure VM 制作自定义镜像。构建会产生计算、存储与数据传输费用,通常需要 15-45 分钟(取决于预配方式和操作系统)。
主要能力:可配置基础镜像(publisher、offer、sku)、os_type、location、vm_size;支持 managed_image_resource_group_name、managed_image_name 生成托管镜像;也支持 shared_image_gallery_destination,指定资源组、库名、镜像名、镜像版本及 replication_regions、storage_account_type 发布到 Compute Gallery。构建阶段可通过 provisioner(如 shell)执行自定义脚本。
认证方式:支持服务主体(Service Principal),使用 az ad sp create-for-rbac 创建并赋予 Contributor 角色,然后设置环境变量 ARM_CLIENT_ID、ARM_CLIENT_SECRET、ARM_SUBSCRIPTION_ID、ARM_TENANT_ID;也支持托管标识,通过 use_azure_cli_auth = true 使用 Azure CLI 认证。
使用方式:先设置认证环境变量,再执行 packer init . 初始化插件、packer validate . 校验模板、packer build . 开始构建。插件来源为 github.com/hashicorp/azure,版本约束约 ~> 2.0。
限制与常见问题:认证失败需检查服务主体凭证、资源组 Contributor 角色及订阅与租户 ID;Compute Gallery 镜像版本不可变,不可覆盖,需使用带日期或构建号的唯一版本号;预配超时需检查构建 VM 的网络连通性、NSG 规则并酌情增加超时。其他配置细节暂未提供。