7.4 KiB
7.4 KiB
09. Ansible — плейбуки и запуск
🎯 Основной плейбук: olimp-deploy.yml
Это главный плейбук, который управляет развёртыванием всех сервисов. Он разбит на секции по группам хостов (определены в inventories/hosts). Каждая секция включает:
- Загрузку секретов из
vault.yml. - Применение ролей, специфичных для данной группы.
- Использование тегов для гибкого запуска отдельных частей.
🧩 Структура плейбука
Плейбук последовательно обрабатывает группы хостов в следующем порядке:
-
Все хосты, кроме Proxmox (
all:!pve-server)- Роль
base_setup— базовая настройка (пакеты, время, SSH-ключи). - Роль
system_cleanup— удаление ненужных пакетов. - Роль
promtail— агент сбора логов.
- Роль
-
Proxmox (
pve-server)- Роль
proxmox_base_setup— настройка Proxmox (репозитории, обновления). - Роль
proxmox_monitoring— установка pve_exporter, node_exporter.
- Роль
-
Gateway (
gateway-server)- Роль
docker— установка Docker и Docker Compose. - Роль
npm— Nginx Proxy Manager. - Роль
heimdall— дашборд Heimdall. - (Роль
dashyзакомментирована, не используется.)
- Роль
-
Data (
data-server)- Роль
docker - Роль
mealie— менеджер рецептов. - Роль
bookstack— вики. - Роль
bitwarden— менеджер паролей (Vaultwarden).
- Роль
-
Media (
media-server)- Роль
docker - Роль
ampache— музыкальный стриминг. - Роль
audiobookshelf— аудиокниги. - Роль
calibre-web— веб-интерфейс для библиотеки Calibre. - Роль
jellyfin— медиасервер. - Роль
flibusta— зеркало библиотеки Флибуста.
- Роль
-
Photo (
photo-server)- Роль
docker - Роль
immich— фотогалерея.
- Роль
-
Talk (
talk-server)- Роль
docker - Роль
mumble— голосовой чат. - Роль
snikket— XMPP-сервер. - (Роль
teamspeakзакомментирована.)
- Роль
-
Games (
games-server)- Роль
docker - (Роль
minecraftзакомментирована)
- Роль
-
Manage (
manage-server)- Роль
docker - Роль
meshcentral— удалённое управление. - Роль
grafana— визуализация метрик. - Роль
loki— сбор и хранение логов.
- Роль
-
Git (
git-server)- Роль
docker - Роль
gitlab— GitLab CE.
- Роль
-
Torrent (
torrent-server)- Роль
docker - Роль
torrserver— стриминг торрентов. - Роль
qbittorrent— торрент-клиент.
- Роль
-
Тестовый хост (
testtalk-server)- Роль
docker - Роль
snikket(используется для тестирования).
- Роль
🏷️ Теги
Каждая роль имеет тег, что позволяет запускать только её:
| Тег | Роль | Назначение |
|---|---|---|
deploy_base |
base_setup | Базовая настройка |
deploy_cleanup |
system_cleanup | Очистка системы |
deploy_promtail |
promtail | Агент логов |
deploy_proxmox_base |
proxmox_base_setup | Настройка Proxmox |
deploy_proxmox_monitoring |
proxmox_monitoring | Мониторинг Proxmox |
deploy_docker |
docker | Установка Docker |
deploy_npm |
npm | Nginx Proxy Manager |
deploy_heimdall |
heimdall | Heimdall |
deploy_mealie |
mealie | Mealie |
deploy_bookstack |
bookstack | Bookstack |
deploy_bitwarden |
bitwarden | Bitwarden/Vaultwarden |
deploy_ampache |
ampache | Ampache |
deploy_audiobookshelf |
audiobookshelf | Audiobookshelf |
deploy_calibre_web |
calibre-web | Calibre Web |
deploy_jellyfin |
jellyfin | Jellyfin |
deploy_flibusta |
flibusta | Flibusta |
deploy_immich |
immich | Immich |
deploy_mumble |
mumble | Mumble |
deploy_snikket |
snikket | Snikket (XMPP) |
deploy_meshcentral |
meshcentral | MeshCentral |
deploy_grafana |
grafana | Grafana + VictoriaMetrics |
deploy_loki |
loki | Loki |
deploy_gitlab |
gitlab | GitLab |
deploy_torrserver |
torrserver | TorrServer |
deploy_qbittorrent |
qbittorrent | qBittorrent |
🚀 Запуск плейбука
Полный запуск (все роли)
ansible-playbook olimp-deploy.yml --ask-vault-pass
Запуск только определённой роли (по тегу)
ansible-playbook olimp-deploy.yml --tags deploy_jellyfin --ask-vault-pass
Запуск на конкретном хосте
ansible-playbook olimp-deploy.yml --limit media-server --ask-vault-pass
Проверка синтаксиса
ansible-playbook olimp-deploy.yml --syntax-check
Сухой запуск (dry-run)
ansible-playbook olimp-deploy.yml --check --ask-vault-pass
📌 Примечания
- Некоторые роли закомментированы (
dashy,teamspeak,minecraft), так как они либо не используются, либо требуют дополнительной настройки. - Все роли, где есть секреты, используют
vault.yml, поэтому обязательно указывать--ask-vault-passили настроитьvault_password_file.
Далее: Роли (roles)