素材阁

Packer 速查

共 21 条 Packer 常用命令,涵盖常用命令、HCL 模板、常见 builder、实践要点。 支持搜索与分类筛选,点击即可复制。

常用命令

从一个模板构建多平台镜像。

命令说明
初始化并下载插件(HCL2)
校验模板
构建镜像
格式化模板
传入变量
只构建指定 source

HCL 模板

source + build 两段式。

命令说明
声明插件
定义 source(builder)
build 段与 provisioner
变量声明
局部变量

常见 builder

目标平台。

命令说明
AWS 镜像
Docker
虚拟机
GCP/Azure
provisioner

实践要点

可复现与维护。

命令说明
基础镜像
命名
幂等
流水线
与 IaC 分工

使用说明

Packer 镜像构建速查:常用命令、HCL 模板、常见 builder、实践要点;支持搜索与分类筛选,点击即可复制。

  1. 按用途点分类:常用命令、HCL 模板、常见 builder、实践要点。
  2. 点「命令」列复制,替换名称与变量后执行。
  3. 流程:packer init 拉插件 → validate 校验 → build 构建。
  4. provisioner 里的安装步骤必须幂等,重复执行不出错。

常见问题

Packer 和 Terraform 分别管什么?
Packer 负责「烤」镜像(把系统与软件预装好,产出 AMI/容器镜像等),Terraform 负责「起」资源(创建与编排云资源)。常配合:Packer 出镜像,Terraform 用该镜像部署。
init 是干什么的?
HCL2 模板需要安装声明的插件(builder/provisioner),packer init . 会按 required_plugins 下载对应版本,之后才能 build。
怎么保证每次构建产物唯一?
在镜像名里加时间戳等变量,如 ami_name = "app-{{timestamp}}",否则同名镜像会冲突导致构建失败。

延伸阅读

相关工具