Update 5 files
- /roles/gateway/handlers/main.yml - /roles/gateway/tasks/main.yml - /group_vars/gateway_servers.yml - /group_vars/gateway_servers.bkp - /README.md
This commit is contained in:
parent
54728922f5
commit
765dfc1d88
419
README.md
419
README.md
@ -1,93 +1,354 @@
|
|||||||
# Деплой инфраструктуры Olimp
|
# Ansible Playbook для развертывания инфраструктуры Olimp
|
||||||
|
|
||||||
## Структура проекта
|
Данный проект содержит Ansible playbook для автоматизированного развертывания и настройки серверной инфраструктуры, включая базовую настройку контейнеров, установку Docker и развертывание различных сервисов.
|
||||||
Infra/
|
|
||||||
├── inventories/ # Конфигурация хостов
|
|
||||||
├── group_vars/ # Переменные по группам
|
|
||||||
├── roles/ # Ansible роли
|
|
||||||
├── olimp-deploy.yml # Основной плейбук
|
|
||||||
├── vault.yml # Секреты (зашифровано)
|
|
||||||
└── README.md # Документация
|
|
||||||
|
|
||||||
Infra/
|
## 🏗️ Структура проекта
|
||||||
|
/opt/servers/Olimp/
|
||||||
|
├── olimp-deploy.yml # Основной плейбук
|
||||||
├── inventories/
|
├── inventories/
|
||||||
│ └── hosts.yml
|
│ └── hosts # Файл инвентаризации
|
||||||
├── group_vars/
|
├── group_vars/
|
||||||
│ ├── all.yml
|
│ └── all.yml # Общие переменные для всех хостов
|
||||||
│ └── gateway.yml
|
|
||||||
├── roles/
|
├── roles/
|
||||||
│ ├── proxmox_lxc/
|
│ ├── base_setup/ # Базовая настройка хостов
|
||||||
│ │ └── tasks/
|
│ ├── docker/ # Установка Docker и Docker Compose
|
||||||
│ │ └── main.yml
|
│ ├── npm/ # Nginx Proxy Manager
|
||||||
│ ├── base_setup/
|
│ ├── heimdall/ # Heimdall - дашборд приложений
|
||||||
│ │ ├── tasks/
|
│ ├── mealie/ # Mealie - менеджер рецептов
|
||||||
│ │ │ ├── main.yml
|
│ └── bookstack/ # Bookstack - система документации
|
||||||
│ │ │ └── ssh.yml
|
|
||||||
│ │ └── handlers/
|
|
||||||
│ │ └── main.yml
|
|
||||||
│ ├── docker/
|
|
||||||
│ │ └── tasks/
|
|
||||||
│ │ └── main.yml
|
|
||||||
│ ├── heimdall/
|
|
||||||
│ │ └── tasks/
|
|
||||||
│ │ └── main.yml
|
|
||||||
│ └── npm/
|
|
||||||
│ └── tasks/
|
|
||||||
│ └── main.yml
|
|
||||||
├── olimp-deploy.yml
|
|
||||||
├── vault.yml
|
|
||||||
└── README.md
|
└── README.md
|
||||||
|
|
||||||
## Использование
|
|
||||||
|
|
||||||
### Запуск полного деплоя:
|
|
||||||
```bash
|
|
||||||
ansible-playbook -i inventories/hosts.yml olimp-deploy.yml --ask-vault-pass
|
|
||||||
|
|
||||||
Запуск отдельных компонентов:
|
|
||||||
bash
|
|
||||||
# Только создание контейнера
|
|
||||||
ansible-playbook -i inventories/hosts.yml olimp-deploy.yml --tags create_lxc --ask-vault-pass
|
|
||||||
# Только базовая настройка
|
|
||||||
ansible-playbook -i inventories/hosts.yml olimp-deploy.yml --tags base_setup
|
|
||||||
# Только установка Docker
|
|
||||||
ansible-playbook -i inventories/hosts.yml olimp-deploy.yml --tags docker
|
|
||||||
# Только Heimdall
|
|
||||||
ansible-playbook -i inventories/hosts.yml olimp-deploy.yml --tags heimdall
|
|
||||||
|
|
||||||
Роли
|
|
||||||
|
|
||||||
proxmox_lxc - Создание LXC контейнеров в Proxmox
|
|
||||||
|
|
||||||
base_setup - Базовая настройка ОС
|
|
||||||
|
|
||||||
docker - Установка Docker
|
|
||||||
|
|
||||||
heimdall - Развертывание Heimdall
|
|
||||||
|
|
||||||
Порядок развертывания
|
|
||||||
Создание LXC контейнеров
|
|
||||||
|
|
||||||
Базовая настройка ОС
|
|
||||||
|
|
||||||
Установка Docker
|
|
||||||
|
|
||||||
Развертывание сервисов
|
|
||||||
|
|
||||||
text
|
text
|
||||||
|
|
||||||
## 🚀 КАК ЗАПУСТИТЬ:
|
## 🎯 Инвентаризация
|
||||||
|
|
||||||
1. **Создайте структуру каталогов** в GitLab репозитории
|
Файл `inventories/hosts`:
|
||||||
2. **Добавьте все файлы** в соответствующие каталоги
|
```ini
|
||||||
3. **Зашифруйте vault.yml:**
|
[infra]
|
||||||
```bash
|
gateway ansible_host=192.168.1.221 int_ip=192.168.1.221
|
||||||
ansible-vault encrypt vault.yml
|
data ansible_host=192.168.1.222 int_ip=192.168.1.222
|
||||||
Запустите тестовый прогон:
|
📋 Предварительные требования
|
||||||
|
Целевые хосты должны быть доступны по SSH
|
||||||
|
|
||||||
|
Ansible установлен на управляющей машине
|
||||||
|
|
||||||
|
Python установлен на целевых хостах
|
||||||
|
|
||||||
|
Права sudo для пользователя, выполняющего развертывание
|
||||||
|
|
||||||
|
📦 Установка зависимостей
|
||||||
|
bash
|
||||||
|
# Установка необходимых коллекций Ansible
|
||||||
|
ansible-galaxy collection install community.docker
|
||||||
|
🚀 Основной плейбук: olimp-deploy.yml
|
||||||
|
yaml
|
||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- { role: base_setup, tags: deploy_base }
|
||||||
|
|
||||||
|
- hosts: gateway
|
||||||
|
roles:
|
||||||
|
- { role: docker, tags: deploy_docker }
|
||||||
|
- { role: npm, tags: deploy_npm }
|
||||||
|
- { role: heimdall, tags: deploy_heimdall }
|
||||||
|
|
||||||
|
- hosts: data
|
||||||
|
roles:
|
||||||
|
- { role: docker, tags: deploy_docker }
|
||||||
|
- { role: mealie, tags: deploy_mealie }
|
||||||
|
- { role: bookstack, tags: deploy_bookstack }
|
||||||
|
🎮 Запуск плейбука
|
||||||
|
Полное развертывание
|
||||||
|
bash
|
||||||
|
ansible-playbook -i inventories/hosts olimp-deploy.yml
|
||||||
|
Выборочное развертывание по тегам
|
||||||
|
bash
|
||||||
|
# Базовая настройка всех хостов
|
||||||
|
ansible-playbook -i inventories/hosts olimp-deploy.yml --tags deploy_base
|
||||||
|
|
||||||
|
# Установка Docker на конкретный хост
|
||||||
|
ansible-playbook -i inventories/hosts olimp-deploy.yml --tags deploy_docker --limit data
|
||||||
|
|
||||||
|
# Установка конкретного сервиса
|
||||||
|
ansible-playbook -i inventories/hosts olimp-deploy.yml --tags deploy_mealie --limit data
|
||||||
|
ansible-playbook -i inventories/hosts olimp-deploy.yml --tags deploy_bookstack --limit data
|
||||||
|
ansible-playbook -i inventories/hosts olimp-deploy.yml --tags deploy_npm --limit gateway
|
||||||
|
ansible-playbook -i inventories/hosts olimp-deploy.yml --tags deploy_heimdall --limit gateway
|
||||||
|
🔧 Детальное описание ролей
|
||||||
|
Роль: base_setup
|
||||||
|
Тег: deploy_base
|
||||||
|
|
||||||
|
Назначение: Базовая настройка всех хостов инфраструктуры.
|
||||||
|
|
||||||
|
Задачи:
|
||||||
|
|
||||||
|
Update and upgrade apt packages - обновление пакетов и кэша apt
|
||||||
|
|
||||||
|
Install base packages - установка базовых пакетов из переменной base_packages
|
||||||
|
|
||||||
|
Configure timezone - настройка часового пояса из переменной timezone
|
||||||
|
|
||||||
|
Configure locale - настройка локали из переменной system_locale
|
||||||
|
|
||||||
|
Set default locale - установка системной локали
|
||||||
|
|
||||||
|
Install Python requests library - установка библиотеки Python3 requests для работы модулей Ansible
|
||||||
|
|
||||||
|
Источник переменных: group_vars/all.yml
|
||||||
|
|
||||||
|
Роль: docker
|
||||||
|
Тег: deploy_docker
|
||||||
|
|
||||||
|
Назначение: Установка Docker и Docker Compose на целевые хосты.
|
||||||
|
|
||||||
|
Задачи:
|
||||||
|
|
||||||
|
Install Docker dependencies - установка зависимостей Docker
|
||||||
|
|
||||||
|
Add Docker GPG key - добавление GPG ключа Docker
|
||||||
|
|
||||||
|
Add Docker repository - добавление официального репозитория Docker
|
||||||
|
|
||||||
|
Install Docker - установка Docker CE и компонентов
|
||||||
|
|
||||||
|
Install Docker Compose - установка Docker Compose Plugin
|
||||||
|
|
||||||
|
Start and enable Docker service - запуск и включение службы Docker
|
||||||
|
|
||||||
|
Verify Docker installation - проверка установки Docker и Docker Compose
|
||||||
|
|
||||||
|
Особенности: Использует официальные репозитории Docker для установки последних версий.
|
||||||
|
|
||||||
|
Роль: npm (Nginx Proxy Manager)
|
||||||
|
Тег: deploy_npm
|
||||||
|
|
||||||
|
Назначение: Установка Nginx Proxy Manager на хост gateway.
|
||||||
|
|
||||||
|
Задачи:
|
||||||
|
|
||||||
|
Create directories for NPM - создание директорий для данных NPM
|
||||||
|
|
||||||
|
Deploy NPM docker-compose.yml - развертывание docker-compose файла из шаблона
|
||||||
|
|
||||||
|
Start NPM container - запуск контейнера NPM
|
||||||
|
|
||||||
|
Check NPM container status - проверка статуса контейнера
|
||||||
|
|
||||||
|
Порты: 80, 443, 81
|
||||||
|
Web-интерфейс: http://gateway_ip:81
|
||||||
|
|
||||||
|
Источник переменных: group_vars/all.yml - npm_base_dir, npm_data_dir, npm_letsencrypt_dir
|
||||||
|
|
||||||
|
Роль: heimdall
|
||||||
|
Тег: deploy_heimdall
|
||||||
|
|
||||||
|
Назначение: Установка Heimdall - дашборда для быстрого доступа к приложениям.
|
||||||
|
|
||||||
|
Задачи:
|
||||||
|
|
||||||
|
Create directories for Heimdall - создание директорий для данных Heimdall
|
||||||
|
|
||||||
|
Deploy Heimdall docker-compose.yml - развертывание docker-compose файла
|
||||||
|
|
||||||
|
Start Heimdall container - запуск контейнера Heimdall
|
||||||
|
|
||||||
|
Check Heimdall container status - проверка статуса контейнера
|
||||||
|
|
||||||
|
Порт: 45131
|
||||||
|
Web-интерфейс: http://gateway_ip:45131
|
||||||
|
|
||||||
|
Источник переменных: group_vars/all.yml - heimdall_base_dir, heimdall_config_dir, heimdall_port
|
||||||
|
|
||||||
|
Роль: mealie
|
||||||
|
Тег: deploy_mealie
|
||||||
|
|
||||||
|
Назначение: Установка Mealie - менеджера рецептов на хост data.
|
||||||
|
|
||||||
|
Задачи:
|
||||||
|
|
||||||
|
Create Mealie directory structure - создание директорий в /mnt/mealie
|
||||||
|
|
||||||
|
Set proper ownership for Mealie data directory - установка прав владельца для директории данных
|
||||||
|
|
||||||
|
Deploy Mealie docker-compose.yml - развертывание docker-compose файла
|
||||||
|
|
||||||
|
Pull Mealie Docker image - загрузка образа Mealie
|
||||||
|
|
||||||
|
Start Mealie container - запуск контейнера Mealie
|
||||||
|
|
||||||
|
Check Mealie container status - проверка статуса контейнера
|
||||||
|
|
||||||
|
Порт: 45132
|
||||||
|
Web-интерфейс: http://data_ip:45132
|
||||||
|
Использует: SQLite базу данных по умолчанию
|
||||||
|
|
||||||
|
Источник переменных: group_vars/all.yml - mealie_base_dir, mealie_data_dir, mealie_port
|
||||||
|
|
||||||
|
Роль: bookstack
|
||||||
|
Тег: deploy_bookstack
|
||||||
|
|
||||||
|
Назначение: Установка Bookstack - системы для ведения документации на хост data.
|
||||||
|
|
||||||
|
Задачи:
|
||||||
|
|
||||||
|
Create Bookstack directory structure - создание директорий в /mnt/bookstack
|
||||||
|
|
||||||
|
Deploy Bookstack docker-compose.yml - развертывание docker-compose файла
|
||||||
|
|
||||||
|
Start Bookstack services - запуск контейнеров Bookstack и MariaDB
|
||||||
|
|
||||||
|
Check Bookstack container status - проверка статуса контейнеров
|
||||||
|
|
||||||
|
Порт: 45131
|
||||||
|
Web-интерфейс: http://data_ip:45131
|
||||||
|
Использует: MariaDB базу данных
|
||||||
|
|
||||||
|
Особенности: Сохраняет существующие данные из /mnt/bookstack
|
||||||
|
|
||||||
|
Источник переменных: group_vars/all.yml - bookstack_base_dir, bookstack_config_dir, bookstack_uploads_dir, bookstack_db_dir, bookstack_port
|
||||||
|
|
||||||
|
⚙️ Переменные конфигурации
|
||||||
|
Файл group_vars/all.yml содержит все общие переменные:
|
||||||
|
|
||||||
|
yaml
|
||||||
|
# Общие настройки для всех хостов
|
||||||
|
timezone: Asia/Yekaterinburg
|
||||||
|
system_locale: ru_RU.UTF-8
|
||||||
|
|
||||||
|
# Базовые пакеты для установки на всех хостах
|
||||||
|
base_packages:
|
||||||
|
- curl
|
||||||
|
- wget
|
||||||
|
- gnupg
|
||||||
|
- ca-certificates
|
||||||
|
- software-properties-common
|
||||||
|
- tree
|
||||||
|
- htop
|
||||||
|
- nano
|
||||||
|
- git
|
||||||
|
- apt-transport-https
|
||||||
|
- net-tools
|
||||||
|
- dnsutils
|
||||||
|
- iputils-ping
|
||||||
|
- traceroute
|
||||||
|
|
||||||
|
# Настройки Docker сервисов
|
||||||
|
|
||||||
|
# NPM (Nginx Proxy Manager)
|
||||||
|
npm_base_dir: "/opt/npm"
|
||||||
|
npm_data_dir: "/opt/npm/data"
|
||||||
|
npm_letsencrypt_dir: "/opt/npm/letsencrypt"
|
||||||
|
|
||||||
|
# Heimdall
|
||||||
|
heimdall_base_dir: "/opt/heimdall"
|
||||||
|
heimdall_config_dir: "/opt/heimdall/config"
|
||||||
|
heimdall_port: "45131"
|
||||||
|
|
||||||
|
# Mealie
|
||||||
|
mealie_base_dir: "/mnt/mealie"
|
||||||
|
mealie_data_dir: "/mnt/mealie/data"
|
||||||
|
mealie_port: "45132"
|
||||||
|
|
||||||
|
# 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: "45131"
|
||||||
|
bookstack_db_password: "secure_password_123"
|
||||||
|
bookstack_db_root_password: "secure_root_password_123"
|
||||||
|
🏛️ Архитектура решения
|
||||||
|
Хост Gateway (192.168.1.221)
|
||||||
|
Nginx Proxy Manager - порты 80, 443, 81
|
||||||
|
|
||||||
|
Обратный прокси для управления доменами и SSL
|
||||||
|
|
||||||
|
Heimdall - порт 45131
|
||||||
|
|
||||||
|
Дашборд для быстрого доступа ко всем сервисам
|
||||||
|
|
||||||
|
Хост Data (192.168.1.222)
|
||||||
|
Mealie - порт 45132
|
||||||
|
|
||||||
|
Менеджер рецептов с возможностью импорта и организации
|
||||||
|
|
||||||
|
Bookstack - порт 45131
|
||||||
|
|
||||||
|
Система документации с поддержкой книг, глав и страниц
|
||||||
|
|
||||||
|
📊 Мониторинг и логи
|
||||||
|
Проверка статуса сервисов
|
||||||
|
bash
|
||||||
|
# На хосте gateway
|
||||||
|
docker ps --filter name=npm --filter name=heimdall
|
||||||
|
|
||||||
|
# На хосте data
|
||||||
|
docker ps --filter name=mealie --filter name=bookstack
|
||||||
|
Просмотр логов
|
||||||
|
bash
|
||||||
|
# Просмотр логов конкретного сервиса
|
||||||
|
docker logs mealie -f --tail 50
|
||||||
|
docker logs bookstack-mnemo -f --tail 50
|
||||||
|
|
||||||
|
# Просмотр логов через docker compose
|
||||||
|
cd /mnt/mealie && docker compose logs
|
||||||
|
cd /mnt/bookstack && docker compose logs
|
||||||
|
💾 Резервное копирование
|
||||||
|
Данные всех сервисов сохраняются в смонтированных директориях:
|
||||||
|
|
||||||
|
Mealie: /mnt/mealie/data
|
||||||
|
|
||||||
|
Bookstack: /mnt/bookstack/config, /mnt/bookstack/uploads, /mnt/bookstack/db
|
||||||
|
|
||||||
|
Для резервного копирования достаточно архивировать эти директории.
|
||||||
|
|
||||||
bash
|
bash
|
||||||
ansible-playbook -i inventories/hosts.yml olimp-deploy.yml --ask-vault-pass --check
|
# Пример резервного копирования
|
||||||
Запустите деплой:
|
tar -czf mealie_backup_$(date +%Y%m%d).tar.gz /mnt/mealie/data
|
||||||
|
tar -czf bookstack_backup_$(date +%Y%m%d).tar.gz /mnt/bookstack
|
||||||
|
🔄 Обновление сервисов
|
||||||
|
bash
|
||||||
|
# Обновление всех сервисов на хосте
|
||||||
|
cd /path/to/service
|
||||||
|
docker compose pull
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
# Или через Ansible
|
||||||
|
ansible-playbook -i inventories/hosts olimp-deploy.yml --tags deploy_mealie,deploy_bookstack --limit data
|
||||||
|
🛠️ Устранение неисправностей
|
||||||
|
Проверка подключения
|
||||||
|
bash
|
||||||
|
ansible -i inventories/hosts all -m ping
|
||||||
|
Проверка синтаксиса плейбука
|
||||||
|
bash
|
||||||
|
ansible-playbook -i inventories/hosts olimp-deploy.yml --syntax-check
|
||||||
|
Запуск в режиме отладки
|
||||||
|
bash
|
||||||
|
ansible-playbook -i inventories/hosts olimp-deploy.yml --tags deploy_mealie -vvv
|
||||||
|
Проверка переменных
|
||||||
|
bash
|
||||||
|
ansible -i inventories/hosts all -m debug -a "var=hostvars[inventory_hostname]"
|
||||||
|
🔒 Безопасность
|
||||||
|
Все пароли и чувствительные данные должны храниться в зашифрованном виде с помощью Ansible Vault
|
||||||
|
|
||||||
|
Регулярно обновляйте образы контейнеров для получения исправлений безопасности
|
||||||
|
|
||||||
|
Настройте брандмауэр для ограничения доступа к портам
|
||||||
|
|
||||||
bash
|
bash
|
||||||
ansible-playbook -i inventories/hosts.yml olimp-deploy.yml --ask-vault-pass
|
# Использование Ansible Vault для шифрования секретов
|
||||||
|
ansible-vault encrypt group_vars/secrets.yml
|
||||||
|
🚀 Дополнительные возможности
|
||||||
|
Проект может быть расширен добавлением новых ролей для:
|
||||||
|
|
||||||
|
Мониторинга (Prometheus, Grafana)
|
||||||
|
|
||||||
|
Резервного копирования
|
||||||
|
|
||||||
|
Централизованного логирования
|
||||||
|
|
||||||
|
Автоматического обновления контейнеров
|
||||||
|
|
||||||
|
📝 Лицензия
|
||||||
|
[Указать лицензию проекта]
|
||||||
@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
- name: restart docker
|
|
||||||
systemd:
|
|
||||||
name: docker
|
|
||||||
state: restarted
|
|
||||||
@ -1,93 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Install system dependencies
|
|
||||||
apt:
|
|
||||||
pkg:
|
|
||||||
- aptitude
|
|
||||||
- apt-transport-https
|
|
||||||
- ca-certificates
|
|
||||||
- curl
|
|
||||||
- software-properties-common
|
|
||||||
- python3-pip
|
|
||||||
- virtualenv
|
|
||||||
- python3-setuptools
|
|
||||||
state: latest
|
|
||||||
update_cache: true
|
|
||||||
|
|
||||||
- name: Add Docker GPG apt Key
|
|
||||||
apt_key:
|
|
||||||
url: https://download.docker.com/linux/ubuntu/gpg
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: Add Docker Repository
|
|
||||||
apt_repository:
|
|
||||||
repo: deb https://download.docker.com/linux/ubuntu noble stable
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: Install Docker CE
|
|
||||||
apt:
|
|
||||||
name: docker-ce
|
|
||||||
state: latest
|
|
||||||
update_cache: true
|
|
||||||
|
|
||||||
- name: Install Docker Python module
|
|
||||||
pip:
|
|
||||||
name: docker
|
|
||||||
|
|
||||||
- name: Configure Docker for LXC compatibility
|
|
||||||
copy:
|
|
||||||
content: |
|
|
||||||
{
|
|
||||||
"storage-driver": "vfs"
|
|
||||||
}
|
|
||||||
dest: /etc/docker/daemon.json
|
|
||||||
notify: restart docker
|
|
||||||
|
|
||||||
- name: Ensure Docker daemon is running
|
|
||||||
systemd:
|
|
||||||
name: docker
|
|
||||||
state: started
|
|
||||||
enabled: yes
|
|
||||||
|
|
||||||
- name: Create directories for services
|
|
||||||
file:
|
|
||||||
path: "{{ item.path }}"
|
|
||||||
state: directory
|
|
||||||
mode: '0755'
|
|
||||||
loop:
|
|
||||||
- { path: "{{ heimdall.config_dir }}" }
|
|
||||||
- { path: "{{ npm.data_dir }}" }
|
|
||||||
- { path: "{{ npm.letsencrypt_dir }}" }
|
|
||||||
|
|
||||||
- name: Pull Docker images
|
|
||||||
community.docker.docker_image:
|
|
||||||
name: "{{ item.image }}"
|
|
||||||
source: pull
|
|
||||||
loop:
|
|
||||||
- { image: "{{ heimdall.image }}" }
|
|
||||||
- { image: "{{ npm.image }}" }
|
|
||||||
|
|
||||||
- name: Deploy Heimdall container
|
|
||||||
community.docker.docker_container:
|
|
||||||
name: heimdall
|
|
||||||
image: "{{ heimdall.image }}"
|
|
||||||
state: started
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
ports:
|
|
||||||
- "{{ heimdall.port }}"
|
|
||||||
volumes:
|
|
||||||
- "{{ heimdall.config_dir }}:/config"
|
|
||||||
env:
|
|
||||||
PUID: "{{ heimdall.user_id }}"
|
|
||||||
PGID: "{{ heimdall.group_id }}"
|
|
||||||
TZ: "{{ heimdall.timezone }}"
|
|
||||||
|
|
||||||
- name: Deploy NPM container
|
|
||||||
community.docker.docker_container:
|
|
||||||
name: npm
|
|
||||||
image: "{{ npm.image }}"
|
|
||||||
state: started
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
ports: "{{ npm.ports }}"
|
|
||||||
volumes:
|
|
||||||
- "{{ npm.data_dir }}:/data"
|
|
||||||
- "{{ npm.letsencrypt_dir }}:/etc/letsencrypt"
|
|
||||||
Loading…
Reference in New Issue
Block a user