Модуль интеграции на основе shell-скриптов

Материал из ISPWiki
Перейти к: навигация, поиск

Доступно в BILLmanager версии 5.61 и выше.


Универсальный модуль интеграции на основе shell-скриптов (ShellScripts) предназначен для организации продажи услуг, управляемых shell-скриптами на стороне удаленного сервера.


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

Настройка интеграции с модулем обработки осуществляется в разделе "Обработчики услуг".

При нажатии кнопки "Создать" запускается мастер настройки обработчика, состоящий из нескольких шагов.


Shellscripts step1.png


На первом шаге мастера выбирается тип продукта. Для модуля обработки поддерживаются все собственные (не встроенные) типы продуктов, а также "Виртуальный хостинг".


Shellscripts step2.png


На втором шаге мастера выбирается модуль обработки. Выберите ShellScripts.

Shellscripts step3.png

На третьем шаге происходит настройка интеграции. Заполните поля:

  • IP-адрес - IP-адрес сервера, на котором будет происходить обработка услуг;
  • Пароль - пароль для доступа к серверу с уровнем root; поле доступно только при активной опции "Есть пароль для root", если опция неактивна, то необходимо прописать указанный публичный SSH-ключ в /root/.ssh/authorized_keys сервера;
  • Путь к скриптам - путь на стороне сервера, где располагаются управляющие shell-скрипты.
Shellscripts step4.png

На четвертом шаге происходит настройка самого модуля обработки. Заполните следующие поля:

  • Наименование - наименование модуля обработки
  • Ответственный - выберите из списка отдел, на который будут назначаться задачи в случае необходимости
  • Сортировка - приоритет обработчика; при подключении нескольких обработчиков к тарифному плану первым будет выбираться обработчик, имеющий минимальное значение данного поля


Поддерживаемые скрипты

Для работы модуля необходимо наличие четырех скриптов:

  • open.sh
  • resume.sh
  • suspend.sh
  • close.sh

+ setparam.sh, если вы хотите предоставить пользователю возможность редактировать параметр заказа.

Требования к скрипту open.sh. При открытии услуги в скрипт в качестве параметров передаются:

  • значения дополнений к тарифному плану в формате --addon=value
  • значения параметров тарифного плана --param=value
  • сгенерированные автоматически имя пользователя и пароль: --password=<password> --user=<username>

В случае успеха скрипт должен завершиться с кодом возврата 0 и вернуть строку, начинающуюся со слова "OK" (латинскими символами), далее строка должна содержать разделенные пробелами параметры в виде: --param1=value --param2=value ... --paramN=value. Обязательный возвращаемый параметр - "id", уникальный идентификатор созданной услуги. Именно по этому идентификатору будет в дальнейшем производиться обработка услуги. Все выходные параметры скрипта сохраняются в базу данных в таблицу itemparam. Параметр id сохраняется под именем externalid. Также в itemparam сохраняются параметры user и password.

Требования к скриптам resume.sh, suspend.sh, close.sh. При запуске в данные скрипты передаются два параметра: --id=<externalid> --user=<username> (где username - это имя пользователя, сгенерированное при открытии услуги). В случае успеха скрипты должны завершаться с нулевым кодом возврата и возвращать строку, начинающуюся со слова "OK".

Требования к собственному типу продукта

Собственный тип продукта может содержать произвольное количество параметров и дополнений. Значения всех из них передаются при открытии услуги в скрипт open.sh.

При работе модуля обработки после открытия услуги в базу данных сохраняются параметры (независимо от их наличия в настройках типа продукта): externalid, user, password. Если требуется их отображение на форме редактирования услуги, то необходимо создать одноименные параметры в типе продукта.