Update file 09-ansible-roles-common.md

This commit is contained in:
Administrator 2026-03-23 23:51:30 +05:00
parent f93f01da3a
commit 87688bedae

View File

@ -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)*