Live-данные · обновлено 7 сентября 2026 г.

Puppet

Puppet — система управления конфигурациями серверов: вы описываете в коде, как должна выглядеть машина — пакеты, сервисы, файлы, пользователи, — а агент на каждом узле сам приводит её к описанию и удерживает в нём. Классика Infrastructure as Code для крупных серверных парков.

Мурадов ЮрийАвтор·Мурадов Юрий·Аналитик SkillStat
КВПроверено·Кузнецов Вячеслав·Технический редактор·DevOps/SRE-техлид · опыт 10+ лет
Вакансий
20
активных в Москве
Медиана зарплаты
Индекс спроса
0/100
#285 из 286 навыков
Доля IT-рынка
0.4%
5 профессий

Коротко о навыке

Puppet — система управления конфигурациями серверов, один из родоначальников подхода Infrastructure as Code. Идея декларативная: вы не пишете последовательность команд, а описываете, как сервер должен выглядеть — какие пакеты установлены, какие сервисы запущены, что лежит в конфигах, какие пользователи существуют. Агент на каждом узле по расписанию сверяет реальную систему с этим описанием и исправляет только отличия. Повторный прогон ничего не ломает — это идемпотентность, главное свойство инструмента.

Архитектура агент-серверная: центральный Puppet Server хранит код и компилирует для каждого узла персональный каталог ресурсов, агенты забирают его по защищённому каналу — pull-модель, в отличие от push-подхода агентлесс Ansible. Сегодня ниша Puppet — живое легаси в крупных парках серверов: банки, телеком, хостинг, где он годами держит сотни и тысячи машин в едином эталоне. Чаще всего его спрашивают с DevOps-инженеров и системных администраторов.

Для этого навыка доступны ограниченные данные (менее 50 вакансий или нет зарплатных данных). Аналитика носит ориентировочный характер.

Что такое Puppet

Что это

Декларативная система управления конфигурациями: вы описываете в коде желаемую конфигурацию серверов, а агент на каждом узле приводит машину к ней и удерживает в ней.

Кто использует

DevOps-инженеры и системные администраторы, реже SRE и инженеры платформ — в компаниях с большими парками виртуалок и железных серверов.

Позиция на рынке

Зрелый инструмент с нишей живого легаси: новых внедрений меньше, чем у Ansible, но крупные парки на Puppet работают годами и требуют сопровождения — специалистов при этом немного.

Что такое Puppet

Puppet — инструмент, который превращает настройку серверов из ручной работы в код. Вместо того чтобы заходить на каждую машину по SSH и выполнять команды, вы описываете в манифестах желаемую конфигурацию: пакет nginx установлен, сервис запущен, конфиг совпадает с эталоном, пользователь deploy существует. Дальше Puppet сам решает, что нужно сделать на конкретной машине: где-то доустановить пакет, где-то поправить файл, а где всё уже совпадает — не трогать ничего. Это и есть декларативная модель: вы отвечаете за «что», инструмент — за «как».

Агент и сервер: как это работает

На каждом управляемом узле стоит агент, в центре — Puppet Server. Связь защищена сертификатами: новый узел запрашивает подпись, администратор её подтверждает. Дальше цикл повторяется по расписанию, по умолчанию раз в полчаса: агент отправляет серверу факты о себе (ОС, сеть, память — их собирает Facter), сервер компилирует из манифестов и данных Hiera персональный каталог ресурсов для этого узла, агент сверяет с ним систему, исправляет отличия и отправляет отчёт. Это pull-модель: узлы сами приходят за конфигурацией, и ручные правки на сервере живут максимум до следующего прогона.

Манифесты, модули, Hiera

Код Puppet пишется на собственном декларативном языке. Базовая единица — ресурс: package, service, file, user и десятки других типов. Ресурсы группируются в классы, классы — в модули: переиспользуемые блоки вида «настроить NTP» или «развернуть nginx». Готовые модули берут с Puppet Forge — публичного каталога, где есть решения для большинства типовых задач. Данные при этом отделены от логики: Hiera хранит параметры в иерархии — общие значения, значения для окружения, значения для конкретного узла — и модуль получает нужные без единого if в коде.

Понятия / Карта

Из чего состоит Puppet

Понятие Что это Что нужно уметь
Манифест
Файл с описанием того, как должен быть настроен сервер.
Структурировать код по классам и модулям, а не сваливать всё в один файл site.pp.
Ресурс
Единица управления: пакет, сервис, файл, пользователь, cron-задача.
Выбирать готовые типы ресурсов вместо exec и связывать их явными зависимостями require и notify.
Идемпотентность
Повторный прогон ничего не ломает: меняется только то, что отклонилось от эталона.
Писать манифесты, безопасные для применения каждые полчаса, и проверять план изменений в noop-режиме.
Модуль и Forge
Готовый блок конфигурации под задачу; Forge — публичный каталог таких блоков.
Оценивать качество чужих модулей, собирать свои с правильной структурой и версионированием через Puppetfile.
Hiera
Отдельное хранилище настроек: что общее для всех, что своё у окружения или узла.
Проектировать иерархию данных, выносить параметры из кода, шифровать секреты через eyaml.
Факты (Facter)
Сведения об узле — ОС, память, сеть, — которые собираются автоматически перед прогоном.
Ветвить конфигурацию по фактам и писать собственные факты под нужды своей инфраструктуры.
Механика / Работа

Как Puppet приводит серверы к эталону

Цикл от кода в git до настроенного парка — и так каждые полчаса.

Шаг 01

Вы описываете конфигурацию

Манифесты, модули и данные Hiera лежат в git: какие пакеты, сервисы, файлы и пользователи должны быть на каждом типе машин. Код — единственный источник правды.

Шаг 02

Сервер компилирует каталог

Агент присылает факты об узле, и Puppet Server собирает из кода и данных персональный каталог ресурсов именно для этой машины — с учётом её ОС, окружения и роли.

Шаг 03

Агент сверяет и исправляет

Агент сравнивает систему с каталогом и меняет только то, что отклонилось: доустанавливает пакет, чинит конфиг, перезапускает сервис. Затем отправляет отчёт — виден дрейф по всему...

Карьера / Роли

Кому нужен Puppet

Puppet переносится между ролями: DevOps-инженер, Системный администратор, Инженер по автоматизации тестирования. В одном треке этот навык может быть основным рабочим инструментом, а в другом - сильным прикладным усилителем основной специализации.

Роли с Puppet за период

DevOps-инженер — самый заметный профиль в распределении ролей по навыку.

Текущий срез показывает активные вакансии сейчас. Распределение по ролям рассчитано по расширенной исторической выборке, поэтому значения могут быть выше текущего количества активных вакансий.

Практика / Задачи

Частые задачи с Puppet

Puppet ценен не абстрактным знанием инструмента, а повторяющимися рабочими задачами — ниже они разобраны так, как встречаются в реальной работе.

Задача 01

Классическая тройка: пакет, конфиг, сервис

Базовый паттерн Puppet: пакет установлен, конфиг эталонный, сервис запущен — с явными зависимостями между ними.

package { 'nginx':
  ensure => installed,
}

file { '/etc/nginx/nginx.conf':
  ensure  => file,
  source  => 'puppet:///modules/nginx/nginx.conf',
  require => Package['nginx'],   # сначала пакет, потом конфиг
  notify  => Service['nginx'],   # изменился конфиг — перезапустить сервис
}

service { 'nginx':
  ensure => running,
  enable => true,   # автозапуск при загрузке
}
Задача 02

Пользователи и SSH-ключи

Одинаковые учётки и ключи на всём парке — вместо ручного разноса по машинам.

user { 'deploy':
  ensure     => present,
  managehome => true,
  shell      => '/bin/bash',
  groups     => ['docker'],
}

ssh_authorized_key { 'deploy@ci':
  ensure => present,
  user   => 'deploy',
  type   => 'ssh-ed25519',
  key    => 'AAAAC3NzaC1lZDI1NTE5AAAA...',
}
# удалить ключ на всём парке = ensure => absent
# и один прогон агентов
Задача 03

Класс с параметрами

Переиспользуемый блок конфигурации: логика одна, параметры приходят снаружи — из Hiera.

class ntp (
  Array[String] $servers = ['0.ru.pool.ntp.org'],
) {
  package { 'chrony':
    ensure => installed,
  }

  file { '/etc/chrony.conf':
    content => epp('ntp/chrony.conf.epp', { 'servers' => $servers }),
    require => Package['chrony'],
    notify  => Service['chronyd'],
  }

  service { 'chronyd':
    ensure => running,
    enable => true,
  }
}
Задача 04

Hiera: данные отдельно от кода

Иерархия данных: общие значения внизу, особенности окружения и узла — выше. Модуль не меняется, меняются данные.

# hiera.yaml — порядок поиска значений
hierarchy:
  - name: 'Узел'
    path: 'nodes/%{trusted.certname}.yaml'
  - name: 'Окружение'
    path: 'env/%{environment}.yaml'
  - name: 'Общие данные'
    path: 'common.yaml'

# common.yaml — значения по умолчанию для всех
ntp::servers:
  - '0.ru.pool.ntp.org'
  - '1.ru.pool.ntp.org'

# nodes/db01.example.com.yaml — переопределение для узла
ntp::servers:
  - 'ntp.internal.example.com'
Задача 05

Факты и ветвление по ОС

Facter собирает сведения об узле автоматически; манифест подстраивается под ОС без дублирования кода.

case $facts['os']['family'] {
  'RedHat': { $web_pkg = 'httpd' }
  'Debian': { $web_pkg = 'apache2' }
  default:  {
    fail("Неподдерживаемая ОС: ${facts['os']['family']}")
  }
}

package { $web_pkg:
  ensure => installed,
}

# посмотреть факты узла:
#   facter os.family
#   facter memory.system.total
Задача 06

Прогон: сначала noop, потом применение

Режим noop показывает, что изменилось бы, не трогая систему, — обязательный шаг перед раскаткой на парк.

# локально, без сервера
puppet apply --noop site.pp   # показать план изменений
puppet apply site.pp          # применить

# на узле с агентом
puppet agent --test --noop    # разовый прогон без изменений
puppet agent --test           # применить немедленно

# проверки кода до раскатки
puppet parser validate manifests/site.pp
puppet-lint manifests/
Практика / Ошибки

Ошибки новичков

Ошибка 01

Писать exec вместо ресурсов

Завернуть shell-команду в exec — самый быстрый способ убить идемпотентность: команда будет выполняться при каждом прогоне. Почти всегда есть готовый тип ресурса или модуль на Forge; exec — крайняя мера, и только с условиями creates, onlyif или unless.

Ошибка 02

Катить на весь парк без noop

Изменение, применённое сразу на сотни машин, размножает ошибку со скоростью прогона агентов. Правильный цикл: noop-прогон, просмотр плана изменений, канареечная группа узлов — и только потом весь парк.

Ошибка 03

Данные в коде вместо Hiera

IP-адреса, имена окружений и пароли, зашитые в манифесты, превращают модуль в одноразовый и заставляют править логику ради смены параметра. Данные — в Hiera, секреты — в eyaml или внешнем хранилище, код — универсальный.

Ошибка 04

Полагаться на порядок записи

Puppet не выполняет ресурсы сверху вниз — порядок определяется графом зависимостей. Конфиг «после» пакета без require может примениться до него, и всё сломается неожиданно и не везде. Зависимости require, notify, before — всегда явно.

Ошибка 05

Брать с Forge первый попавшийся модуль

Качество модулей на Forge неровное: рядом с образцовыми supported-модулями лежат заброшенные поделки. Перед внедрением смотреть поддержку, даты обновлений, совместимость версий — чужой заброшенный код станет вашим легаси.

Рынок / Контекст

Puppet в современных IT-проектах: контекст спроса

Ядро спроса на Puppet — DevOps-инженеры; следом идут системные администраторы, SRE и инженеры платформ. Профиль работодателя характерный: крупные компании с парками в сотни и тысячи серверов — банки, телеком, хостинг, ретейл, — где Puppet внедрили давно и он продолжает управлять боевой инфраструктурой. В требованиях он почти всегда соседствует с Linux, Ansible, Terraform и CI/CD: рынок ищет не «специалиста по Puppet», а инженера, который понимает управление конфигурациями в принципе и способен сопровождать существующий Puppet-контур. Отдельная ниша — миграции: компании, переезжающие с Puppet на другие инструменты, ценят людей, знающих обе стороны.

Сокращает ручную работу

Puppet востребован там, где инструмент реально ускоряет повторяемые задачи команды, а не существует отдельной теорией.

Встроен в рабочий процесс

Спрос держится дольше, когда навык нужен не эпизодически, а как часть ежедневного цикла разработки, проверки или доставки.

Закреплён в зрелом стеке

Puppet чаще ищут там, где процесс уже стандартизирован и без этого инструмента команда теряет скорость и предсказуемость.

Сигнал рынка
Стабильный спрос

Puppet формирует устойчивый спрос внутри своего рабочего сегмента.

Рынок / Спрос

Спрос на Puppet на рынке

Puppet сохраняет устойчивый прикладной спрос на рынке: 20 активных вакансий, #285 по рынку, 0.4% IT-вакансий. Ниже показано число открытых вакансий на конец каждого месяца: это исторический ряд по состоянию на конец месяца, а не текущий срез рынка на сегодня.

Сила спроса
Стабильный спрос
20
активных вакансий сейчас

#285 по рынку • 0.4% IT-вакансий

Месяц к месяцу
29
сентябрь 2026 — предварительный накопительный срез

-8 вакансий и -22% к предыдущему месяцу.

Связи / Навыки

Навыки в связке с Puppet

Puppet редко живёт изолированно: чаще всего рынок видит его рядом с Ansible, Linux, Docker. Самая плотная связка сейчас - Ansible: оба навыка встречаются вместе в 85% вакансий.

Главная связка: Ansible • 85% вакансий. Показываем общерыночные связки Puppet: не junior-минимум из блока выше, а навыки, которые чаще всего встречаются рядом с ним в одной вакансии.

Рабочий стек вокруг Puppet

навыки, которые рынок чаще всего видит рядом в одной вакансии

Навык Зачем рядом Доля
Одна из самых плотных рыночных связок рядом с Puppet.
85%
Часто встречается рядом с Puppet в одном рабочем сценарии.
80%
Часто встречается рядом с Puppet в одном рабочем сценарии.
70%
Поддерживает соседние процессы и усиливает рабочий контур навыка.
65%
Поддерживает соседние процессы и усиливает рабочий контур навыка.
65%
Поддерживает соседние процессы и усиливает рабочий контур навыка.
65%
Вход / Старт

Порог входа

Сейчас на рынке 2 активных junior-вакансий с Puppet. Это 12.5% всех вакансий по навыку, поэтому для старта важнее всего смотреть на реальный объём junior-окна и на стек, который рынок ждёт рядом.

Junior-вакансии сейчас
2
активных вакансий

12.5% всех вакансий по навыку • Senior / Junior 4.5x

Доля junior
12.5%
% всех вакансий по навыку

Вход возможен, но рынок ждёт уже собранный стартовый стек.

Что нужно на старте

Стартовый стек

20
навыков в медианной вакансии

Медианная вакансия с Puppet ожидает около 20 навыков в стеке. Это широкий стартовый набор: рынок обычно ищет не один изолированный инструмент, а рабочую комбинацию соседних навыков.

Чаще всего требуют вместе

навыки из junior-вакансий, где встречается Puppet

Навык Junior-вакансии
2
Настройка почтовых серверов
1
Карьера / Резюме

Puppet в резюме: что значит "знаю Puppet"

Умение работать с Puppet — это демонстрация навыков централизованного управления конфигурациями, декларативного подхода и Infrastructure as Code. Вот как описать Puppet в резюме для разных ролей:

Уровень Что значит Что показать
Beginner
Понимаю принципы: манифесты, ресурсы, применение через puppet apply
Пет-проект: управление пакетами и сервисами на локальной VM
Junior developer
Пишу простые манифесты с ресурсами package, service, file
Создал модуль базовой настройки безопасности
Middle developer
Использую Hiera, факты, классы и модули с Puppet Forge
Настроил управление NTP и SSH для 50 серверов
QA automation
Пишу rspec-puppet тесты для проверки манифестов
Внедрил CI-пайплайн с проверкой синтаксиса манифестов
Data/ML
Настраиваю окружение для GPU-серверов через Puppet
Автоматизировал установку драйверов и CUDA
DevOps junior
Разворачиваю и обслуживаю Puppet Server, управляю сертификатами
Мигрировал конфигурации на Puppet 7 с r10k
SRE/platform
Настраиваю масштабирование Puppet, PuppetDB, CI/CD для инфраструктуры
Развернул Puppet на 500+ агентах с отчётами через PuppetDB
Сравнение / Инструменты

Экосистема Puppet

Компоненты, из которых складывается рабочий Puppet-контур.

Инструмент За что отвечает Когда нужен Граница

Puppet Server

Центр: компиляция каталогов, сертификаты узлов

Парк от десятков узлов, где нужен единый контроль

Отдельная инфраструктура на обслуживании; для пары машин достаточно puppet apply.

Hiera

Иерархическое хранилище данных конфигурации

Параметры различаются между окружениями и узлами

Хранит только данные — логика остаётся в модулях, и плохую структуру кода Hiera не спасёт.

Puppet Forge

Публичный каталог готовых модулей

Типовые задачи: nginx, PostgreSQL, SSH, firewall

Качество модулей неровное — проверять поддержку, свежесть и совместимость версий.

PuppetDB

База фактов, каталогов и отчётов прогонов

Нужны запросы по парку, экспорт ресурсов и аудит

Ещё один сервис с PostgreSQL на обслуживании — оправдан на заметном парке.

r10k

Раскатка окружений Puppet из git-веток

Командная работа и несколько окружений кода

Требует дисциплины веток и аккуратного Puppetfile — иначе окружения расползаются.

Навык / Применение

Где используется Puppet

Территория Puppet — большие парки виртуалок и железных серверов, где конфигурацию сотен машин нужно годами держать в едином, проверяемом эталоне.

Сценарий 01

Крупные серверные парки

Сотни и тысячи виртуалок и железных серверов под единым эталоном: базовая ОС, пакеты, сервисы, доступы — одинаково и проверяемо на всём парке.

Сценарий 02

Соответствие и аудит

Банки, телеком, госсектор: отчёты агентов показывают, какие узлы соответствуют эталону, а какие отклонились — готовая доказательная база для аудита и регуляторных...

Сценарий 03

Базовый профиль сервера

Типовая задача Puppet: пользователи и SSH-ключи, NTP, репозитории, агенты мониторинга и логирования — всё, что должно быть на каждой машине независимо от её роли.

Сценарий 04

Защита от дрейфа конфигурации

Ручные правки «на минуточку» — бич больших парков. Агент возвращает систему к описанию при каждом прогоне, и реальность перестаёт расходиться с кодом.

По направлениям

Puppet заметен в 2 направлениях рынка с долей выше 5%.

Направление Контекст Доля
Инфраструктура
Централизованное управление конфигурациями для тысяч серверов enterprise.
87.1%
Тестирование
Часть спроса по навыку сосредоточена в этом направлении.
12.9%
Направления показывают, в каких частях IT-рынка навык заметен чаще всего, без разбивки по ролям.
Инструмент / Возможности

Что даёт Puppet

Возможности, ради которых крупные парки держат агентную модель.

Единый эталон на весь парк

Одна кодовая база описывает сотни машин; новая машина получает полную конфигурацию первым же прогоном агента.

Автоматический откат дрейфа

Ручные правки на серверах живут до следующего прогона: агент возвращает систему к описанию без участия человека.

Данные отдельно от логики

Hiera хранит параметры по иерархии — от общих до узловых; модули остаются универсальными, окружения различаются только данными.

Отчётность для аудита

PuppetDB собирает факты и отчёты прогонов: в любой момент видно, какие узлы соответствуют эталону, — аргумент для регуляторов и внутреннего контроля.

Сравнение / Контекст

Puppet vs Ansible vs Chef

Три инструмента управления конфигурациями — критерии выбора между ними.

Puppet vs Ansible

Выбирайте по режиму работы. Если задача — непрерывно удерживать большой парк в эталонной конфигурации и автоматически гасить дрейф, агентная pull-модель Puppet сильнее: узлы сами приходят за...

Puppet vs Chef

Оба — агентные ветераны с центральным сервером, поэтому критерий выбора не архитектура, а язык и команда. Chef описывает конфигурацию императивными рецептами на Ruby и ближе инженерам с бэкграундом...

Puppet vs Terraform

Здесь выбор «или-или» — ошибка: инструменты работают на разных слоях. Terraform создаёт инфраструктуру у провайдера — виртуалки, сети, балансировщики, кластеры; Puppet настраивает то, что внутри...

Практика / Workflow

Как Puppet используется в реальном проекте

Этап Что происходит Артефакт
1 Описание конфигурации
Ресурсы, классы, модули в git
Код желаемой конфигурации
2 Данные
Иерархия Hiera: общее, окружение, узел
Параметры отдельно от логики
3 Проверка
puppet-lint, rspec-puppet, noop-прогон
План изменений без риска
4 Компиляция каталога
Сервер собирает каталог под узел по фактам
Персональный каталог ресурсов
5 Применение
Агент исправляет только отличия
Сервер, соответствующий эталону
6 Отчётность
Отчёты прогонов в PuppetDB
Картина дрейфа по всему парку
Инструмент / Оркестрация

Puppet: запуск и структура проекта

Puppet использует архитектуру «клиент-сервер». Ключевые компоненты развёртывания:

Puppet Server / серверная часть

Центральный сервер, который компилирует каталоги и обслуживает запросы агентов. Устанавливается на отдельной Linux-машине.

Puppet Agent / агенты

Демон на каждой управляемой ноде (Linux, Windows). Выполняет полученный каталог и отправляет отчёт назад.

PuppetDB / база данных

Хранит историю фактов, отчёты и данные о ресурсах. Необязателен, но без него теряются отчёты и поиск по фактам.

Hiera / данные и секреты

Иерархическая база данных для разделения кода и данных. Поддерживает бэкенды eYAML, HashiCorp Vault.

Environments / окружения

Изолированные среды (production, staging) с собственными модулями и данными Hiera. Синхронизируются с Git-ветками через r10k.

Пример: типовой стек Puppet

Puppet Server + PuppetDB (PostgreSQL) + r10k (Git-синхронизация) + Puppet Agent на каждой ноде. Для мониторинга стека — Prometheus + Grafana.

Практика / Puppet

Puppet: лучшие практики и типичные ошибки новичков

Практика 01

Роли и профили (Roles & Profiles)

Придерживайтесь модели «роли и профили»: роль описывает бизнес-юнит, профиль — технический компонент. Роли обычно пусты и только включают профили.

Практика 02

Данные в Hiera, код в манифестах

Вся изменяемая информация — в Hiera, манифесты без хардкода. Это упрощает адаптацию под разные окружения.

Практика 03

Юнит-тесты и приёмочное тестирование

Используйте rspec-puppet для unit-тестов и Beaker для приёмочного тестирования. Это гарантирует корректность манифестов.

Практика 04

Контроль дрифта конфигурации

Периодически запускайте `puppet agent -t --noop` и используйте puppet-linter для выявления отклонений от эталона.

Практика 05

Секреты не в модулях

Не держите секреты в модулях. Используйте Hiera с EYAML или внешние vault-бэкенды (HashiCorp Vault, AWS Secrets Manager).

Практика 06

CI/CD для инфраструктуры

Организуйте CI-пайплайн, который прогоняет каталоги на всех окружениях (тестовое, предрелизное, боевое) перед deploy.

Практика 07

Версионирование модулей

Используйте Semantic Versioning для модулей. Храните модули в Git-репозиториях, синхронизируйте окружения с ветками Git через r10k или Code Manager.

Практика 08

Минимизация зависимостей

Избегайте циклических зависимостей между классами. Используйте `require` и `before` для явного описания порядка ресурсов.

Практика / Безопасность

Безопасность Puppet: что нельзя делать

Риск 01

Шифрование трафика с сертификатами

Включите шифрование трафика между агентами и мастером с подписанными сертификатами. Autosign только для доверенных подсетей.

Риск 02

Регулярное обновление Puppet

Регулярно обновляйте Puppet Server и агентов — уязвимости в старых версиях позволяют повышение привилегий.

Риск 03

Секреты не в манифестах

Храните конфиденциальные данные в Hiera с бэкендом eYAML или HashiCorp Vault. Никогда не помещайте пароли и ключи в манифесты.

Риск 04

Запуск с ограниченными привилегиями

Запускайте мастер с ограниченными привилегиями (non-root), а агентов с минимальными правами, используя принцип наименьших привилегий.

Риск 05

RBAC в Puppet Enterprise

Настройте RBAC в Puppet Enterprise: разделяйте роли администратора и код-ревьюера для предотвращения несанкционированных изменений.

Риск 06

Аудит изменений

Ведите аудит изменений через PuppetDB и логи. Настройте алерты на подозрительные каталоги и неожиданные изменения конфигурации.

Риск 07

Изоляция окружений

Используйте изолированные окружения (production, staging, development) с разными наборами модулей и данных Hiera. Никогда не тестируйте на production.

Риск 08

Безопасная отладка

Используйте `puppet agent -t --noop` как безопасный способ предпросмотра изменений перед боевым запуском. Для проверки синтаксиса заранее используйте `puppet parser validate` и `puppet-lint`.

Будущее / Роль

Перспективы Puppet

Перспективы Puppet завязаны не только на текущем спросе, но и на том, как навык встраивается в новые платформы, инструменты и рабочие контуры.

Сигнал 01

Живое легаси — надолго

Крупные парки не мигрируют быстро: переезд с Puppet — многолетний проект с сомнительной окупаемостью, пока всё работает. Установленная база продолжит требовать инженеров...

Сигнал 02

Открытый форк OpenVox

После ужесточения политики владельца платформы сообщество Vox Pupuli развивает открытый форк OpenVox, совместимый с экосистемой. Для компаний это страховка от вендора, для...

Сигнал 03

Ниша сжимается, но не исчезает

Контейнеры и неизменяемая инфраструктура забирают часть задач управления конфигурацией. Однако виртуалки и железо никуда не делись — базы данных, сетевые сервисы,...

Практика / Портфолио

Портфолио с Puppet: с чего начать

Проект 01

Модуль базового профиля сервера

Собственный модуль «эталонная машина»: пользователи и SSH-ключи, NTP, репозитории, агент мониторинга. С параметрами через Hiera, проверками puppet-lint и rspec-puppet и демонстрацией noop-прогона. Показывает главное —...

Проект 02

Мини-парк на виртуалках

Puppet Server и два-три агента на локальных виртуалках: подпись сертификатов, Hiera-иерархия с переопределением на узле, готовый модуль с Forge плюс свой, паттерн ролей и профилей. Демонстрирует всю агент-серверную...

Обучение / Маршрут

Как изучить Puppet

Старт проще, чем кажется: puppet apply работает локально без всякого сервера, и первые манифесты пишутся за вечер. Дальше порог растёт — свой язык, зависимости ресурсов, Hiera и агент-серверная архитектура требуют недель практики.

Этап 01

Linux-база и идея IaC

Puppet управляет Linux-серверами, поэтому нужно понимать, чем управляешь: пакеты, сервисы systemd, права, пользователи. Плюс сама идея «инфраструктура как...

Этап 02

Первые манифесты локально

puppet apply на виртуалке: ресурсы package, service, file, user. Написать манифест, применить, поменять, применить снова — почувствовать декларативную...

Этап 03

Идемпотентность и зависимости

Связи require, notify, subscribe: конфиг зависит от пакета, сервис перезапускается при смене конфига. Понять, почему порядок записи ресурсов ничего не...

Этап 04

Классы, модули, Forge

Оформить код в модуль с правильной структурой, взять пару готовых модулей с Forge и разобрать, как они устроены внутри — это лучший учебник идиоматичного...

Курсы · по данным рынка

Где учить Puppet

Прямых курсов по Puppet пока нет — показываем смежные: Ansible, Linux, Docker

Соответствие — доля тем навыка, которые охватывает программа курса

Практика / Первый запуск

Как начать изучать Puppet

Три шага от локального манифеста до собственного мини-парка.

Шаг 01

Первый манифест локально

Поставить Puppet на виртуалку и применить манифест через puppet apply: ресурсы package, file, service с зависимостями. Сервер для старта не нужен — модель осваивается локально.

Шаг 02

Разобрать модель всерьёз

Официальная документация и практические курсы Puppet: идемпотентность, факты, классы, Hiera. Ключ — понять граф зависимостей ресурсов и noop-режим, а не заучить синтаксис.

Шаг 03

Собрать мини-парк

Puppet Server плюс два агента на виртуалках: сертификаты, компиляция каталога, готовый модуль с Forge, свои данные в Hiera. Это уже рабочая модель того, что происходит в бою.

Старт / Документация

Официальные ресурсы и быстрый старт

Для инструментов вроде Puppet на одной странице полезно держать и объяснение роли на рынке, и быстрые переходы к официальным ресурсам.

Частые вопросы

Вопросы и ответы

Что такое Puppet простыми словами?

Система, которая настраивает серверы по написанному вами описанию. Вы говорите, как машина должна выглядеть — какие пакеты, сервисы, файлы, пользователи, — а агент на каждом сервере по расписанию сверяет реальность с описанием и исправляет отличия. Один код — сотни одинаково настроенных машин.

Puppet или Ansible — что учить?

Для входа в профессию — Ansible: он проще, без агентов и встречается в требованиях чаще. Puppet имеет смысл как второй инструмент: он открывает вакансии в крупных компаниях с большими парками, где конкуренция кандидатов ниже. Идеи у них общие — идемпотентность, инфраструктура как код, — поэтому второй инструмент даётся заметно легче первого.

Puppet ещё актуален?

Да, но специфично: новых внедрений немного, зато установленная база огромна. Банки, телеком и хостинг годами управляют парками через Puppet, и этим системам нужны инженеры — сопровождать, обновлять, иногда мигрировать. Это рынок живого легаси: не растущий бурно, но стабильный и с дефицитом специалистов.

Чем агентная модель отличается от агентлесс?

У Puppet на каждом узле работает агент, который сам регулярно забирает конфигурацию с сервера — pull-модель, дающая постоянный контроль и защиту от дрейфа. Ansible агентов не требует: подключается по SSH, когда запустили плейбук, — push-модель, удобная для сценариев и разовых операций. Первое сильнее для непрерывного поддержания эталона, второе — для гибкости и быстрого старта.

Нужен ли Puppet, если есть Docker и Kubernetes?

Внутри контейнеров — нет: там конфигурация фиксируется в образе при сборке. Но кластеры работают на реальных машинах, и этот слой кто-то должен настраивать: ОС, ядро, агенты мониторинга, доступы. В крупных компаниях Puppet часто управляет именно узлами, на которых живёт контейнерная платформа.

Сложно ли выучить Puppet?

Порог выше, чем у Ansible: свой декларативный язык, граф зависимостей ресурсов, Hiera, агент-серверная архитектура. Зато начать можно без сервера — puppet apply применяет манифесты локально, и первые ресурсы осваиваются за вечер. Основы — недели, уверенное сопровождение боевого парка — месяцы практики.

Что такое идемпотентность в Puppet?

Свойство, при котором повторное применение конфигурации не меняет ничего, если система уже соответствует описанию. Агент прогоняет одну и ту же конфигурацию каждые полчаса, и это безопасно: исправляется только то, что отклонилось. Именно идемпотентность отличает управление конфигурациями от обычных скриптов.