Интеграция Portainer в ispmanager 6 позволяет управлять Docker-контейнерами через интерфейс панели управления. Для этого необходимо выполнить несколько шагов: подготовить среду, создать SSL-сертификат, запустить контейнер Portainer, добавить элемент меню в ispmanager и создать аддон.
Подготовка
Перед началом убедитесь, что в панели уже установлен Docker.
Создание SSL-сертификата
Для корректной работы Portainer необходимо выпустить самоподписанный SSL-сертификат. Выполните следующие команды:
mkdir -p /etc/ssl/portainer openssl req -x509 -nodes -days 365 \ -newkey rsa:2048 \ -keyout /etc/ssl/portainer/portainer.key \ -out /etc/ssl/portainer/portainer.crt \ -subj "/CN=localhost"
Запуск контейнера Portainer
Создайте Docker-контейнер с помощью команды:
docker run -d \
--name portainer \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_dаta:/data \
-v /etc/ssl/portainer:/certs \
portainer/portainer-ce:latest \
--ssl \
--sslcert /certs/portainer.crt \
--sslkey /certs/portainer.key
Добавление элемента меню в ispmanager
Подготовьте иконку для элемента меню в формате SVG с прозрачным фоном, без анимации, размером 15×15 пикселей. Поместите её в /usr/local/mgr5/skins/icons/portainer.svg
Создайте файл /usr/local/mgr5/etc/xml/ispmgr_mod_portainer.xml со следующим содержимым:
xml
<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
<mainmenu level="admin+">
<modernmenu>
<node name="docker_mgmt" customicon="/manimg/icons/portainer.svg">
<node name="open_portainer" favorite="yes" customicon="/manimg/icons/portainer.svg" />
</node>
</modernmenu>
</mainmenu>
<handler name="myaddon.sh" type="xml">
<func name="open_portainer" />
</handler>
<lang name="ru">
<messages name="desktop">
<msg name="modernmenu_docker_mgmt">Docker Management</msg>
<msg name="modernmenu_open_portainer">Portainer</msg>
</messages>
</lang>
</mgrdata>
Создание аддона
Создайте файл /usr/local/mgr5/addon/myaddon.xml со следующим содержимым:
xml
<?xml version="1.0" encoding="UTF-8"?>
<doc lang="ru" func="myfunc" binary="/ispmgr">
<metadata name="myfunc" type="form" mgr="ispmgr">
<form>
<field name="frame" fullwidth="yes">
<frame name="portainerframe" forcetheme="yes" fullpage="yes" keepalive="yes" />
</field>
</form>
</metadata>
<messages name="myfunc" checked="6b49a92f5cc5153c76b78446d0d74eb4">
<msg name="title">Portainer</msg>
<msg name="frame">Frame</msg>
</messages>
<portainerframe>https://URL_PANEL_ADDRESS:9443</portainerframe>
</doc>
Замените URL_PANEL_ADDRESS на IP-адрес или доменное имя панели.
Создайте скрипт для аддона по пути /usr/local/mgr5/addon/myaddon.sh с содержимым:
bash
#!/bin/bash
cat /usr/local/mgr5/addon/myaddon.xml
Установите права на скрипт:
bash
chmod 750 /usr/local/mgr5/addon/myaddon.sh
Перезапустите панель для применения изменений:
bash
/usr/local/mgr5/sbin/mgrctl -m ispmgr -R
После выполнения этих шагов в интерфейсе ispmanager 6 появится элемент меню для доступа к Portainer.