Обзор развертывания PMM на сервере¶
Предварительные требования¶
Для успешного развертывания приложения необходимо наличие сервера с операционной системой Ubuntu. Требуется наличие прав суперпользователя для выполнения команд установки и настройки.
Необходимо наличие зарегистрированного доменного имени в формате {{ prefix }}{{ server_id }}.{{ zone }} для получения SSL-сертификатов.
Процесс установки приложения¶
Установка приложения выполняется в следующей последовательности:
-
Обновление и upgrade пакетов системы через менеджер пакетов
apt. -
Установка программного обеспечения
nginxиpython3-pipчерезapt. -
Установка утилит
certbotиcertbot-nginxчерез менеджер пакетовpip. -
Установка платформы
Dockerс использованием ролиdocker-managed-install. -
Установка приложения PMM с помощью скрипта, загружаемого командой
curl -fsSL https://www.percona.com/get/pmm | /bin/bash.
Контейнеры Docker и их запуск¶
Приложение PMM развертывается в контейнере Docker с именем pmm-server.
Внутри контейнера используется система управления процессами supervisor для управления службами, включая веб-сервер nginx.
Прокси серверы¶
Веб-сервер nginx работает внутри контейнера pmm-server и выступает в роли прокси-сервера.
Для обеспечения безопасного соединения используется утилита certbot с плагином certbot-nginx. Сертификат выдается для домена, указанного в переменной {{ prefix }}{{ server_id }}.{{ zone }}.
После получения сертификаты копируются из хост-системы в контейнер по следующим путям:
-
Сертификат:
/srv/nginx/certificate.crt -
Приватный ключ:
/srv/nginx/certificate.key -
Цепочка сертификатов:
/srv/nginx/ca-certs.pem -
Параметры DH:
/srv/nginx/dhparam.pem
Файл конфигурации сертификатов размещается по пути /srv/nginx/certificate.conf.
Настройки прав¶
После копирования файлов сертификатов в контейнер права на них изменяются. Владелец файлов устанавливается как пользователь pmm из группы pmm.
Команды для изменения прав выполняются внутри контейнера:
-
chown pmm.pmm /srv/nginx/certificate.crt -
chown pmm.pmm /srv/nginx/certificate.key -
chown pmm.pmm /srv/nginx/ca-certs.pem -
chown pmm.pmm /srv/nginx/dhparam.pem
Запуск, остановка и обновление¶
Для перезапуска веб-сервера nginx внутри контейнера используется команда управления supervisorctl: