Интеграция Portainer в ispmanager 6
Для чего это нужно
Расширенное управление и мониторинг docker-контейнеров в ispmanager 6.
Инструкции
На момент настройки Portainer, в панели уже должен быть установлен Docker.
Для корректной работы приложения, потребуется выпустить самоподписанный 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"
Далее необходимо создать docker-контейнер для Portainer:
docker run -d \
--name portainer \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
-v /etc/ssl/portainer:/certs \
portainer/portainer-ce:latest \
--ssl \
--sslcert /certs/portainer.crt \
--sslkey /certs/portainer.key
Теперь нужно подготовить пункт в меню для Portainer.
Сначала подготовьте иконку для пункта меню и разместите по пути /usr/local/mgr5/skins/icons/portainer.svg
. Иконка должна соответствовать следующим требованиям:
- Изображение с прозрачным фоном в формате SVG;
- Отсутствие анимаций;
- Размер изображения - 15х15 пикселей.
После этого можно перейти к созданию пункта меню Portainer в подразделе Docker Management, создав файл по пути /usr/local/mgr5/etc/xml/ispmgr_mod_portainer.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 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_АДРЕС_ПАНЕЛИ:9443</portainerframe>
</doc>
Обязательно укажите IP-адрес панели или доменное имя вместо переменной URL_АДРЕС_ПАНЕЛИ
.
Также необходимо создать скрипт для аддона по пути /usr/local/mgr5/addon/myaddon.sh
с содержимым:
#!/bin/bash
cat /usr/local/mgr5/addon/myaddon.xml
Скрипту нужно установить права 750
, выполнив команду:
chmod 750 /usr/local/mgr5/addon/myaddon.sh
Для применения изменений, перезапустите панель:
/usr/local/mgr5/sbin/mgrctl -m ispmgr -R