packer

📁 g1joshi/agent-skills 📅 3 days ago
1
总安装量
1
周安装量
#44941
全站排名
安装命令
npx skills add https://github.com/g1joshi/agent-skills --skill packer

Agent 安装分布

mcpjam 1
claude-code 1
replit 1
junie 1
zencoder 1

Skill 文档

Packer

Packer automates the creation of Machine Images (AMI, VMDK, ISO) for multiple platforms from a single configuration. In 2025, HCL2 is the standard for configuration.

When to Use

  • Immutable Infrastructure: Bake your app code into the OS image. Booting a pre-baked AMI is faster than running Ansible on boot.
  • Golden Images: Create hardened, secure base images for your organization.
  • Multi-Cloud: Build an AMI for AWS and a VHD for Azure from the same script.

Quick Start (HCL2)

source "amazon-ebs" "ubuntu" {
  ami_name      = "my-app-{{timestamp}}"
  instance_type = "t3.micro"
  region        = "us-west-2"
  source_ami_filter {
    filters = {
      name                = "ubuntu/images/*ubuntu-jammy-22.04-amd64-server-*"
      root-device-type    = "ebs"
      virtualization-type = "hvm"
    }
    most_recent = true
    owners      = ["099720109477"] # Canonical
  }
  ssh_username = "ubuntu"
}

build {
  sources = ["source.amazon-ebs.ubuntu"]

  provisioner "shell" {
    inline = ["sudo apt-get update", "sudo apt-get install -y nginx"]
  }
}

Core Concepts

Builders

Cloud-specific components (e.g., amazon-ebs, azure-arm) that launch a VM.

Provisioners

Tools to configure the VM (Shell, Ansible, Chef) before it is turned into an image.

Post-Processors

What to do with the image (Upload to S3, Vagrant Box, Docker Push).

Best Practices (2025)

Do:

  • Use HCL2: JSON templates are legacy. HCL2 supports variables and logic.
  • CI Integration: Run Packer in CI pipeline to produce new AMIs on every release.
  • Cleanup: Ensure Packer cleans up temporary resources (Security Groups, Key Pairs) after build.

Don’t:

  • Don’t bake secrets: Never put passwords in the image. Use Cloud-init or User Data to inject them at runtime.

References