From 87688bedae8e09f3452bbb8abacc4cb15941a476 Mon Sep 17 00:00:00 2001 From: Administrator Date: Mon, 23 Mar 2026 23:51:30 +0500 Subject: [PATCH] Update file 09-ansible-roles-common.md --- docs/09-ansible-roles-common.md | 210 ++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 docs/09-ansible-roles-common.md diff --git a/docs/09-ansible-roles-common.md b/docs/09-ansible-roles-common.md new file mode 100644 index 0000000..63367d5 --- /dev/null +++ b/docs/09-ansible-roles-common.md @@ -0,0 +1,210 @@ +# 09. Ansible — общие роли (common) + +Этот документ описывает роли, которые применяются на нескольких хостах или обеспечивают базовую функциональность. + +--- + +## 1. base_setup + +### Назначение +Базовая настройка всех хостов (кроме Proxmox). Выполняется первой. + +### Структура +```mermaid +graph TD + base_setup/ --> handlers/ + base_setup/ --> tasks/ + handlers/ --> main.yml + tasks/ --> main.yml +``` + +### Выполняемые задачи +- Установка базовых пакетов (`base_packages`). +- Создание пользовательских директорий (`custom_directories`). +- Настройка временной зоны (`timezone`). +- Настройка локали (`system_locale`). +- Добавление публичных SSH-ключей (`ssh_public_keys`). + +### Используемые переменные (из `group_vars/all.yml`) +- `timezone` +- `system_locale` +- `base_packages` +- `custom_directories` +- `ssh_public_keys` + +### Обработчики +- `reload systemd` — применяется, если были изменения в юнитах (редко). + +### Примечания +- Роль идемпотентна: повторный запуск не меняет уже существующие настройки. + +--- + +## 2. docker + +### Назначение +Установка Docker Engine и Docker Compose на целевой хост. + +### Структура +```mermaid +graph TD + docker/ --> tasks/ + tasks/ --> main.yml +``` + +### Выполняемые задачи +- Добавление официального репозитория Docker. +- Установка пакетов: `docker-ce`, `docker-ce-cli`, `containerd.io`, `docker-compose-plugin`. +- Запуск и включение службы Docker. +- Добавление пользователя `admin_user` в группу `docker`. + +### Используемые переменные +- `admin_user` (из `group_vars/all.yml`) — пользователь, добавляемый в группу `docker`. + +### Примечания +- Не требует обработчиков; Docker управляется системой. +- После установки можно запускать контейнеры от имени администратора. + +--- + +## 3. system_cleanup + +### Назначение +Удаление ненужных пакетов и очистка системы. + +### Структура +```mermaid +graph TD + system_cleanup/ --> defaults/ + system_cleanup/ --> tasks/ + defaults/ --> main.yml + tasks/ --> main.yml +``` + +### Выполняемые задачи +- Удаление пакетов из списка `cleanup_packages`. +- Автоматическое удаление неиспользуемых зависимостей (`apt autoremove`). +- Очистка кэша пакетов (`apt autoclean`). + +### Используемые переменные +- `cleanup_packages` (из `group_vars/all.yml`) — список пакетов для удаления. +- (В `defaults/main.yml` задан пустой список, переопределяется в групповых переменных.) + +### Примечания +- Роль безопасна: удаляет только явно указанные пакеты. +- Рекомендуется запускать периодически для поддержания чистоты системы. + +--- + +## 4. promtail + +### Назначение +Установка и настройка Promtail — агента сбора логов для Loki. + +### Структура +```mermaid +graph TD + promtail/ --> handlers/ + promtail/ --> tasks/ + promtail/ --> templates/ + handlers/ --> main.yml + tasks/ --> main.yml + templates/ --> promtail-config.yml.j2 + templates/ --> promtail-service.yml.j2 +``` + +### Выполняемые задачи +- Создание пользователя `promtail`. +- Создание директорий для конфигурации и данных. +- Генерация конфигурации из шаблона `promtail-config.yml.j2`. +- Установка systemd-сервиса из шаблона `promtail-service.yml.j2`. +- Запуск и включение сервиса. + +### Используемые переменные (из `group_vars/all.yml`) +- `monitoring_ports.promtail` — порт для работы Promtail. +- `loki_server_host` и `loki_server_port` — адрес Loki. +- `promtail_config_dir` — директория конфигурации. +- `promtail_data_dir` — директория для позиций. + +### Обработчики +- `restart promtail` — перезапуск сервиса при изменении конфигурации. + +### Примечания +- Promtail отправляет логи только на указанный Loki. +- Настраивается только на серверах из `monitoring_groups.promtail_servers`. + +--- + +## 5. proxmox_base_setup + +### Назначение +Базовая настройка хостов Proxmox (гипервизоров). + +### Структура +```mermaid +graph TD + proxmox_base_setup/ --> handlers/ + proxmox_base_setup/ --> tasks/ + handlers/ --> main.yml + tasks/ --> main.yml +``` + +### Выполняемые задачи +- Настройка репозиториев Proxmox (переключение на No-subscription). +- Обновление системы. +- Установка дополнительных пакетов (если указаны). +- Настройка времени и локали (аналогично `base_setup`). + +### Используемые переменные +- `timezone`, `system_locale` — как в `base_setup`. + +### Обработчики +- `reload systemd` — при изменениях. + +### Примечания +- Применяется только к группе `pve-server`. + +--- + +## 6. proxmox_monitoring + +### Назначение +Настройка мониторинга на Proxmox: установка Node Exporter и Proxmox Exporter. + +### Структура +```mermaid +graph TD + proxmox_monitoring/ --> handlers/ + proxmox_monitoring/ --> tasks/ + proxmox_monitoring/ --> templates/ + handlers/ --> main.yml + tasks/ --> main.yml + templates/ --> node_exporter.service.j2 + templates/ --> pve_exporter_config.yml.j2 + templates/ --> storcli_metrics.sh.j2 +``` + +### Выполняемые задачи +- Установка Node Exporter (для сбора метрик ОС). +- Установка Proxmox Exporter (для сбора метрик PVE). +- Генерация конфигурации Proxmox Exporter с токеном доступа. +- Создание systemd-сервисов для обоих экспортеров. +- (Опционально) Установка скрипта `storcli_metrics.sh` для сбора метрик RAID-контроллера (если LSI MegaRAID). + +### Используемые переменные (из `group_vars/all.yml`) +- `monitoring_ports.node_exporter` +- `monitoring_ports.proxmox_exporter` +- `pve_exporter_user`, `pve_exporter_token_name`, `pve_exporter_token_value` +- `admin_user` + +### Обработчики +- `restart node_exporter` — перезапуск Node Exporter. +- `restart proxmox_exporter` — перезапуск Proxmox Exporter. + +### Примечания +- Токен для Proxmox Exporter хранится в `vault.yml`. +- Node Exporter собирает метрики хоста, Proxmox Exporter — метрики виртуальных окружений. + +--- + +*Далее: [Роли Gateway](09-ansible-roles-gateway.md)* \ No newline at end of file