Docs/docs/09-ansible-variables.md
2026-03-23 23:02:38 +05:00

489 lines
50 KiB
Markdown
Raw Permalink 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 — переменные и окружение
## 🎯 Общие сведения
Переменные в этом репозитории разделены по уровням:
- **Глобальные** — определены в `group_vars/all.yml` и применяются ко всем хостам.
- **Рольные** — могут переопределяться внутри ролей (в `defaults/main.yml` или `vars/main.yml`), но в основном используются глобальные для единообразия.
- **Секретные** — вынесены в `vault.yml` (зашифрованы) и подставляются через переменные вида `{{ vault_* }}`.
Файл `group_vars/all.yml` структурирован по разделам, каждый из которых отвечает за определённую группу настроек. Ниже приведено подробное описание каждой переменной.
---
## 🌍 Общие настройки
| Переменная | Тип | Значение / Пример | Назначение | Используется в ролях |
|--------------------|------------|---------------------------------------|------------------------------------------------------------------------------------------------|--------------------------------------------|
| `timezone` | string | `Asia/Yekaterinburg` | Часовой пояс системы. | `base_setup` |
| `system_locale` | string | `ru_RU.UTF-8` | Локаль системы. | `base_setup` |
| `x11_display_host` | string | `192.168.1.101` | Хост для X11-проброса (используется редко). | (не используется в текущих ролях) |
| `admin_user` | string | `root` | Пользователь, от имени которого выполняются административные задачи. | `base_setup`, `proxmox_base_setup` |
| `base_packages` | list | `[curl, wget, ...]` | Список базовых пакетов, устанавливаемых на всех хостах. | `base_setup` |
| `custom_directories`| list | `[/opt/scripts, /etc/apt/keyrings]` | Каталоги, которые необходимо создать на каждом хосте. | `base_setup` |
| `ssh_public_keys` | list | список публичных ключей | SSH-ключи для доступа к хостам (добавляются в `authorized_keys`). | `base_setup` |
| `cleanup_packages` | list | `[gparted]` | Пакеты, которые нужно удалить (устаревшие или ненужные). | `system_cleanup` |
---
## 🌐 Сетевые настройки
| Переменная | Тип | Значение | Назначение |
|--------------------|------------|------------------------------|------------------------------------------------------------------------------------------------|
| `server_ips` | dict | `olimp: 192.168.1.200` и т.д.| Словарь с IP-адресами всех сервисных хостов. Используется для ссылок в других переменных. |
Эти IP используются для настройки мониторинга (списки хостов для Node Exporter, Promtail), а также для указания расположения сервисов (например, в `qbittorrent_shares` ссылки на SMB-шары).
---
## 📊 Мониторинг и логирование
### Порты
| Переменная | Значение | Назначение |
|--------------------------------|----------|-------------------------------------------------|
| `monitoring_ports.node_exporter` | 9100 | Порт Node Exporter. |
| `monitoring_ports.proxmox_exporter` | 9223 | Порт Proxmox Exporter. |
| `monitoring_ports.vmagent` | 8429 | Порт VMagent (VictoriaMetrics agent). |
| `monitoring_ports.victoriametrics` | 8428 | Порт VictoriaMetrics. |
| `monitoring_ports.loki` | 3100 | Порт Loki. |
| `monitoring_ports.promtail` | 9080 | Порт Promtail. |
### Группы серверов для мониторинга
| Переменная | Значение (пример) | Назначение |
|------------------------------------|-----------------------------------------------|-----------------------------------------------------------------|
| `monitoring_groups.node_exporter_servers` | список IP-адресов всех хостов, кроме, возможно, некоторых | Хосты, на которых запускается Node Exporter (роль `proxmox_monitoring` и др.). |
| `monitoring_groups.proxmox_servers` | `[{{ server_ips.olimp }}]` | Хосты Proxmox, для которых нужен Proxmox Exporter. |
| `monitoring_groups.promtail_servers` | список IP-адресов (все, кроме Proxmox) | Хосты, на которых запускается Promtail для сбора логов. |
### Proxmox Exporter
| Переменная | Значение | Назначение |
|-----------------------------|------------------------------|--------------------------------------------------------------------------------------|
| `pve_exporter_user` | `pve_exporter@pve` | Пользователь в Proxmox для экспорта метрик. |
| `pve_exporter_token_name` | `grafana` | Имя токена для доступа. |
| `pve_exporter_token_value` | `{{ vault_pve_exporter_token }}` | Токен (секрет) для аутентификации. Хранится в vault. |
### VictoriaMetrics и Grafana
| Переменная | Значение | Назначение |
|------------------------------------|------------------------------|----------------------------------------------------------------------------|
| `victoriametrics_retention_months` | 2 | Срок хранения метрик (месяцев). |
| `victoriametrics_version` | `v1.101.0` | Версия VictoriaMetrics. |
| `grafana_version` | `11.2.0` | Версия Grafana. |
| `grafana_admin_user` | `admin` | Имя администратора Grafana. |
| `grafana_admin_password` | `{{ vault_grafana_admin_password }}` | Пароль администратора (vault). |
| `grafana_root_url` | `https://mon.zailon.ru` | Внешний URL для доступа к Grafana. |
### Loki
| Переменariable | Значение | Назначение |
|--------------------------|----------|-----------------------------------------------|
| `loki_version` | `2.9.2` | Версия Loki. |
| `loki_retention_days` | 30 | Срок хранения логов (дней). |
### cAdvisor
| Переменная | Значение | Назначение |
|--------------------|--------------|--------------------------------------------------------|
| `cadvisor_enabled` | true | Включает развёртывание cAdvisor. |
| `cadvisor_base_dir`| `/opt/cadvisor` | Базовый каталог для данных cAdvisor. |
| `cadvisor_port` | 8080 | Порт cAdvisor. |
---
## 🚪 Сервисы Gateway (хост 192.168.1.201)
| Переменная | Значение | Назначение | Роль |
|--------------------------------------|----------------------------------|-----------------------------------------------------------------|------------|
| `npm_base_dir` | `/opt/npm` | Базовый каталог Nginx Proxy Manager. | `npm` |
| `npm_data_dir` | `/opt/npm/data` | Каталог данных NPM. | `npm` |
| `npm_letsencrypt_dir` | `/opt/npm/letsencrypt` | Каталог сертификатов Let's Encrypt. | `npm` |
| `heimdall_base_dir` | `/opt/heimdall` | Базовый каталог Heimdall. | `heimdall` |
| `heimdall_config_dir` | `/opt/heimdall/config` | Каталог конфигурации Heimdall. | `heimdall` |
| `heimdall_port` | `45131` | Порт Heimdall (проброшен на хост). | `heimdall` |
| `dashy_base_dir` | `/opt/dashy` | Базовый каталог Dashy (архивная роль, не используется). | `arhive_roles/dashy` |
| `dashy_config_dir` | `/opt/dashy/config` | Конфигурация Dashy. | `arhive_roles/dashy` |
| `dashy_port` | `45132` | Порт Dashy. | `arhive_roles/dashy` |
| `dashy_domain` | `start.zailon.ru` | Домен для Dashy. | `arhive_roles/dashy` |
---
## 💾 Сервисы Data (хост 192.168.1.202)
### Bitwarden (Vaultwarden)
| Переменная | Значение | Назначение | Роль |
|------------------------------------|---------------------------------|--------------------------------------------------------|--------------|
| `bitwarden_base_dir` | `/mnt/bitwarden` | Базовый каталог. | `bitwarden` |
| `bitwarden_data_dir` | `/mnt/bitwarden/vw-data` | Каталог данных. | `bitwarden` |
| `bitwarden_port` | `45131` | Порт веб-интерфейса. | `bitwarden` |
| `bitwarden_admin_token` | `{{ vault_bitwarden_admin_token }}` | Токен для админ-панели (vault). | `bitwarden` |
| `bitwarden_websocket_enabled` | true | Включить WebSocket для уведомлений. | `bitwarden` |
| `bitwarden_signups_allowed` | false | Разрешить регистрацию новых пользователей. | `bitwarden` |
| `bitwarden_smtp_host` | `smtp.mail.ru` | SMTP-сервер для отправки писем. | `bitwarden` |
| `bitwarden_smtp_port` | `465` | Порт SMTP. | `bitwarden` |
| `bitwarden_smtp_ssl` | true | Использовать SSL/TLS для SMTP. | `bitwarden` |
| `bitwarden_smtp_username` | `zailon@bk.ru` | Логин для SMTP. | `bitwarden` |
| `bitwarden_smtp_password` | `{{ vault_bitwarden_smtp_password }}` | Пароль для SMTP (vault). | `bitwarden` |
| `bitwarden_smtp_from` | `zailon@bk.ru` | Адрес отправителя. | `bitwarden` |
| `bitwarden_domain` | `https://bw.zailon.ru` | Внешний домен Bitwarden. | `bitwarden` |
### Mealie
| Переменная | Значение | Назначение | Роль |
|------------------------------------|---------------------------------|--------------------------------------------------------|----------|
| `mealie_base_dir` | `/mnt/mealie` | Базовый каталог. | `mealie` |
| `mealie_data_dir` | `/mnt/mealie/data` | Каталог данных. | `mealie` |
| `mealie_port` | `45132` | Порт. | `mealie` |
| `mealie_db_type` | `sqlite` | Тип базы данных (sqlite/postgresql). | `mealie` |
| `mealie_db_password` | `{{ vault_mealie_db_password }}` | Пароль для базы данных (если используется postgres). | `mealie` |
### Bookstack
| Переменная | Значение | Назначение | Роль |
|------------------------------------|---------------------------------|--------------------------------------------------------|-------------|
| `bookstack_base_dir` | `/mnt/bookstack` | Базовый каталог. | `bookstack` |
| `bookstack_config_dir` | `/mnt/bookstack/config` | Конфигурация. | `bookstack` |
| `bookstack_uploads_dir` | `/mnt/bookstack/uploads` | Загруженные файлы. | `bookstack` |
| `bookstack_db_dir` | `/mnt/bookstack/db` | Каталог базы данных (SQLite). | `bookstack` |
| `bookstack_port` | `45133` | Порт. | `bookstack` |
---
## 🎬 Сервисы Media (хост 192.168.1.203)
Общая переменная `service_config_base: "/mnt/service"` используется для всех ролей этого хоста.
### Jellyfin
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-----------|
| `jellyfin_base_dir` | `{{ service_config_base }}/jellyfin` | Базовый каталог. | `jellyfin`|
| `jellyfin_config_dir` | `{{ jellyfin_base_dir }}/config` | Конфигурация. | `jellyfin`|
| `jellyfin_cache_dir` | `{{ jellyfin_base_dir }}/cache` | Кэш. | `jellyfin`|
| `jellyfin_logs_dir` | `{{ jellyfin_base_dir }}/logs` | Логи. | `jellyfin`|
| `jellyfin_media_path` | `/mnt/video` | Путь к медиафайлам (видео). | `jellyfin`|
| `jellyfin_port` | `45131` | Порт. | `jellyfin`|
| `jellyfin_hw_acceleration` | true | Включить аппаратное ускорение (VAAPI). | `jellyfin`|
### Audiobookshelf
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-------------------|
| `audiobookshelf_base_dir` | `{{ service_config_base }}/audiobookshelf` | Базовый каталог. | `audiobookshelf` |
| `audiobookshelf_config_dir` | `{{ audiobookshelf_base_dir }}/config` | Конфигурация. | `audiobookshelf` |
| `audiobookshelf_db_dir` | `{{ audiobookshelf_base_dir }}/db` | Каталог базы данных. | `audiobookshelf` |
| `audiobookshelf_port` | `45132` | Порт. | `audiobookshelf` |
### Calibre Web
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|---------------|
| `calibre_base_dir` | `{{ service_config_base }}/calibre` | Базовый каталог. | `calibre-web` |
| `calibre_library_dir` | `/mnt/books/calibre` | Каталог библиотеки Calibre. | `calibre-web` |
| `calibre_config_dir` | `{{ calibre_base_dir }}/config` | Конфигурация. | `calibre-web` |
| `calibre_web_port` | `45133` | Порт. | `calibre-web` |
| `calibre_web_db_path` | `{{ calibre_config_dir }}/app.db` | Путь к файлу базы данных. | `calibre-web` |
| `calibre_web_enable_uploading` | true | Разрешить загрузку книг. | `calibre-web` |
| `calibre_web_enable_conversion` | true | Разрешить конвертацию книг. | `calibre-web` |
| `calibre_web_enable_registration` | false | Разрешить регистрацию новых пользователей. | `calibre-web` |
| `calibre_web_enable_webdav` | true | Включить WebDAV. | `calibre-web` |
| `calibre_web_enable_opds` | true | Включить OPDS-каталог. | `calibre-web` |
### Ampache
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-----------|
| `ampache_base_dir` | `{{ service_config_base }}/ampache` | Базовый каталог. | `ampache` |
| `ampache_config_dir` | `{{ ampache_base_dir }}/config` | Конфигурация. | `ampache` |
| `ampache_logs_dir` | `{{ ampache_base_dir }}/logs` | Логи. | `ampache` |
| `ampache_mysql_dir` | `{{ ampache_base_dir }}/mysql` | Каталог MySQL (данные). | `ampache` |
| `ampache_port` | `45134` | Порт. | `ampache` |
### Flibusta (Z-Library зеркало)
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-------------|
| `flibusta_base_dir` | `/mnt/service/flibusta` | Базовый каталог. | `flibusta` |
| `flibusta_source_archives_dir` | `/mnt/books/flibusta` | Каталог с архивами книг (исходные данные). | `flibusta` |
| `flibusta_web_port` | `45137` | Порт веб-интерфейса. | `flibusta` |
| `flibusta_db_port` | `45138` | Порт базы данных (PostgreSQL). | `flibusta` |
| `flibusta_db_user` | `flibusta` | Пользователь БД. | `flibusta` |
| `flibusta_db_password` | `{{ vault_flibusta_db_password }}` | Пароль БД (vault). | `flibusta` |
| `flibusta_db_name` | `flibusta` | Имя базы данных. | `flibusta` |
---
## 📸 Сервисы Photo (хост 192.168.1.204)
### Immich
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-----------|
| `immich_base_dir` | `/mnt/immich` | Базовый каталог. | `immich` |
| `immich_port` | `45131` | Порт веб-интерфейса. | `immich` |
| `immich_db_username` | `postgres` | Пользователь PostgreSQL. | `immich` |
| `immich_db_password` | `{{ vault_immich_db_password }}` | Пароль БД (vault). | `immich` |
| `immich_db_name` | `immich` | Имя БД. | `immich` |
| `immich_version` | `release` | Версия Immich (release последняя стабильная). | `immich` |
---
## 💬 Сервисы Talk (хост 192.168.1.206)
### Mumble
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-----------|
| `mumble_base_dir` | `/mnt/mumble` | Базовый каталог. | `mumble` |
| `mumble_data_dir` | `{{ mumble_base_dir }}/data` | Данные. | `mumble` |
| `mumble_port` | `45131` | Порт клиентского подключения. | `mumble` |
| `mumble_ice_port` | `6502` | Порт ICE (интерфейс управления). | `mumble` |
| `mumble_max_users` | `100` | Максимальное количество пользователей. | `mumble` |
| `mumble_server_password` | `{{ vault_mumble_server_password }}` | Пароль для доступа к серверу (если требуется). | `mumble` |
| `mumble_superuser_password` | `{{ vault_mumble_superuser_password }}` | Пароль суперпользователя (vault). | `mumble` |
### Matrix (Synapse) архивная роль
Переменные для Matrix находятся в `arhive_roles/matrix`. Мы их перечислим кратко, так как роль не используется.
| Переменная | Значение | Назначение |
|------------------------------------|------------------------------|-------------------------------------------------|
| `matrix_base_dir` | `/mnt/matrix` | Базовый каталог. |
| `matrix_data_dir` | `/mnt/matrix/data` | Данные Synapse. |
| `matrix_config_dir` | `/mnt/matrix/config` | Конфигурация. |
| `matrix_media_dir` | `/mnt/matrix/media` | Медиафайлы. |
| `matrix_postgres_dir` | `/mnt/matrix/postgres` | Данные PostgreSQL. |
| `matrix_port` | `45132` | Порт. |
| `matrix_domain` | `matrix.zailon.ru` | Домен. |
| `matrix_server_name` | `matrix.zailon.ru` | Имя сервера. |
| `matrix_registration_enabled` | false | Разрешена регистрация. |
| `matrix_postgres_user` | `synapse` | Пользователь БД. |
| `matrix_postgres_password` | `{{ vault_matrix_postgres_password }}` | Пароль БД. |
| `matrix_postgres_db` | `synapse` | Имя БД. |
| `matrix_synapse_secret` | `{{ vault_matrix_synapse_secret }}` | Секрет. |
| `matrix_macaroon_secret` | `{{ vault_matrix_macaroon_secret }}` | Секрет. |
| `matrix_form_secret` | `{{ vault_matrix_form_secret }}` | Секрет. |
### Snikket (XMPP)
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-----------|
| `snikket_base_dir` | `/mnt/snikket` | Базовый каталог. | `snikket` |
| `snikket_data_dir` | `/mnt/snikket/snikket_data` | Данные сервера. | `snikket` |
| `snikket_nginx_custom_dir` | `/mnt/snikket/nginx-custom` | Кастомные настройки nginx. | `snikket` |
| `snikket_backup_dir` | `/backup/snikket` | Каталог резервных копий. | `snikket` |
| `snikket_domain` | `chat.zailon.ru` | Домен XMPP-сервера. | `snikket` |
| `snikket_admin_email` | `zailon@bk.ru` | Email администратора. | `snikket` |
| `snikket_external_ip` | `188.73.191.202` | Внешний IP сервера (для TURN). | `snikket` |
| `snikket_http_port` | 8080 | HTTP-порт. | `snikket` |
| `snikket_https_port` | 8443 | HTTPS-порт. | `snikket` |
| `snikket_xmpp_port` | 5222 | XMPP-порт (клиент). | `snikket` |
| `snikket_component_port` | 5349 | Порт для компонентов. | `snikket` |
| `snikket_turn_port` | 3478 | TURN-порт. | `snikket` |
| `snikket_turn_tls_port` | 5349 | TURN с TLS. | `snikket` |
| `snikket_rtp_min_port` | 50000 | Минимальный порт RTP. | `snikket` |
| `snikket_rtp_max_port` | 50100 | Максимальный порт RTP. | `snikket` |
| `snikket_enable_acme` | false | Отключить автоматические сертификаты ACME. | `snikket` |
| `snikket_disable_tls` | true | Отключить TLS (используется прокси nginx). | `snikket` |
| `snikket_trusted_proxy` | `*` | Доверенные прокси. | `snikket` |
| `snikket_max_file_size` | `500M` | Максимальный размер файла. | `snikket` |
| `snikket_image_tag` | `dev` | Тег образа Snikket (dev последняя dev-версия). | `snikket` |
| `snikket_create_initial_invite` | false | Не создавать приглашение автоматически. | `snikket` |
| `snikket_backup_enabled` | true | Включить автоматическое резервное копирование. | `snikket` |
| `snikket_backup_retention_days` | 30 | Хранить бэкапы 30 дней. | `snikket` |
| `snikket_admin_password` | `{{ vault_snikket_admin_password }}` | Пароль администратора (vault). | `snikket` |
| `snikket_invite_token` | `{{ vault_snikket_invite_token }}` | Токен для приглашений (vault). | `snikket` |
### TeamSpeak
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-------------|
| `teamspeak_base_dir` | `/mnt/teamspeak` | Базовый каталог. | `teamspeak` |
| `teamspeak_data_dir` | `/mnt/teamspeak/data` | Данные сервера. | `teamspeak` |
| `teamspeak_logs_dir` | `/mnt/teamspeak/logs` | Логи. | `teamspeak` |
| `teamspeak_query_port` | `10011` | Порт Query API. | `teamspeak` |
| `teamspeak_voice_port` | `9987` | Голосовой порт (UDP). | `teamspeak` |
| `teamspeak_file_port` | `30033` | Порт передачи файлов. | `teamspeak` |
---
## 🎮 Сервисы Games (хост 192.168.1.207)
### Minecraft
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-------------|
| `minecraft_base_dir` | `/mnt/minecraft` | Базовый каталог. | `minecraft` |
| `minecraft_data_dir` | `/mnt/minecraft/data` | Данные сервера. | `minecraft` |
| `minecraft_port` | `25565` | Игровой порт. | `minecraft` |
| `minecraft_memory` | `4G` | Выделяемая память. | `minecraft` |
| `minecraft_version` | `1.21.1` | Версия Minecraft. | `minecraft` |
| `minecraft_neoforge_version` | `21.1.0` | Версия NeoForge (моды). | `minecraft` |
| `minecraft_type` | `NEOFORGE` | Тип сервера (Vanilla/Forge/NeoForge). | `minecraft` |
| `minecraft_eula` | `true` | Принятие EULA. | `minecraft` |
| `minecraft_motd` | `Minecraft @ zailon.ru` | Текст MOTD. | `minecraft` |
| `minecraft_online_mode` | `true` | Проверка лицензий. | `minecraft` |
| `minecraft_mods` | список URL-адресов модов | Список модов для загрузки. | `minecraft` |
---
## 🛠️ Сервисы Manage (хост 192.168.1.208)
### MeshCentral
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|---------------|
| `meshcentral_base_dir` | `/opt/meshcentral` | Базовый каталог. | `meshcentral` |
| `meshcentral_data_dir` | `/mnt/mesh/meshcentral-data` | Данные. | `meshcentral` |
| `meshcentral_files_dir` | `/mnt/mesh/meshcentral-files` | Файлы. | `meshcentral` |
| `meshcentral_backup_dir` | `/mnt/mesh/meshcentral-backup` | Бэкапы. | `meshcentral` |
| `meshcentral_port` | `45131` | Порт веб-интерфейса. | `meshcentral` |
### Grafana
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-----------|
| `grafana_base_dir` | `/mnt/grafana` | Базовый каталог. | `grafana` |
| `grafana_data_dir` | `/mnt/grafana/data` | Данные Grafana. | `grafana` |
| `grafana_config_dir` | `/mnt/grafana/config` | Конфигурация. | `grafana` |
| `grafana_vm_data_dir` | `/mnt/grafana/victoriametrics` | Данные VictoriaMetrics. | `grafana` |
| `grafana_vmagent_tmp_dir` | `/mnt/grafana/vmagent/tmp` | Временная директория VMagent. | `grafana` |
| `grafana_vmagent_config` | `/mnt/grafana/vmagent/vmagent.yaml` | Конфиг VMagent. | `grafana` |
| `grafana_port` | `45132` | Порт Grafana. | `grafana` |
### Loki
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-----------|
| `loki_base_dir` | `/mnt/loki` | Базовый каталог. | `loki` |
| `loki_config_dir` | `/mnt/loki/config` | Конфигурация. | `loki` |
| `loki_data_dir` | `/mnt/loki/data` | Данные Loki. | `loki` |
| `loki_server_host` | `{{ server_ips.manage }}` | IP-адрес, на котором слушает Loki. | `loki` |
| `loki_server_port` | `{{ monitoring_ports.loki }}` | Порт Loki. | `loki` |
### Promtail
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-------------|
| `promtail_config_dir` | `/etc/promtail` | Каталог конфигурации Promtail. | `promtail` |
| `promtail_data_dir` | `/var/lib/promtail` | Данные Promtail (позиции). | `promtail` |
---
## 📦 Сервисы Git (хост 192.168.1.209)
### GitLab
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-----------|
| `gitlab_base_dir` | `/mnt/git` | Базовый каталог. | `gitlab` |
| `gitlab_config_dir` | `/mnt/git/config` | Конфигурация GitLab. | `gitlab` |
| `gitlab_logs_dir` | `/mnt/git/logs` | Логи. | `gitlab` |
| `gitlab_data_dir` | `/mnt/git/data` | Данные (репозитории, база данных). | `gitlab` |
| `gitlab_backup_dir` | `/mnt/git/backup` | Резервные копии. | `gitlab` |
| `gitlab_http_port` | `45130` | HTTP-порт (внешний). | `gitlab` |
| `gitlab_ssh_port` | `2222` | SSH-порт для git-операций. | `gitlab` |
| `gitlab_version` | `17.5.5-ce.0` | Версия GitLab CE. | `gitlab` |
| `gitlab_hostname` | `git.zailon.ru` | Внутреннее имя хоста. | `gitlab` |
| `gitlab_external_url` | `https://git.zailon.ru` | Внешний URL. | `gitlab` |
| `gitlab_root_password` | `{{ vault_gitlab_root_password }}` | Пароль root (vault). | `gitlab` |
---
## 🧲 Сервисы Torrent (хост 192.168.1.211)
### qBittorrent
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|---------------|
| `qbittorrent_base_dir` | `/mnt/service/qbittorrent` | Базовый каталог. | `qbittorrent` |
| `qbittorrent_config_dir` | `/mnt/service/qbittorrent/appdata` | Конфигурация. | `qbittorrent` |
| `qbittorrent_downloads_dir` | `/mnt/service/qbittorrent/downloads` | Каталог загрузок (локальный). | `qbittorrent` |
| `qbittorrent_puid` | 1000 | ID пользователя для контейнера. | `qbittorrent` |
| `qbittorrent_pgid` | 1003 | ID группы. | `qbittorrent` |
| `qbittorrent_port_webui` | 8080 | Порт веб-интерфейса. | `qbittorrent` |
| `qbittorrent_port_torrent` | 6881 | Порт для торрент-трафика. | `qbittorrent` |
| `qbittorrent_smb_credentials_dir` | `/etc/smb-creds` | Каталог для файлов с учетными данными SMB. | `qbittorrent` |
**SMB-учетные данные:**
| Переменная | Значение | Назначение |
|------------------------------------|----------------------------------|-------------------------------------------------------|
| `qbittorrent_smb_creds.olimp.username` | `Olimp` | Логин для шары Olimp. |
| `qbittorrent_smb_creds.olimp.password` | `{{ vault_smb_olimp_password }}` | Пароль (vault). |
| `qbittorrent_smb_creds.olimp.file` | `olimp` | Имя файла с креденшелами. |
| `qbittorrent_smb_creds.qb.username` | `qb` | Логин для шары qb. |
| `qbittorrent_smb_creds.qb.password` | `{{ vault_samba_password_qb }}` | Пароль (vault). |
| `qbittorrent_smb_creds.qb.file` | `qb` | Имя файла. |
**SMB-шары (монтируемые):**
Переменная `qbittorrent_shares` — список словарей с параметрами монтирования. Каждый элемент содержит:
- `name` — название (используется в пути монтирования).
- `src` — UNC-путь к шаре.
- `dest` — точка монтирования в контейнере.
- `credential` — ссылка на учётные данные (olimp или qb).
- `opts` — параметры монтирования.
Эти шары монтируются на хост через `fstab` (роль `qbittorrent` обеспечивает это) и затем пробрасываются в контейнер.
### TorrServer
| Переменная | Значение | Назначение | Роль |
|------------------------------------|----------------------------------|-------------------------------------------------------|-------------|
| `torrserver_base_dir` | `/mnt/service/torrserver` | Базовый каталог. | `torrserver`|
| `torrserver_config_dir` | `/mnt/service/torrserver/config` | Конфигурация. | `torrserver`|
| `torrserver_torrents_dir` | `/mnt/service/torrserver/torrents` | Каталог с торрент-файлами. | `torrserver`|
| `torrserver_port` | `45132` | Порт веб-интерфейса. | `torrserver`|
---
## 🔐 Секретные переменные (vault)
Переменные, начинающиеся с `vault_`, хранятся в зашифрованном файле `vault.yml`. Они используются в вышеперечисленных ролях. Для редактирования используется команда:
```bash
ansible-vault edit vault.yml
```
Пароль vault должен быть известен администратору.
Список vault-переменных (не включая их значения):
- `vault_pve_exporter_token`
- `vault_grafana_admin_password`
- `vault_bitwarden_admin_token`
- `vault_bitwarden_smtp_password`
- `vault_mealie_db_password`
- `vault_flibusta_db_password`
- `vault_immich_db_password`
- `vault_mumble_server_password`
- `vault_mumble_superuser_password`
- `vault_matrix_postgres_password`
- `vault_matrix_synapse_secret`
- `vault_matrix_macaroon_secret`
- `vault_matrix_form_secret`
- `vault_snikket_admin_password`
- `vault_snikket_invite_token`
- `vault_gitlab_root_password`
- `vault_smb_olimp_password`
- `vault_samba_password_qb`
---
## 📌 Примечания
- Большинство переменных предназначены для использования в **шаблонах Docker Compose** (файлы `docker-compose.yml.j2`). В них переменные подставляются через Jinja2.
- Для мониторинга используются группы хостов, заданные через IP-адреса, что позволяет гибко настраивать, какие сервисы мониторить.
- Все пути к данным вынесены в переменные, что облегчает миграцию на другое хранилище при необходимости.
- Переменные, связанные с портами, используют схему: для каждого сервиса выделен уникальный порт в диапазоне 451xx, чтобы избежать конфликтов при пробросе на хост.
---
## 🔗 Исходные файлы
- [`group_vars/all.yml`](../group_vars/all.yml) — полный файл с переменными.
- [`vault.yml`](../vault.yml) — зашифрованный файл с секретами (требуется пароль).
---
[Плейбуки и запуск](09-ansible-playbooks.md)*