Перейти к содержанию

Обзор развертывания Webmin на сервере

Предварительные требования

Для успешного развертывания приложения необходимо соблюдение следующих условий:

  • Операционная система: Debian, Ubuntu, CentOS, Rocky Linux или AlmaLinux.

  • Права доступа: Пользователь с правами root.

  • Порты:

  • 10000/tcp — внутренний порт Webmin (необходим для работы прокси).

  • 443/tcp — внешний порт для HTTPS доступа.

FQDN итоговой панели на домене hostkey.in

Для обеспечения доступа к интерфейсу управления через защищенное соединение используется следующий шаблон домена:

Параметр Значение
Префикс webmin
Домен hostkey.in
Полный шаблон webmin{Server_ID_from_Invapi}.hostkey.in

Структура файлов и каталогов

В процессе развертывания создаются и используются следующие директории:

  • /etc/webmin/ — конфигурационные файлы самого приложения Webmin.

  • /root/nginx/ — рабочая директория для контейнера Nginx (содержит compose.yml).

  • /data/nginx/user_conf.d/ — директория с конфигурационными файлами виртуальных хостов Nginx.

  • /data/nginx/nginx-certbot.env — файл переменных окружения для Docker-контейнера.

Процесс установки приложения

Метод установки зависит от используемой операционной системы:

Для систем на базе Debian и Ubuntu:

  1. Удаляются конфликтующие старые источники и ключи Docker (если они присутствуют).

  2. Устанавливаются необходимые пакеты: gnupg2, curl, wget.

  3. Добавляется официальный репозиторий Webmin с использованием GPG-ключа разработчика.

  4. Выполняется обновление кэша пакетов и установка пакета webmin.

Для систем на базе RHEL (CentOS, Rocky Linux, AlmaLinux):

  1. Загружается установочный скрипт репозитория из официального источника Webmin.

  2. Скрипт запускается для автоматической настройки репозиториев в системе.

  3. Устанавливается пакет webmin через менеджер пакетов yum.

После установки основного приложения выполняется настройка конфигурации: встроенный SSL-сервер Webmin отключается (ssl=0), а в качестве имени хоста устанавливается публичный FQDN для корректной работы обратного прокси.

Права доступа и безопасность

Для защиты сервера выполняются следующие действия:

  • Настраивается брандмауэр (FirewallD или UFW в зависимости от ОС).

  • Открывается доступ к порту 10000/tcp.

  • Конфигурация Nginx настроена на проксирование запросов с корректной передачей заголовков Host и X-Forwarded-Proto, что предотвращает ошибки безопасности при работе через HTTPS.

Базы данных

В данной конфигурации база данных не используется, так как Webmin является панелью управления системой.

Контейнеры Docker и их запуск

Для обеспечения работы веб-сервера и автоматического получения SSL-сертификатов используется контейнер:

Параметр Значение
Имя образа jonasal/nginx-certbot:latest
Порты network_mode: host (использует сетевой стек хоста)
Тома (volumes) nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d
Переменные окружения CERTBOT_EMAIL=hkadm@hostkey.com
Политика перезапуска unless-stopped

Кастомные скрипты и дополнительные настройки

В процессе развертывания выполняются следующие действия:

  • Настройка репозиториев: Использование внешнего скрипта setup-repos.sh для автоматизации добавления официальных источников Webmin в RHEL-системах.

  • Модификация конфигурации Webmin: Скрипт изменяет файл /etc/webmin/miniserv.conf, отключая встроенный SSL и устанавливая правильный параметр host.

  • Настройка Nginx: Автоматическое создание файла compose.yml в директории /root/nginx/ и применение настроек проксирования (proxy_pass) к локальному порту 10000.

Инструкция по обновлению приложения

Для обновления Webmin необходимо выполнить обновление пакетов через системный менеджер:

Для Debian/Ubuntu:

apt-get update && apt-get install --only-upgrade webmin

Для RHEL/CentOS/Rocky:

yum update webmin

Расположение конфигурационных файлов и данных

  • Конфигурация Webmin: /etc/webmin/

  • Конфигурация прокси-сервера (Nginx): /data/nginx/user_conf.d/

  • Данные SSL-сертификатов: том nginx_secrets (внутри контейнера в /etc/letsencrypt)

Доступные порты для подключения

  • 443 — HTTPS доступ к панели управления через доменное имя.

  • 10000 — Внутренний порт сервиса Webmin.

Запуск, остановка приложения

Управление основным сервисом осуществляется стандартными командами системы:

  • Запуск: systemctl start webmin (или через сервис управления пакетом).

  • Остановка: systemctl stop webmin.

  • Перезагрузка конфигурации Nginx:

    docker compose exec -T nginx nginx -s reload
    

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×