Ансибл плейбук состоит из одного или нескольких
play — логических блоков, которые описывают, что делать с группой серверов. А каждый play включает
tasks — пошаговые действия, которые выполняет Ansible.
🔸
Play — это как глава сценария. Она задаёт:
- на какие машины отправлять команды (hosts);
- нужно ли использовать sudo (become);
- какие переменные применить (vars);
- какие роли или задачи подключить.
🔸
Task — это инструкция: «установить пакет», «запустить сервис», «скопировать файл». Ansible выполняет их по порядку.
Каждый task вызывает
модуль — встроенный компонент Ansible, который делает конкретную работу.
Вот пример задачи с модулем copy:- name: Скопировать конфиг Nginx
copy:
src: ./nginx.conf
dest: /etc/nginx/nginx.conf
notify: Перезапустить Nginx
Если nginx.conf на сервере изменится, будет отправлено уведомление на handler с именем Перезапустить Nginx.
📦 Часто используемые модули:- apt, yum — установка пакетов.
- copy, template — работа с файлами.
- service — управление службами.
- command, shell — запуск произвольных команд.
- file — изменение прав, владельцев и атрибутов файлов.
🔁 Все задачи работают
идемпотентно. Это значит: если сервер уже в нужном состоянии, Ansible не будет ничего менять. Это снижает риски и делает сценарии безопасными для повторного запуска.
Плейбуки заменяют ручную настройку и shell-скрипты. Они точнее, прозрачнее и проще в сопровождении. А если playbook начинает разрастаться — его разбивают на
роли.
Дальше — расскажем, как устроены роли и зачем они нужны.