WHMCS — биллинговая система для продажи услуг различных типов. С помощью WHMCS вы сможете продавать выделенные серверы клиентам в автоматическом режиме. Основные возможности биллинговой системы:  

  • регистрация клиентов и учёт их финансовых средств; 
  • создание тарифов на услуги; 
  • приём платежей от клиентов;  
  • автоматическое управление услугами: открытие, остановка, продление. 

Настройка интеграции происходит на стороне WHMCS. В статье подробно описан этот процесс. 

Обратите внимание!

Работа модуля интеграции не тестировалась с WHMCS версии 7.8.3 и выше.

Установка модуля


Для установки модуля интеграции с DCImanager перейдите в директорию Modules корневого каталога установки WHMCS. Скачайте и распакуйте в эту директорию файлы модуля интеграции: 

cd /var/www/html/whmcs/
wget http://download.ispsystem.com/extras/whmcs/7/whmcs_isp_dci.v.2.tar.gz
tar -xzvf whmcs_isp_dci.v.2.tar.gz
DIFF

После распаковки файлов перейдите в интерфейс WHMCS и активируйте загруженный модуль: Setup → Addon Modules модуль ISPsystem global module кнопка Activate

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


Для подключения к DCImanager нажмите Setup → Products/Services → Servers кнопка Add New Server.

Блок Servers

Укажите следующие параметры:

  • Name — имя подключения к DCImanager; 
  • Hostname — доменное имя сервера с DCImanager; 
  • IP address — адрес для подключения к серверу. 

Блок Server Details

Укажите следующие параметры:

  • Type — тип сервера. Укажите "DCImanager"; 
  • Username — имя пользователя в подключаемом DCImanager. Для интеграции используется учётная запись с уровнем доступа "Администратор". От имени указанной учётной записи WHMCS будет управлять серверами в DCImanager; 
  • Password — пароль учётной записи. 

Настройка тарифного плана


Для настройки тарифа нажмите Setup → Product/Services → Product/Services кнопка Create a New Product.

Вкладка Details

Укажите следующие параметры:

  • Product Type — тип продаваемого продукта. Выбранное значение влияет на способ обработки услуги. Укажите "Dedicated/VPS Server"; 
  • Product Group — группа услуг, в которой будет находиться тариф на форме заказа; 
  • Product Name — имя продукта. 

Вкладка Module Setting

Укажите следующие параметры:

  • Module Name — используемый модуль интеграции. Выберите "DCImanager"
  • Server Group — группа серверов услуг; 
  • Package Name — наименование конфигурации сервера из DCImanager
  • Operation System — идентификатор шаблона операционной системы из DCImanager. Для просмотра списка доступных шаблонов используйте функцию <Домен или IP панели управления>/dcimgr?func=osmgr&out=xml; 
  • Recipe Name — имя файла рецепта, который будет запущен после установки операционной системы (ОС). Для локальных рецептов укажите имя вида #local__<имя рецепта>, файлы локальных рецептов расположены на сервере с DCImanager в директории /usr/local/mgr5/etc/recipes/local/. Для рецептов из репозитория укажите имя вида <имя репозитория>__<имя рецепта>, файлы рецептов из репозитория расположены на сервере с DCImanager в директории /usr/local/mgr5/etc/recipes/repo/<имя репозитория>/
  • Dont wait the OS install — опция отключения ожидания установки ОС для активации заказа; 
  • Domain template — шаблон, по которому формируется доменное имя, если клиент не указал его при заказе услуги. 

Настраиваемые опции

Опции тарифного плана в WHMCS — дополнительные ресурсы, которые клиент может заказать за отдельную плату. Биллинг этих ресурсов выполняется отдельно от основной услуги. Количество дополнительных ресурсов клиент определяет самостоятельно на форме заказа услуги. 

Настраиваемые опции тарифа объединяются в группы. Каждая группа опций может быть подключена к нескольким продуктам. Рекомендуем для каждого подключения к панели управления использовать отдельную группу опций. 

Для управления группами опций перейдите в раздел Setup → Products/Services → Configurable Options. Добавьте в тарифный план на выделенные серверы опции:

  • Операционная система. В поле Option Name укажите "OS", "os" или "ostemplate". Другие имена опций не поддерживаются; 
  • Предустановленное ПО (рецепты). В поле Option Name укажите "recipe". Другие имена опций не поддерживаются; 
  • IP-адреса. В поле Option Name укажите "IP" для IPv4-адресов и "IPv6" для IPv6-адресов. Другие имена опций не поддерживаются. 

Алгоритм работы модуля


Открытие услуги

WHMCS проверяет у пользователя наличие активных услуг с типом "Выделенные серверы". Если есть услуги, то у клиента есть и аккаунт в DCImanager. В таком случае каждый новый выделенный сервер будет размещён в рамках этого аккаунта в DCImanager.

Если клиент совершает первый заказ выделенного сервера, то создается новый аккаунт на стороне DCImanager. Название аккаунта в DCImanager совпадает с именем пользователя в WHMCS. Паролем аккаунта станет пароль, заданный при оформлении услуги (пароль выделенного сервера).

WHMCS создаёт услугу, выставляет ей статус Pending, и начинает поиск в DCImanager свободного сервера заказанной конфигурации. Сервер считается свободным в DCImanager если:

  • у сервера нет владельца;
  • Hostname сервера имеет значение "free.ds";
  • у сервера нет проблем с оборудованием;
  • в текущий момент не выполняется диагностика сервера. 

Сервер считается подходящей конфигурации, если поле "Package Name" в настройках тарифного плана совпадает с полем "Конфигурация" или "Тип сервера" в DCImanager.

На стороне DCImanager выбранному серверу выделяются IP из пула адресов. Во время установки операционной системы все заказанные IP-адреса будут добавлены на сетевой интерфейс сервера.

Услуга переходит в состояние "Active" и считается готовой к использованию когда: 

  • запустилась установка ОС на сервер при активной опции тарифа "Dont wait the OS install"; 
  • установка ОС на сервер завершилась успешно при отключённой опции "Dont wait the OS install". Если за 720 секунд установка не завершилась, то отобразится ошибка на стороне WHMCS и услуга останется в статусе "Pending".

Остановка услуги

Когда заканчивается срок действия услуги, на стороне DCImanager сервер блокируется. Если в течение определённого времени услуга не продлевается, то сервер освобождается.

Удаление услуги

Когда услуга удаляется, на стороне DCImanager сервер освобождается:

  • владелец у сервера меняется на "Без владельца";
  • Hostname меняется на "free.ds";
  • освобождаются IP-адреса сервера.

Логирование

Лог взаимодействия WHMCS и DCImanager расположен в Utilities → Logs → Module Log