7.9 KiB
7.9 KiB
09. Ansible — общие роли (common)
Этот документ описывает роли, которые применяются на нескольких хостах или обеспечивают базовую функциональность.
1. base_setup
Назначение
Базовая настройка всех хостов (кроме Proxmox). Выполняется первой.
Структура
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)
timezonesystem_localebase_packagescustom_directoriesssh_public_keys
Обработчики
reload systemd— применяется, если были изменения в юнитах (редко).
Примечания
- Роль идемпотентна: повторный запуск не меняет уже существующие настройки.
2. docker
Назначение
Установка Docker Engine и Docker Compose на целевой хост.
Структура
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
Назначение
Удаление ненужных пакетов и очистка системы.
Структура
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.
Структура
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 (гипервизоров).
Структура
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.
Структура
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_exportermonitoring_ports.proxmox_exporterpve_exporter_user,pve_exporter_token_name,pve_exporter_token_valueadmin_user
Обработчики
restart node_exporter— перезапуск Node Exporter.restart proxmox_exporter— перезапуск Proxmox Exporter.
Примечания
- Токен для Proxmox Exporter хранится в
vault.yml. - Node Exporter собирает метрики хоста, Proxmox Exporter — метрики виртуальных окружений.
Далее: Роли Gateway