Интеграция с WHMCS
WHMCS — биллинговая система для продажи услуг различных типов. С помощью WHMCS вы сможете продавать выделенные серверы клиентам в автоматическом режиме. Основные возможности биллинговой системы:
- регистрация клиентов и учёт их финансовых средств;
- создание тарифов на услуги;
- приём платежей от клиентов;
- автоматическое управление услугами: открытие, остановка, продление.
Настройка интеграции происходит в WHMCS и DCImanager.
Обратите внимание!
Для работы модуля интеграции требуется WHMCS версии 7 или 8.
Работа модуля интеграции для WHMCS 8 была протестирована на версии 8.0.4.
Установка модуля
Для установки модуля интеграции с DCImanager перейдите в корневую директорию установки 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
После распаковки файлов перейдите в интерфейс WHMCS и активируйте загруженный модуль:
- для WHMCS 7 — Setup → Addon Modules → модуль ISPsystem global module → Activate;
- для WHMCS 8 — System settings → Addon Modules → модуль ISPsystem global module → Activate.
Настройка интеграции
Для подключения к DCImanager в WHMCS нажмите Setup → Products/Services → Servers → кнопка Add New Server.
Блок Servers
Настройка блока Servers
Укажите следующие параметры:
- Name — имя подключения к DCImanager;
- Hostname — доменное имя сервера с DCImanager;
- IP address — IP-адрес для подключения к серверу.
Блок Server Details
Настройка блока Servers Details
Укажите следующие параметры:
- Type — тип сервера. Укажите "DCImanager 6";
- Username — имя пользователя в подключаемом DCImanager. Для интеграции используется учётная запись с уровнем доступа "Администратор". От имени указанной учётной записи WHMCS будет управлять серверами в DCImanager;
- Password — пароль учётной записи.
Настройка тарифного плана
Для настройки тарифа в WHMCS нажмите Setup → Product/Services → Product/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;
Обратите внимание!
Чтобы получить наименование конфигурации сервера в DCImanager, проведите на этом сервере операцию диагностики. Подробнее см. в статье Проведение диагностики.
- Operation system — наименование шаблона операционной системы (ОС) из DCImanager;
- Don't wait the OS install — опция активации заказа до установки ОС;
- IP address group — пул из DCImanager для назначения IP-адресов серверу;
- OS Installation timeout (minute) — время ожидания установки ОС. Параметр используется только при отключенной опции Don't wait the OS install;
- Location ID — ID локации в DCImanager. Если серверы располагаются в разных локациях, оставьте параметр пустым. В противном случае для заказа будут доступны только серверы в выбранной локации;
- User email verifying option check — проверка email клиента. Если опция включена, клиент без верифицированного email не сможет управлять подключенными услугами через WHMCS. Чтобы уведомить клиента о необходимости верификации email, перейдите в Setup → General Settings → Security → 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 для назначения IP-адресов при проведении диагностики;
- Do not manage IP addresses — если опция включена, модуль интеграции не будет удалять IP-адреса сервера. Новый IP-адрес будет назначен, только если на сервере нет IP-адресов;
- Shutdown server after service termination — если опция включена, то при удалении услуги DCImanager выключит сервер;
- Suspend the server when service is terminated — если опция включена, то при удалении услуги DCImanager выключит порты коммутатора, к которым подключен сервер;
- Disable disk clearing for server after terminate service operation — если опция включена, то при удалении услуги DCImanager не будет проводить очистку дисков сервера;
Owner username for server after terminate service operation — имя пользователя DCImanager, который будет назначен владельцем сервера при удалении услуги. Если такого пользователя в DCImanager нет, то он будет создан. При пустом значении параметра после удаления услуги владельца у сервера не будет.
Обратите внимание!
Имя пользователя должно быть в формате user@domain.com.
Настраиваемые опции
Опции тарифного плана в WHMCS — дополнительные ресурсы, которые клиент может заказать за отдельную плату. Биллинг этих ресурсов выполняется отдельно от основной услуги. Количество дополнительных ресурсов клиент определяет самостоятельно на форме заказа услуги.
Настраиваемые опции тарифа объединяются в группы. Каждая группа опций может быть подключена к нескольким продуктам. Рекомендуем для каждого подключения к платформе использовать отдельную группу опций.
Для управления группами опций перейдите в раздел Setup → Products/Services → Configurable Options. Добавьте в тарифный план на выделенные серверы опции:
- операционная система:
- В поле Option Name укажите "OS", "os" или "ostemplate". Другие имена опций не поддерживаются.
- В поле Option Type выберите Dropdown.
Настройка опции "Операционная система"
- IP-адреса:
- В поле Option Name укажите "ip", "IP", "ipv4" или "IPv4". Другие имена опций не поддерживаются.
- В поле Option Type выберите Quantity.
- В поле Minimum Quantity Required укажите количество IP-адресов, выделяемых серверу. Минимальное значение — 1.
Настройка опции "IP-адреса"
IP-адреса, назначенные серверу, можно посмотреть в карточке услуги:
- основной IPv4-адрес — в поле Dedicated IP;
- дополнительные IP-адреса — в поле Assigned IPs.
Пример карточки услуги
Обратите внимание!
При изменении IP-адресов в карточке услуги IP-адреса сервера в DCImanager не изменятся.
Выдача определённого сервера
Чтобы DCImanager выделил определённый сервер при заказе услуги, укажите id сервера из DCImanager в поле DCImgr server ID в карточке услуги. Опция доступна, если услуга не была обработана. Чтобы услуга не была привязана к определённому серверу, оставьте поле DCImgr server ID пустым.
Настройка выдачи определённого сервера
Настройка DCImanager
При удалении услуги модуль интеграции проводит диагностику сервера с очисткой жёстких дисков. Для корректной работы механизма удаления услуги:
- Убедитесь, что на сервере может быть выполнена диагностика. Подробнее см. в статье Проведение диагностики.
- Создайте пул IP-адресов для проведения диагностики:
- Перейдите в Сеть → Пулы IP-адресов → Создать пул IP-адресов.
- Укажите произвольное Название пула.
- В поле IP-адрес или диапазон укажите диапазон, из которого будут назначаться адреса диагностируемым серверам. С этих IP-адресов должна быть доступна локация, к которой относятся диагностируемые серверы.
- Включите опцию Создать физическую сеть.
- Укажите Сеть, которую будет использовать модуль диагностики. Сеть должна входить в заданный диапазон IP-адресов.
- Укажите адрес Шлюза для сети.
- Нажмите Создать пул.
- Отметьте созданный пул IP-адресов в качестве пула для проведения диагностики:
- Перейдите в Сеть → Пулы IP-адресов → Общие настройки пулов.
- Выберите созданный пул в поле Пул для освобождения серверов.
- Нажмите Сохранить.
Алгоритм работы модуля
Открытие услуги
При открытии новой услуги модуль интеграции выполняет следующие действия:
- Находит в базе данных DCImanager свободный сервер со следующими параметрами:
- конфигурация сервера соответствует указанной в параметре Server configuration type на вкладке Module Settings;
- у сервера нет владельца;
последняя операция с сервером была выполнена успешно или отменена в ходе выполнения.
Обратите внимание!
Если в карточке услуги в поле DCImgr server ID указан id сервера, пользователю может быть выдан только этот сервер. Если у сервера с таким id уже есть владелец, обработка услуги останавливается с ошибкой "The selected server is already in use".
- Осуществляет поиск пользователя DCImanager по Email, указанному в настройках аккаунта WHMCS. Если пользователь с таким адресом не найден, создаёт нового.
- Назначает пользователя владельцем сервера.
- Включает порты коммутатора, к которым подключен сервер.
- Включает сервер, если он выключен.
- Останавливает операцию на сервере, если она запущена.
Удаляет IP-адреса из конфигурации сервера, если опция Do not manage IP addresses выключена.
Добавляет в конфигурацию сервера новый IP-адрес из пула, указанного в параметре IP address group на вкладке Module Settings. Новый IP-адрес будет назначен, если опция Do not manage IP addresses выключена или на сервере нет IP-адресов.
- Запускает операцию установки ОС.
- Ожидает завершения установки ОС, если опция Don't wait the OS install была отключена. По прошествии времени, указанного в параметре OS Installation timeout (minute) завершает операцию установки.
Остановка услуги
При остановке услуги DCImanager выключает порты коммутатора, к которым подключен сервер. Услуга не может быть остановлена, если в настройках сервера не были указаны порты коммутатора.
Возобновление услуги
При возобновлении услуги DCImanager включает порты коммутатора, к которым подключен сервер.
Удаление услуги
При удалении услуги модуль интеграции выполняет следующие действия:
- Включает порты коммутатора, к которым подключен сервер.
- Включает сервер, если он выключен.
- Останавливает операцию на сервере, если она запущена.
- Удаляет IP-адреса из конфигурации сервера.
- Назначает владельцем сервера пользователя DCImanager, указанного в параметре Owner username for server after terminate service operation. Если такого пользователя нет в DCImanager, создаёт его. Если значение параметра пустое, удаляет данные о владельце сервера.
Запускает диагностику с опцией очистки дисков. Если опция Disable disk clearing for server after terminate service operation включена, то очистка дисков проводиться не будет. Если диагностика не завершится за 60 минут при включённой опции Shutdown server after service termination, операция будет принудительно завершена.
- Выключает сервер, если опция Shutdown server after service termination была активна.
- Выключает порты коммутатора, к которым подключен сервер, если опция Suspend the server when service is terminated была активна.
Логирование
Чтобы посмотреть лог-файл модуля интеграции, в интерфейсе WHMCS перейдите в Utilities → Logs → Module Log.
Если в лог-файле встречаются ошибки вида "Module Create Failed", проверьте активирован ли модуль интеграции.