210 lines
7.9 KiB
Markdown
210 lines
7.9 KiB
Markdown
# 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)* |