Docs/docs/09-ansible-variables.md
2026-03-23 22:54:28 +05:00

67 KiB
Raw Blame History

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_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 ```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"


Плейбуки и запуск*