Обычно с Ansible работают в режиме push: управляющая машина подключается по SSH и применяет playbook к целевым хостам. Но есть и обратная модель - ansible-pull, когда сервер сам забирает конфигурацию и применяет ее локально.
Это удобно там, где:
хосты находятся за NAT или в изолированной сети;
нет постоянного доступа с управляющего узла;
инфраструктура динамическая (VPS, авто-масштабирование).
Как это работает
Сервер:
Клонирует репозиторий (обычно Git)
Запускает playbook локально
Повторяет процесс по cron/systemd timer
▪️ Пример запуска:
ansible-pull -U https://git.networkadminru/infra.git site.yml
Где:
-U - URL репозиторияsite.yml - основной playbookПо сути, это self-configuring node.
▪️ Автоматизация по расписанию. Чаще всего делают так:
*/15 * * * * ansible-pull -U https://git.networkadminru/infra.git site.yml
И сервер каждые 15 минут сам проверяет обновления конфигурации.
▪️ Когда это особенно полезно
Edge-серверы и филиалы;
Облака с автоскейлингом;
Zero-trust сети;
Immutable-подход с периодическим re-apply.
🤩 Плюсы
Нет необходимости держать открытый SSH;
Хорошо масштабируется;
Минимальная точка отказа;
Можно использовать Git как single source of truth.
🤩 Минусы
Сложнее централизованный контроль;
Нужно аккуратно работать с секретами;
Логи выполнения нужно куда-то отправлять.
▪️ Push vs Pull - что выбрать?
Классический Ansible: удобен для администрирования и ad-hoc задач
Ansible Pull: хорош для распределенных и автономных систем
Иногда разумно комбинировать оба подхода.
#ansible #devops
🧑💻 NetworkAdmin