Что такое Packer?

Packer — это open-source инструмент от HashiCorp, который автоматизирует создание образов виртуальных машин.
Его можно представить как “фабрику образов”: вы берёте базовый образ (Ubuntu, CentOS, Windows) и на выходе получаете готовый к использованию образ с предустановленным софтом.

Вместо ручной настройки серверов — всё описывается в шаблоне, а Packer собирает образ автоматически.


Основные возможности

  • Мультиплатформенность — создание образов сразу для AWS, Azure, GCP, VMware, VirtualBox, Docker и других систем.
  • Иммутабельная инфраструктура — серверы запускаются уже в нужной конфигурации.
  • Интеграция с CI/CD — легко встраивается в пайплайны.
  • Расширяемость — поддержка провижионеров (Ansible, Chef, Puppet, shell-скрипты).

Пример: простой шаблон Packer

{
  "builders": [{
    "type": "docker",
    "image": "ubuntu:20.04",
    "commit": true
  }],
  "provisioners": [{
    "type": "shell",
    "inline": ["apt-get update", "apt-get install -y nginx"]
  }]
}

Что произойдет:

  1. Берём базовый Docker-образ ubuntu:20.04.
  2. Запускаем провижининг (установка Nginx.
  3. Запускаем провижининг (установка Nginx).

Когда использовать Packer

  • Создание golden-образов для продакшена (с нужными зависимостями)..
  • Унификация окружений в мультиоблачных системах.
  • Ускорение autoscaling — новые инстансы поднимаются сразу готовыми.

Вывод

Packer помогает избавиться от “уникальных серверов” и перейти к предсказуемой инфраструктуре. Если у вас много платформ и нужно единообразие — это отличный инструмент.