Что такое 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"]
}]
}
Что произойдет:
- Берём базовый Docker-образ ubuntu:20.04.
- Запускаем провижининг (установка Nginx.
- Запускаем провижининг (установка Nginx).
Когда использовать Packer
- Создание golden-образов для продакшена (с нужными зависимостями)..
- Унификация окружений в мультиоблачных системах.
- Ускорение autoscaling — новые инстансы поднимаются сразу готовыми.
Вывод
Packer помогает избавиться от “уникальных серверов” и перейти к предсказуемой инфраструктуре. Если у вас много платформ и нужно единообразие — это отличный инструмент.