🚀 Установка Nginx Proxy Manager в Docker через Ansible

Этот проект содержит Ansible Playbook для автоматизированной настройки сервера, установки Docker и развертывания Nginx Proxy Manager (PM) в контейнере Docker. Также Playbook включает настройку брандмауэра UFW для безопасного доступа через веб-интерфейс и прокси-сервер Nginx.

🔗 Репозиторий: GitHub

📌 Обзор установки

Playbook выполняет следующие задачи:

1️⃣ Настройка сервера: Установка базовых параметров (часовой пояс, пакеты и т. д.).
2️⃣ Установка Docker: Установка Docker и Docker Compose.
3️⃣ Развертывание Nginx Proxy Manager: Установка и настройка Nginx PM в контейнере Docker, настройка базы данных и веб-доступа.


📂 Структура Playbook

  • playbooks/server-install.yml – Настройка базовой конфигурации сервера.
  • playbooks/docker-install.yml – Установка Docker и Docker Compose.
  • playbooks/nginx-pm-docker-install.yml – Развертывание Nginx Proxy Manager в контейнере Docker и настройка базы данных.

🛠 Требования

Перед запуском Playbook убедитесь, что:

✔️ Ansible 2.9+ установлен на управляющем узле.
✔️ SSH-доступ к целевому серверу.
✔️ Linux-сервер с доступом в интернет (Ubuntu, CentOS и др.).
✔️ Docker и Docker Compose будут установлены автоматически.


🔧 Переменные

Вы можете настроить Playbook, изменяя следующие переменные:

vars:
  email: '[email protected]'
  nginx_mysql_pass_web: 'changeme'
  nginx_pm_host_name: 'host_name'
  nginx_mysql_user: 'your_user_name'
  nginx_mysql_pass: 'complex_password'
  nginx_mysql_name: 'your_user_name'
  nginx_mysql_root_pass: 'complex_password'
  your_ip: '19.16.11.12'

📌 Что означают переменные?

  • email – Email для учетной записи администратора Nginx Proxy Manager.
  • nginx_mysql_pass_web – Пароль для доступа к MySQL через веб-интерфейс (по умолчанию: changeme).
  • nginx_pm_host_name – Доменное имя или хостнейм для Nginx Proxy Manager.
  • nginx_mysql_user – Имя пользователя MySQL для Nginx Proxy Manager.
  • nginx_mysql_pass – Пароль для базы данных MySQL.
  • nginx_mysql_name – Название базы данных MySQL.
  • nginx_mysql_root_pass – Root-пароль MySQL.
  • your_ip – IP-адрес, с которого будет разрешен доступ через UFW.

📦 Установка необходимых ролей Ansible Galaxy

Перед выполнением Playbook установите роли:

ansible-galaxy install -r roles/requirements.yml

Если роли уже установлены, можно выполнить обновление:

ansible-galaxy install -g -f -r roles/requirements.yml

🚀 Развертывание Nginx Proxy Manager в Docker через Ansible

🔹 1. Клонирование репозитория

git clone https://github.com/Shipssv83/Ansible-Nginx-Proxy-Manager-Docker-Install.git
cd Ansible-Nginx-Proxy-Manager-Docker-Install

🔹 2. Запуск установки сервера

ansible-playbook -i inventory --user root --extra-vars "host=host_name" playbooks/server-install.yml

📌 Что делает этот Playbook?
✅ Устанавливает базовые пакеты.
✅ Настраивает часовой пояс.


🔹 3. Установка Docker

ansible-playbook -i inventory --user root --extra-vars "host=host_name" playbooks/docker-install.yml

📌 Что делает этот Playbook?
✅ Устанавливает Docker и Docker Compose.
✅ Готовит систему для работы с контейнерами.


🔹 4. Развертывание Nginx Proxy Manager в Docker

ansible-playbook -i inventory --user root --extra-vars "host=host_name" playbooks/nginx-pm-docker-install.yml

📌 Что делает этот Playbook?
✅ Загружает Docker-образ Nginx Proxy Manager.
✅ Настраивает доступ к веб-интерфейсу и базе данных.
✅ Настраивает доступ через UFW.


🌐 Доступ к Nginx Proxy Manager

После завершения установки Nginx Proxy Manager будет доступен по адресу:

http://<your-server-ip>:81

Данные для входа:

📌 Важно! После первого входа необходимо сменить пароль администратора для безопасности системы.


🎯 Заключение

Теперь ваш сервер полностью настроен и готов к работе с Nginx Proxy Manager в Docker. Вы можете начать управлять прокси-хостами, настройками SSL и переадресацией трафика.