Настройка интеграции происходит в процессе создания обработчика услуг в BILLmanager, страница Интеграция → Обработчики услуг → Создать. Мастер добавления обработчика состоит из четырех шагов:
- Шаг 1. Тип продукта. Выбор типа продукта. Интеграция через shell-скрипты доступна для типов продукта, которые были созданы вручную, а также для виртуального хостинга.
- Шаг 2. Модуль обработки. Выбор модуля обработки. В качестве модуля обработки указывается
ShellScripts
. - Шаг 3. Настройка интеграции. Ввод информации, необходимой для интеграции.
- Шаг 4. Параметры обработчика услуг. Настройка внутренних (в пределах BILLmanager) параметров обработчика услуг.
Настройка интеграции
IP-адрес — адрес сервера, на котором выполняется обработка услуг.
Есть пароль для root — флаг определяет способ авторизации на сервере с правами суперпользователя:
-
- Флаг неактивен — использовать публичный ssh ключ. Помещается на сервер, в директорию /root/.ssh/authorized_keys.
- Флаг активен — использовать пароль учетной записи суперпользователя (root). Указывается в поле Пароль.
Путь к скриптам — директория на сервере, в которой хранятся управляющие скрипты.
Требования к скриптам
Для работы модуля обработки необходимо наличие следующих скриптов:
- 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. Также, в эту таблицу записывается имя и пароль учетной записи.
#!/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 (латинские символы).
#!/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"
#!/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"
#!/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 (латинские символы).