Документация BILLmanager 6

Интеграция через ShellScripts

Настройка интеграции

Интеграция настраивается в процессе создания обработчика услуг в BILLmanager.

Чтобы создать обработчик услуг, перейдите в раздел Интеграция → Обработчики услуг → кнопка Создать:

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