Docs/docs/09-ansible-roles-common.md
2026-03-23 23:51:30 +05:00

210 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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