67 KiB
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. Они используются в вышеперечисленных ролях. Для редактирования используется команда:
ansible-vault edit vault.yml
Пароль vault должен быть известен администратору.
Список vault-переменных (не включая их значения):
vault_pve_exporter_tokenvault_grafana_admin_passwordvault_bitwarden_admin_tokenvault_bitwarden_smtp_passwordvault_mealie_db_passwordvault_flibusta_db_passwordvault_immich_db_passwordvault_mumble_server_passwordvault_mumble_superuser_passwordvault_matrix_postgres_passwordvault_matrix_synapse_secretvault_matrix_macaroon_secretvault_matrix_form_secretvault_snikket_admin_passwordvault_snikket_invite_tokenvault_gitlab_root_passwordvault_smb_olimp_passwordvault_samba_password_qb
📌 Примечания
- Большинство переменных предназначены для использования в шаблонах Docker Compose (файлы
docker-compose.yml.j2). В них переменные подставляются через Jinja2. - Для мониторинга используются группы хостов, заданные через IP-адреса, что позволяет гибко настраивать, какие сервисы мониторить.
- Все пути к данным вынесены в переменные, что облегчает миграцию на другое хранилище при необходимости.
- Переменные, связанные с портами, используют схему: для каждого сервиса выделен уникальный порт в диапазоне 451xx, чтобы избежать конфликтов при пробросе на хост.
📄 Полный файл group_vars/all.yml
\```yaml --- # ============================================================================= # ОБЩИЕ НАСТРОЙКИ (GLOBAL) # ============================================================================= timezone: Asia/Yekaterinburg system_locale: ru_RU.UTF-8 x11_display_host: "192.168.1.101" admin_user: rootБазовые пакеты для всех серверов
base_packages:
- curl
- wget
- gnupg
- ca-certificates
- software-properties-common
- tree
- htop
- nano
- git
- apt-transport-https
- net-tools
- dnsutils
- iputils-ping
- traceroute
- sudo
- mc
- iftop
- pv
- jq
- unzip
Пользовательские директории
custom_directories:
- /opt/scripts
- /etc/apt/keyrings
SSH ключи (публичные части — безопасно хранить открыто)
ssh_public_keys:
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID8/+/WFFYDu4ljy1j9+bWp6MiXZ9a0iodoPHq+nEpIr ansible@git"
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCbvnGZxQEGYuScClONbkbfVn2+Uo1kYYztXqMf9ku1lHkw+7IZa00LOMwv7QGBRvrtBcw+TWqaMst5FZ3R6oWcQc+nkBEYoRXe4f3AuuFAl9C9F6sEYM8fX6mAHIlWQhFyVslazZtVTQwnfRV0rnbtCduCu9liywM3fShFqBVwq7Y4nBjG648Zq+VfCHpbBE9XkZaMDyeOXdtppmLetywnBS33mbXMDgH09PMlRz097xfZLkpFdSi8WtDOtKSBiEHtZ+H0EZ42Cda2xMnqlgVtPxWGUirvv6CvDyTmuMzrjALZoSKhl3iD6Szd1YOJcAw6bv9gbJKxPkZchrB65ZXT ZailonOlimp"
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCy3BrhfJx6+ey4h4ZHgBNsuCbgKNwY83lhE/FuHdFxy4NmjiHSH4yXyPz3Qt+mz/VnSQ2rzzsY9xkDs/V+6e3LmXGuhhk65mwYKhWneWTAgprM6CN2PUi5d5P8MXUXDwgVR+XivfI4Y/Bpe8RvGyssuzgra38R5UKZCXKn9lrumkZKq9+GlMKUDLZp5C3/xA/GuI/C4Q+2BT1vOJSM86/7w5VPcd3IjYVTgNA4/V1fR9S/zB0OEkDfK2euqq2zTb6EzDxOGSYcXeH3t37bo0smKqnIehQmkbguLjsGYHEuP4ZE62DJwPZAMwRjn20wf6Nmzy9VQsDGl6Li4nl/TApouQSFbm4NjJOGN7KDT/R54Oq8VCi9rjHOvIg7vxZc3c+ckQGPNmj8FDoyy2Jj9Q1yEUdcSwdI4KvXn0VN2wlJTuN3pzStAI9wMhlUPx7w4DsAiftAvR8OLYSCch9khK146TYWtv4skqd9N0skNJMFVun9VuqT85IXqh6DVecY1fVyTd9qFgz3OfF0idQ4rMI2hxNAZjEZH2gTtb1eYT1UMeBzpBOuQbmWODgCK33Ec3nvV+XXj561Hj5Qpf9bg8i3TTM1dQImKE8macUPn9GwCdshdEJ9VlUwrB9z7SXTtLysgziTkpes5r84Cp/j5tem+7VLOln316d34nz0KU9/Qw== ansible@olimp"
Пакеты для удаления
cleanup_packages:
- gparted
=============================================================================
СЕТЕВЫЕ НАСТРОЙКИ
=============================================================================
server_ips: olimp: "192.168.1.200" # Proxmox gateway: "192.168.1.201" # NPM, Dashy, Heimdall data: "192.168.1.202" # Bitwarden, Mealie, Bookstack media: "192.168.1.203" # Jellyfin, Ampache, Calibre photo: "192.168.1.204" # Immich nextcloud: "192.168.1.205" # Nextcloud talk: "192.168.1.206" # Matrix, Mumble, Snikket, TeamSpeak games: "192.168.1.207" # Minecraft manage: "192.168.1.208" # Grafana, Loki, MeshCentral git: "192.168.1.209" # GitLab ansible: "192.168.1.210" # Ansible torrent: "192.168.1.211" # Qbittorrent, TorrServer
=============================================================================
МОНИТОРИНГ (VictoriaMetrics, Grafana, Loki)
=============================================================================
monitoring_ports: node_exporter: 9100 proxmox_exporter: 9223 vmagent: 8429 victoriametrics: 8428 loki: 3100 promtail: 9080
monitoring_groups: node_exporter_servers: - "{{ server_ips.olimp }}" - "{{ server_ips.gateway }}" - "{{ server_ips.data }}" - "{{ server_ips.media }}" - "{{ server_ips.photo }}" - "{{ server_ips.talk }}" - "{{ server_ips.games }}" - "{{ server_ips.manage }}" - "{{ server_ips.git }}" - "{{ server_ips.ansible }}" - "{{ server_ips.torrent }}" proxmox_servers: - "{{ server_ips.olimp }}" promtail_servers: - "{{ server_ips.gateway }}" - "{{ server_ips.data }}" - "{{ server_ips.media }}" - "{{ server_ips.photo }}" - "{{ server_ips.talk }}" - "{{ server_ips.games }}" - "{{ server_ips.manage }}" - "{{ server_ips.git }}" - "{{ server_ips.ansible }}" - "{{ server_ips.torrent }}"
Proxmox Exporter
pve_exporter_user: "pve_exporter@pve" pve_exporter_token_name: "grafana" pve_exporter_token_value: "{{ vault_pve_exporter_token }}"
VictoriaMetrics & Grafana
victoriametrics_retention_months: 2 victoriametrics_version: v1.101.0 grafana_version: 11.2.0 grafana_admin_user: admin grafana_admin_password: "{{ vault_grafana_admin_password }}" grafana_root_url: https://mon.zailon.ru
Loki
loki_version: "2.9.2" loki_retention_days: 30
cAdvisor
cadvisor_enabled: true cadvisor_base_dir: "/opt/cadvisor" cadvisor_port: 8080
=============================================================================
СЕРВИСЫ: GATEWAY (192.168.1.201)
=============================================================================
npm_base_dir: "/opt/npm" npm_data_dir: "/opt/npm/data" npm_letsencrypt_dir: "/opt/npm/letsencrypt"
heimdall_base_dir: "/opt/heimdall" heimdall_config_dir: "/opt/heimdall/config" heimdall_port: "45131"
dashy_base_dir: "/opt/dashy" dashy_config_dir: "{{ dashy_base_dir }}/config" dashy_port: "45132" dashy_domain: "start.zailon.ru"
=============================================================================
СЕРВИСЫ: DATA (192.168.1.202)
=============================================================================
Bitwarden
bitwarden_base_dir: "/mnt/bitwarden" bitwarden_data_dir: "{{ bitwarden_base_dir }}/vw-data" bitwarden_port: "45131" bitwarden_admin_token: "{{ vault_bitwarden_admin_token }}" bitwarden_websocket_enabled: true bitwarden_signups_allowed: false bitwarden_smtp_host: "smtp.mail.ru" bitwarden_smtp_port: "465" bitwarden_smtp_ssl: true bitwarden_smtp_username: "zailon@bk.ru" bitwarden_smtp_password: "{{ vault_bitwarden_smtp_password }}" bitwarden_smtp_from: "zailon@bk.ru" bitwarden_domain: "https://bw.zailon.ru"
Mealie
mealie_base_dir: "/mnt/mealie" mealie_data_dir: "/mnt/mealie/data" mealie_port: "45132" mealie_db_type: "sqlite" mealie_db_password: "{{ vault_mealie_db_password }}"
Bookstack
bookstack_base_dir: "/mnt/bookstack" bookstack_config_dir: "/mnt/bookstack/config" bookstack_uploads_dir: "/mnt/bookstack/uploads" bookstack_db_dir: "/mnt/bookstack/db" bookstack_port: "45133"
=============================================================================
СЕРВИСЫ: MEDIA (192.168.1.203)
=============================================================================
service_config_base: "/mnt/service"
Jellyfin
jellyfin_base_dir: "{{ service_config_base }}/jellyfin" jellyfin_config_dir: "{{ jellyfin_base_dir }}/config" jellyfin_cache_dir: "{{ jellyfin_base_dir }}/cache" jellyfin_logs_dir: "{{ jellyfin_base_dir }}/logs" jellyfin_media_path: "/mnt/video" jellyfin_port: "45131" jellyfin_hw_acceleration: true
Audiobookshelf
audiobookshelf_base_dir: "{{ service_config_base }}/audiobookshelf" audiobookshelf_config_dir: "{{ audiobookshelf_base_dir }}/config" audiobookshelf_db_dir: "{{ audiobookshelf_base_dir }}/db" audiobookshelf_port: "45132"
Calibre Web
calibre_base_dir: "{{ service_config_base }}/calibre" calibre_library_dir: "/mnt/books/calibre" calibre_config_dir: "{{ calibre_base_dir }}/config" calibre_web_port: "45133" calibre_web_db_path: "{{ calibre_config_dir }}/app.db" calibre_web_enable_uploading: true calibre_web_enable_conversion: true calibre_web_enable_registration: false calibre_web_enable_webdav: true calibre_web_enable_opds: true
Ampache
ampache_base_dir: "{{ service_config_base }}/ampache" ampache_config_dir: "{{ ampache_base_dir }}/config" ampache_logs_dir: "{{ ampache_base_dir }}/logs" ampache_mysql_dir: "{{ ampache_base_dir }}/mysql" ampache_port: "45134"
Flibusta
flibusta_base_dir: "/mnt/service/flibusta" flibusta_source_archives_dir: "/mnt/books/flibusta" flibusta_web_port: "45137" flibusta_db_port: "45138" flibusta_db_user: "flibusta" flibusta_db_password: "{{ vault_flibusta_db_password }}" flibusta_db_name: "flibusta"
=============================================================================
СЕРВИСЫ: PHOTO (192.168.1.204)
=============================================================================
immich_base_dir: "/mnt/immich" immich_port: "45131" immich_db_username: "postgres" immich_db_password: "{{ vault_immich_db_password }}" immich_db_name: "immich" immich_version: "release"
=============================================================================
СЕРВИСЫ: TALK (192.168.1.206)
=============================================================================
Mumble
mumble_base_dir: "/mnt/mumble" mumble_data_dir: "{{ mumble_base_dir }}/data" mumble_port: "45131" mumble_ice_port: "6502" mumble_max_users: "100" mumble_server_password: "{{ vault_mumble_server_password }}" mumble_superuser_password: "{{ vault_mumble_superuser_password }}"
Matrix (Synapse)
matrix_base_dir: "/mnt/matrix" matrix_data_dir: "{{ matrix_base_dir }}/data" matrix_config_dir: "{{ matrix_base_dir }}/config" matrix_media_dir: "{{ matrix_base_dir }}/media" matrix_postgres_dir: "{{ matrix_base_dir }}/postgres" matrix_port: "45132" matrix_domain: "matrix.zailon.ru" matrix_server_name: "{{ matrix_domain }}" matrix_registration_enabled: false matrix_report_stats: "no" 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_data_dir: "{{ snikket_base_dir }}/snikket_data" snikket_nginx_custom_dir: "{{ snikket_base_dir }}/nginx-custom" snikket_backup_dir: "/backup/snikket" snikket_domain: "chat.zailon.ru" snikket_admin_email: "zailon@bk.ru" snikket_external_ip: "188.73.191.202" snikket_http_port: 8080 snikket_https_port: 8443 snikket_xmpp_port: 5222 snikket_component_port: 5349 snikket_turn_port: 3478 snikket_turn_tls_port: 5349 snikket_rtp_min_port: 50000 snikket_rtp_max_port: 50100 snikket_enable_acme: false snikket_disable_tls: true snikket_trusted_proxy: "*" snikket_max_file_size: "500M" snikket_image_tag: "dev" snikket_create_initial_invite: false snikket_backup_enabled: true snikket_backup_retention_days: 30 snikket_admin_password: "{{ vault_snikket_admin_password }}" snikket_invite_token: "{{ vault_snikket_invite_token }}"
TeamSpeak
teamspeak_base_dir: "/mnt/teamspeak" teamspeak_data_dir: "{{ teamspeak_base_dir }}/data" teamspeak_logs_dir: "{{ teamspeak_base_dir }}/logs" teamspeak_query_port: "10011" teamspeak_voice_port: "9987" teamspeak_file_port: "30033"
=============================================================================
СЕРВИСЫ: GAMES (192.168.1.207)
=============================================================================
minecraft_base_dir: "/mnt/minecraft" minecraft_data_dir: "{{ minecraft_base_dir }}/data" minecraft_port: "25565" minecraft_memory: "4G" minecraft_version: "1.21.1" minecraft_neoforge_version: "21.1.0" minecraft_type: "NEOFORGE" minecraft_eula: "true" minecraft_motd: "Minecraft @ zailon.ru" minecraft_online_mode: "true" minecraft_mods:
=============================================================================
СЕРВИСЫ: MANAGE (192.168.1.208)
=============================================================================
meshcentral_base_dir: "/opt/meshcentral" meshcentral_data_dir: "/mnt/mesh/meshcentral-data" meshcentral_files_dir: "/mnt/mesh/meshcentral-files" meshcentral_backup_dir: "/mnt/mesh/meshcentral-backup" meshcentral_port: "45131"
Grafana
grafana_base_dir: /mnt/grafana grafana_data_dir: "{{ grafana_base_dir }}/data" grafana_config_dir: "{{ grafana_base_dir }}/config" grafana_vm_data_dir: "{{ grafana_base_dir }}/victoriametrics" grafana_vmagent_tmp_dir: "{{ grafana_base_dir }}/vmagent/tmp" grafana_vmagent_config: "{{ grafana_base_dir }}/vmagent/vmagent.yaml" grafana_port: 45132
Loki
loki_base_dir: "/mnt/loki" loki_config_dir: "{{ loki_base_dir }}/config" loki_data_dir: "{{ loki_base_dir }}/data" loki_server_host: "{{ server_ips.manage }}" loki_server_port: "{{ monitoring_ports.loki }}"
Promtail
promtail_config_dir: "/etc/promtail" promtail_data_dir: "/var/lib/promtail"
=============================================================================
СЕРВИСЫ: GIT (192.168.1.209)
=============================================================================
gitlab_base_dir: "/mnt/git" gitlab_config_dir: "{{ gitlab_base_dir }}/config" gitlab_logs_dir: "{{ gitlab_base_dir }}/logs" gitlab_data_dir: "{{ gitlab_base_dir }}/data" gitlab_backup_dir: "{{ gitlab_base_dir }}/backup" gitlab_http_port: "45130" gitlab_ssh_port: "2222" gitlab_version: "17.5.5-ce.0" gitlab_hostname: "git.zailon.ru" gitlab_external_url: "https://git.zailon.ru" gitlab_root_password: "{{ vault_gitlab_root_password }}"
=============================================================================
СЕРВИСЫ: TORRENT (192.168.1.211)
=============================================================================
qbittorrent_base_dir: "/mnt/service/qbittorrent" qbittorrent_config_dir: "{{ qbittorrent_base_dir }}/appdata" qbittorrent_downloads_dir: "{{ qbittorrent_base_dir }}/downloads" qbittorrent_puid: 1000 qbittorrent_pgid: 1003 qbittorrent_port_webui: 8080 qbittorrent_port_torrent: 6881 qbittorrent_smb_credentials_dir: "/etc/smb-creds"
Учётные данные для SMB-шар
qbittorrent_smb_creds: olimp: username: "Olimp" password: "{{ vault_smb_olimp_password }}" file: "olimp" qb: username: "qb" password: "{{ vault_samba_password_qb }}" file: "qb"
Маунты SMB-шар
qbittorrent_shares:
-
name: downloads src: "//192.168.1.101/Downloads" dest: "/mnt/downloads" credential: "olimp" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.olimp.file }}"
-
name: abook src: "//192.168.1.203/Abook" dest: "/mnt/abook" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
-
name: music src: "//192.168.1.203/Music" dest: "/mnt/audio" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
-
name: books src: "//192.168.1.203/Books" dest: "/mnt/books" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
-
name: films src: "//192.168.1.203/Films" dest: "/mnt/video/films" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
-
name: mult src: "//192.168.1.203/Mult" dest: "/mnt/video/mult" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
-
name: anime src: "//192.168.1.203/Anime" dest: "/mnt/video/anime" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
-
name: serial src: "//192.168.1.203/Serial" dest: "/mnt/video/serial" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
-
name: mserials src: "//192.168.1.203/Mserials" dest: "/mnt/video/mserials" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
-
name: doc src: "//192.168.1.203/Doc" dest: "/mnt/video/doc" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
-
name: ztube src: "//192.168.1.203/Ztube" dest: "/mnt/video/ztube" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
-
name: show src: "//192.168.1.203/Show" dest: "/mnt/video/show" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
-
name: games src: "//192.168.1.207/Games" dest: "/mnt/games" opts: "rw,uid={{ qbittorrent_puid }},gid={{ qbittorrent_pgid }},file_mode=0644,dir_mode=0755,vers=3.0,credentials=/etc/smb-creds/{{ qbittorrent_smb_creds.qb.file }}"
torrserver_base_dir: "/mnt/service/torrserver" torrserver_config_dir: "{{ torrserver_base_dir }}/config" torrserver_torrents_dir: "{{ torrserver_base_dir }}/torrents" torrserver_port: "45132" ... ```