# Ansible Roles Эта папка содержит Ansible роли для универсальной лаборатории. ## Создание новой роли ```bash # Интерактивное создание роли make role create NAME=my-role # Список ролей make role list # Управление playbooks роли make role playbook NAME=my-role ``` ## Структура роли ``` roles/my-role/ ├── tasks/ │ ├── main.yml # Основные задачи (универсальные) │ ├── debian.yml # Задачи для Debian/Ubuntu │ └── redhat.yml # Задачи для RHEL/CentOS ├── handlers/ │ └── main.yml # Обработчики ├── templates/ # Шаблоны Jinja2 ├── files/ # Статические файлы ├── vars/ │ └── main.yml # Переменные роли ├── defaults/ │ └── main.yml # Переменные по умолчанию ├── meta/ │ └── main.yml # Метаданные роли ├── tests/ # Тесты роли └── playbooks/ # Playbooks роли └── deploy.yml └── install.yml ``` ## Универсальные роли Все роли создаются **универсальными** для RHEL и Debian семейств: - **`tasks/main.yml`** - содержит общую логику и включает OS-специфичные задачи - **`tasks/debian.yml`** - задачи для Debian/Ubuntu (apt, systemd) - **`tasks/redhat.yml`** - задачи для RHEL/CentOS (yum, systemd) ## Поддерживаемые ОС - **Debian семейство**: Ubuntu, Debian, Linux Mint - **RHEL семейство**: CentOS, RHEL, Rocky Linux, AlmaLinux ## Команды управления ```bash # Создать роль make role create NAME=nginx # Редактировать роль make role edit NAME=nginx # Тестировать роль make role test NAME=nginx # Проверить синтаксис make role lint # Развернуть роли make role deploy # Информация о роли make role info NAME=nginx # Управление playbooks make role playbook NAME=nginx ``` ## Документация - **[Полное руководство](../docs/roles.md)** - подробная документация по работе с ролями - **[Примеры использования](../docs/examples.md)** - практические примеры - **[API Reference](../docs/api.md)** - справочник по API ## Автор Сергей Антропов Сайт: https://devops.org.ru