TGViewer
Библиотека девопса | DevOps, SRE, Sysadmin Библиотека девопса | DevOps, SRE, Sysadmin @devopsslib · 10.4K subscribers
Post #3701 1.57K
📖 Как не дублировать плейбуки в Ansible

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

1. Подготовка структуры роли

Для создания роли можно самостоятельно подготовить набор директорий:
myrole/
├── tasks/ # Основные задачи (playbook внутри роли)
│ └── main.yml # Точка входа задач
├── handlers/ # Обработчики — команды, которые срабатывают при изменениях
│ └── main.yml
├── files/ # Статические файлы для копирования на целевые хосты
├── templates/ # Jinja2-шаблоны — конфиги с переменными
├── defaults/ # Значения переменных по умолчанию (низший приоритет)
│ └── main.yml
├── vars/ # Переменные с более высоким приоритетом
│ └── main.yml
├── meta/ # Метаинформация о роли, в том числе зависимости от других ролей
│ └── main.yml
├── library/ # Пользовательские модули (если нужны)
├── tests/ # Плейбуки и окружение для тестирования роли
└── README.md # Документация по роли — зачем, как использовать


Но для этого есть лайфхак — команда ansible-galaxy init myrole. С помощью неё можно создать всю структуру без единого mkdir.

2. Пишем задачи

Роль в Ansbile это по сути отдельный плейбук. Внутри tasks/main.yml мы опишем свои таски, которые он должен выполнять.

Пример: установим htop и создадим файл приветствия.
- name: Устанавливаем htop
apt:
name: htop
state: present
become: yes

- name: Создаём файл приветствия
copy:
dest: /tmp/welcome.txt
content: "Hello from Ansible role!"


3. Подключим роль в плейбуке

В основной плейбук нужно добавить нашу роль:
- hosts: all
become: yes
roles:
- myrole


4. Всё готово к запуску.

Остаётся только воспользоваться командой:
ansible-playbook -i inventory.ini site.yml


В Ansible Galaxy есть коллекция ролей, написанных сообществом. От самых простых до ролей, которые используются в крупных компаниях.

➡️ Посмотреть роли сообщества

🐸Библиотека devops'a #буст
  • 👍 8
  • ❤ 2
  • 🔥 2
More from @devopsslib
  1. Oct 5, 2026SRE-инженеры, общий сбор 21 октября Т-Банк проведет онлайн-встречу «SRE-техтолк». Приглаша…
  2. Sep 29, 2026Для тех, кто работает с Kubernetes и облачной инфраструктурой, в октябре намечается отличн…
  3. Sep 25, 2026🤖 ИИ-агенту теперь можно поставить задачу прямо в GitLab — и не расписывать каждый следую…
  4. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  5. Sep 15, 2026👩‍💻 Bash-скрипт для мониторинга сервисов Полноценный мониторинг вроде Zabbix или Prometh…
  6. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →