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

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

Настройка интеграции происходит в WHMCS и DCImanager 6.

Для работы модуля интеграции требуется WHMCS версии 8.

Работа модуля интеграции для WHMCS 8 была протестирована на версии 8.8.0.

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


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

cd /var/www/html/whmcs/ 
wget https://download.ispsystem.com/extras/whmcs/7/whmcs_isp_dci6.tar.gz
tar -xzvf whmcs_isp_dci6.tar.gz
DIFF

После распаковки файлов перейдите в интерфейс WHMCS и активируйте загруженный модуль:

  • для WHMCS 7 — SetupAddon Modules → модуль ISPsystem global module → Activate;
  • для WHMCS 8 — System settings → Addon Modules → модуль ISPsystem global module → Activate.

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


Для подключения к DCImanager 6 в WHMCS нажмите SetupProducts/ServicesServers → кнопка Add New Server.

Блок Servers

4.png

Настройка блока Servers

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

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

Блок Server Details

Настройка блока Servers Details

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

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

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


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

Вкладка Details

Настройка вкладки Details

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

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

Вкладка Module Setting

Настройка вкладки Module Settings

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

  • Module Name — используемый модуль интеграции. Выберите "DCImanager 6";
  • Server Group — группа серверов услуг;
  • Server configuration type — наименование конфигурации серверов из DCImanager 6; 

    Чтобы получить наименование конфигурации сервера в DCImanager 6, проведите на этом сервере операцию диагностики. Подробнее см. в статье Проведение диагностики.

  • Operation system — наименование шаблона операционной системы (ОС) из DCImanager 6;
  • Don't wait the OS install — опция активации заказа до установки ОС;
  • IP address group — пул из DCImanager 6 для назначения IPv4-адресов серверу;
  • OS Installation timeout (minute) — время ожидания установки ОС. Параметр используется только при отключенной опции Don't wait the OS install;
  • Location ID — ID локации в DCImanager 6. Если серверы располагаются в разных локациях, оставьте параметр пустым. В противном случае для заказа будут доступны только серверы в выбранной локации;
  • User email verifying option check — проверка email клиента. Если опция включена, клиент без верифицированного email не сможет управлять подключенными услугами через WHMCS. Чтобы уведомить клиента о необходимости верификации email, перейдите в SetupGeneral SettingsSecurity → Email Verification и включите опцию Request users to confirm their email address on signup or change of email address;
  • The name of the diagnostic template using during account termination — имя шаблона диагностики. Рекомендуем использовать шаблон Diag6;
  • IP address group for the diagnostic operation — пул из DCImanager 6 для назначения IP-адресов при проведении диагностики;
  • Do not manage IP addresses — если опция включена, модуль интеграции не будет удалять IP-адреса сервера. Новый IP-адрес будет назначен, только если на сервере нет IP-адресов;
  • Shutdown server after service termination — если опция включена, то при удалении услуги DCImanager 6 выключит сервер;
  • Suspend the server when service is terminated — если опция включена, то при удалении услуги DCImanager 6 выключит порты коммутатора, к которым подключен сервер;
  • Disable disk clearing for server after terminate service operation — если опция включена, то при удалении услуги DCImanager 6 не будет проводить очистку дисков сервера;
  • Owner username for server after terminate service operation — имя пользователя DCImanager 6, который будет назначен владельцем сервера при удалении услуги. Если такого пользователя в DCImanager 6 нет, то он будет создан. При пустом значении параметра после удаления услуги владельца у сервера не будет; 

    Имя пользователя должно быть в формате user@domain.com.

  • IPv6 address group — пул из DCImanager 6 для назначения IPv6-адресов серверу; 

    При выделении серверу IPv6-адреса или подсети дополнительно будет назначен IPv4-адрес из пула, указанного в параметре IP address group.

  • Use temporary IPv4 — если опция включена, то после установки ОС временный IPv4-адрес будет удалён с сервера. В настройках платформы этот адрес останется выделен серверу;
  • Remove temporary IP after operation done — если опция включена, то все временные IP-адреса сервера в настройках платформы будут удалены после успешной установки ОС.

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


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

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

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

  • операционная система:
    1. В поле Option Name укажите "OS", "os" или "ostemplate". Другие имена опций не поддерживаются.
    2. В поле Option Type выберите Dropdown.

  • IP-адреса и IPv6-подсети:
    1. В поле Option Name:
      • для IPv4-адресов — укажите "ip", "IP", "ipv4" или "IPv4". Другие имена опций не поддерживаются;
      • для IPv6-адресов и подсетей — "ip6", "IP6", "ipv6" или "IPv6". Другие имена опций не поддерживаются.

    2. В поле Option Type выберите Quantity.
    3. В поле Minimum Quantity Required укажите количество IP-адресов или подсетей, выделяемых серверу. Минимальное значение — 1.

    4. Чтобы серверу выделялись IPv6-подсети, дополнительно создайте опцию с настройками:

      1. Option Name — "ip6_prefix", "IP6_prefix", "ipv6_prefix" или "IPv6_prefix". Другие имена опций не поддерживаются.
      2. Option Type — Quantity.
      3. Minimum Quantity Required — минимальный префикс подсети. Минимальное значение — 64.
      4. Maximum Allowed — максимальный префикс подсети. Максимальное значение — 128.

IP-адреса, назначенные серверу, можно посмотреть в карточке услуги:

  • основной IPv4-адрес — в поле Dedicated IP;
  • дополнительные IP-адреса — в поле Assigned IPs.

Пример карточки услуги

При изменении IP-адресов в карточке услуги IP-адреса сервера в DCImanager 6 не изменятся.

Выдача определённого сервера


Чтобы DCImanager 6 выделил определённый сервер при заказе услуги, укажите id сервера из DCImanager 6 в поле DCImgr server ID в карточке услуги. Опция доступна, если услуга не была обработана. Чтобы услуга не была привязана к определённому серверу, оставьте поле DCImgr server ID пустым.

Настройка выдачи определённого сервера

Настройка DCImanager 6


При удалении услуги модуль интеграции проводит диагностику сервера с очисткой жёстких дисков. Для корректной работы механизма удаления услуги:

  1. Убедитесь, что на сервере может быть выполнена диагностика. Подробнее см. в статье Проведение диагностики.
  2. Создайте пул IP-адресов для проведения диагностики:
    1. Перейдите в СетьПулы IP-адресовСоздать пул IP-адресов.
    2. Укажите произвольное Название пула.
    3. В поле IP-адрес или диапазон укажите диапазон, из которого будут назначаться адреса диагностируемым серверам. С этих IP-адресов должна быть доступна локация, к которой относятся диагностируемые серверы.
    4. Включите опцию Создать физическую сеть.
    5. Укажите Сеть, которую будет использовать модуль диагностики. Сеть должна входить в заданный диапазон IP-адресов.
    6. Укажите адрес Шлюза для сети.
    7. Нажмите Создать пул.
  3. Отметьте созданный пул IP-адресов в качестве пула для проведения диагностики:
    1. Перейдите в СетьПулы IP-адресов → Общие настройки пулов.
    2. Выберите созданный пул в поле Пул для освобождения серверов.
    3. Нажмите Сохранить.

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


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

При открытии новой услуги модуль интеграции выполняет следующие действия:

  1. Находит в базе данных DCImanager 6 свободный сервер со следующими параметрами:
    • конфигурация сервера соответствует указанной в параметре Server configuration type на вкладке Module Settings;
    • у сервера нет владельца;
    • последняя операция с сервером была выполнена успешно или отменена в ходе выполнения.

      Если в карточке услуги в поле DCImgr server ID указан id сервера, пользователю может быть выдан только этот сервер. Если у сервера с таким id уже есть владелец, обработка услуги останавливается с ошибкой "The selected server is already in use".

  2. Осуществляет поиск пользователя DCImanager 6 по Email, указанному в настройках аккаунта WHMCS. Если пользователь с таким адресом не найден, создаёт нового. Если найден пользователь с правами администратора, возвращает сообщение об ошибке. 
  3. Назначает пользователя владельцем сервера.
  4. Включает порты коммутатора, к которым подключен сервер.
  5. Включает сервер, если он выключен.
  6. Останавливает операцию на сервере, если она запущена.
  7. Удаляет IP-адреса из конфигурации сервера, если опция Do not manage IP addresses выключена.

  8. Добавляет в конфигурацию сервера новый IP-адрес из пула, указанного в параметре IP address group на вкладке Module Settings. Новый IP-адрес будет назначен, если опция Do not manage IP addresses выключена или на сервере нет IP-адресов.

  9. Запускает операцию установки ОС.
  10. Ожидает завершения установки ОС, если опция Don't wait the OS install была отключена. По прошествии времени, указанного в параметре OS Installation timeout (minute) завершает операцию установки.

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

При остановке услуги DCImanager 6 выключает порты коммутатора, к которым подключен сервер. Услуга не может быть остановлена, если в настройках сервера не были указаны порты коммутатора.

Возобновление услуги

При возобновлении услуги DCImanager 6 включает порты коммутатора, к которым подключен сервер.

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

При удалении услуги модуль интеграции выполняет следующие действия:

  1. Включает порты коммутатора, к которым подключен сервер.
  2. Включает сервер, если он выключен.
  3. Останавливает операцию на сервере, если она запущена.
  4. Удаляет IP-адреса из конфигурации сервера.
  5. Назначает владельцем сервера пользователя DCImanager 6, указанного в параметре Owner username for server after terminate service operation. Если такого пользователя нет в DCImanager 6, создаёт его. Если значение параметра пустое, удаляет данные о владельце сервера.
  6. Запускает диагностику с опцией очистки дисков. Если опция Disable disk clearing for server after terminate service operation включена, то очистка дисков проводиться не будет. Если диагностика не завершится за 60 минут при включённой опции Shutdown server after service termination, операция будет принудительно завершена.

  7. Выключает сервер, если опция Shutdown server after service termination была активна.
  8. Выключает порты коммутатора, к которым подключен сервер, если опция Suspend the server when service is terminated была активна.

Логирование

Чтобы посмотреть лог-файл модуля интеграции, в интерфейсе WHMCS перейдите в UtilitiesLogsModule Log.

Если в лог-файле встречаются ошибки вида "Module Create Failed", проверьте активирован ли модуль интеграции.

Может быть полезно

Связанные статьи: