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