packer

构建不可变机器镜像

补充说明

packer 从基础镜像启动临时实例,执行 provisioner 安装软件,再产出云镜像或容器镜像。它适合构建不可变基础设施,不负责运行时编排。

常用示例

packer init .
packer validate .
packer fmt .
packer build .
packer build -var 'version=1.2.3' .
packer build -only='amazon-ebs.ubuntu' .
packer inspect .
packer hcl2_upgrade template.json

HCL 模板:

packer {
  required_plugins {
    amazon = {
      source  = "github.com/hashicorp/amazon"
      version = "~> 1.3"
    }
  }
}

source "amazon-ebs" "ubuntu" {
  ami_name      = "app-{{timestamp}}"
  instance_type = "t3.micro"
  region        = "ap-southeast-1"
  source_ami    = "ami-0123456789"
  ssh_username  = "ubuntu"
}

build {
  sources = ["source.amazon-ebs.ubuntu"]
  provisioner "shell" {
    script = "scripts/setup.sh"
  }
}

易错点与排错

相关命令