Обзор развертывания 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: