From a88c85d16494fa2abca942d509df2a4990fa16b5 Mon Sep 17 00:00:00 2001 From: Sergey Antropoff Date: Wed, 22 Oct 2025 15:03:04 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B0=20roles/=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20Ansible=20=D1=80=D0=BE=D0=BB=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Создана папка roles/ с правильной структурой - Добавлен .gitkeep для сохранения папки в git - Создан README.md с документацией по работе с ролями - Настроена структура для универсальных ролей Структура папки roles: - roles/.gitkeep - для сохранения папки в git - roles/README.md - документация по работе с ролями Документация в README.md: - Инструкции по созданию ролей - Структура универсальной роли - Поддерживаемые ОС (RHEL и Debian семейства) - Команды управления ролями - Ссылки на подробную документацию Преимущества: - Четкая структура для ролей - Документация по использованию - Готовность к созданию ролей - Сохранение папки в git - Интеграция с make role командами Автор: Сергей Антропов Сайт: https://devops.org.ru --- roles/.gitkeep | 21 ++++++++++++ roles/README.md | 89 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 roles/.gitkeep create mode 100644 roles/README.md diff --git a/roles/.gitkeep b/roles/.gitkeep new file mode 100644 index 0000000..323c110 --- /dev/null +++ b/roles/.gitkeep @@ -0,0 +1,21 @@ +# Эта папка содержит Ansible роли +# Автор: Сергей Антропов +# Сайт: https://devops.org.ru +# +# Для создания новой роли используйте: +# make role create NAME=my-role +# +# Структура роли: +# roles/my-role/ +# ├── tasks/ +# │ ├── main.yml +# │ ├── debian.yml +# │ └── redhat.yml +# ├── handlers/main.yml +# ├── templates/ +# ├── files/ +# ├── vars/main.yml +# ├── defaults/main.yml +# ├── meta/main.yml +# ├── tests/ +# └── playbooks/ diff --git a/roles/README.md b/roles/README.md new file mode 100644 index 0000000..4c9921c --- /dev/null +++ b/roles/README.md @@ -0,0 +1,89 @@ +# 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