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

7.9 KiB
Raw Permalink Blame History

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)

  • timezone
  • system_locale
  • base_packages
  • custom_directories
  • ssh_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_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