Интеграция через ShellScripts
Настройка интеграции
Интеграция настраивается в процессе создания обработчика услуг в BILLmanager.
Чтобы создать обработчик услуг, перейдите в раздел Интеграция → Обработчики услуг → кнопка Создать:
- Тип продукта. Интеграция через shell-скрипты доступна для типов продукта, которые были созданы вручную, а также для виртуального хостинга.
- Модуль обработки — выберите ShellScripts.
- Настройка интеграции. Укажите данные для интеграции:
- IP-адрес — адрес сервера, на котором выполняется обработка услуг;
- Есть пароль для root — флаг определяет способ авторизации на сервере с правами суперпользователя:
- неактивен — использовать публичный ssh ключ. Помещается на сервер, в директорию /root/.ssh/authorized_keys;
- активен — использовать пароль учетной записи суперпользователя (root). Указывается в поле Пароль.
- Путь к скриптам — директория на сервере, в которой хранятся управляющие скрипты.
- Параметры обработчика услуг. Настройте внутренние (в пределах BILLmanager) параметры обработчика услуг.
Требования к скриптам
Для работы модуля обработки необходимо наличие следующих скриптов:
- open.sh — сценарий описывающий процесс открытия услуги.
- resume.sh — сценарий описывающий процесс возобновления услуги после её остановки.
- suspend.sh — сценарий описывающий процесс временной остановки услуги.
- close.sh — сценарий описывающий процесс закрытия услуги.
- setparam.sh — сценарий описывающий процесс изменения параметров заказа клиентом. Наличие данного скрипта не является обязательным.
Скрипт открытия услуги
Скрипт open.sh должен принимать следующие параметры:
- Значения дополнительных ресурсов тарифа в формате --addon=value. Где addon — внутреннее наименование ресурса, value — заказываемое значение ресурса.
- Значения параметров тарифного плана в формате --param=value. Где param — внутреннее наименование параметра, value — заказываемое значение параметра.
- Имя и пароль учетной записи, сгенерированные биллинговой платформой. Формат параметров: --user=<username> и --password=<password>.
При успешном открытии услуги, скрипт должен завершиться с кодом возврата 0 и вернуть строку, которая:
- Начинается со слова OK (латинские символы).
- Перечисляет все выходные параметры, разделяя их пробелами. Формат вывода параметров: --param1=value --param2=value.
- Содержит уникальный идентификатор услуги - параметр id. В дальнейшем по этому параметру будет выполняться обработка услуги.
Все выходные параметры скрипта сохраняются в базе данных BILLmanager, в таблицу itemparam. Параметр id сохраняется под именем externalid. Также, в эту таблицу записывается имя и пароль учетной записи.
Пример open.sh
#!/bin/bash
for i
do
if [ ${i:0:6} = "--user" ]
then
username=${i:7}
elif [ ${i:0:10} = "--password" ]
then
password=${i:11}
fi
done
useradd $username -d /home/ftp_folder -m -s /bin/false
echo $password | passwd --stdin $username > /dev/null
echo "OK --id=$username --username=$username --password=$password"
Скрипты взаимодействия с услугой
Скрипты resume.sh, suspend.sh и close.sh должны принимать следующие параметры:
- Уникальный идентификатор услуги в формате --id=<externalid>.
- Имя учетной записи, сгенерированное при открытии услуги. Формат параметра: --user=<username>.
При успешном выполнении действия, скрипт должен завершиться с кодом возврата 0 и вернуть строку, которая начинается со слова OK (латинские символы).
Пример resume.sh
#!/bin/bash
for i
do
string=${i}
if [ ${string:0:4} = "--id" ]
then
username=${string:5}
fi
done
usermod -d /home/ftp_folder $username
echo "OK"
Пример suspend.sh
#!/bin/bash
for i
do
string=${i}
if [ ${string:0:4} = "--id" ]
then
username=${string:5}
fi
done
usermod -d /dev/null $username
echo "OK"
Пример close.sh
#!/bin/bash
for i
do
string=${i}
if [ ${string:0:4} = "--id" ]
then
username=${string:5}
fi
done
userdel $username
echo "OK"
Скрипт изменения параметров услуги
Скрипт setparam.sh должен принимать следующие параметры:
- Значения дополнительных ресурсов тарифа в формате --addon=value. Где addon — внутреннее наименование ресурса, value - заказываемое значение ресурса.
- Значения параметров тарифного плана в формате --param=value. Где param — внутреннее наименование параметра, value — заказываемое значение параметра.
- Идентификатор услуги и имя учетной записи, сгенерированое при открытии услуги. Формат параметров: --id=<externalid> и --user=<username>.
При успешном изменении параметров, скрипт должен завершиться с кодом возврата 0 и вернуть строку, которая начинается со слова OK (латинские символы).