VMmanager 5 KVM: Administrator guide

Integration with WHMCS

WHMCS is a billing system that allows providers to offer different services to their customers.  

With WHMCS you can configure automatic provisioning of dedicated servers to your customers.

The billing system performs the following function

  • registers and bills customers; 
  • creates tariff plans; 
  • receives payments;  
  • automates service provisioning: activation, renewal, suspension. 

To integrate VMmanager with the billing system, log in to WHMCS and complete the steps below.

Note
The integration module was not tested with WHMCS 7.8.3 and later.

Installing the module

To install the integration modules with VMmanager, navigate  to the Modules directory of WHMCS setup root directory and unpack the files:

cd /var/www/html/whmcs/modules/
wget http://download.ispsystem.com/extras/whmcs/7/whmcs_isp_vm.tar.gz
tar -xzvf whmcs_isp_vm.tar.gz

Open the WHMCS web-interface and activate the module: Setup → Addon Modules → ISPsystem global module → Activate

Integration

Click on Setup → Products/Services → Servers → Add New Server.

Servers

  • Name — name that will be used to connect to VMmanager; 
  • Hostname — domain name of the server with VMmanager; 
  • IP address — server IP address. 

Server Details

  • Type — server type. Select  "DCImanager"; 
  • Username — enter the username in  DCImanager. Enter the credentials of the "Administrator" user. WHMCS will use this name to manage servers in DCImanager; 
  • Password — user password. 

Configuring a tariff plan

Click on  Setup → Product/Services → Product/Services → Create a New Product.

Details

  • Product Type —  the selected type defines how the service will be processed. Select "Dedicated/VPS Server"; 
  • Product Group —  service group that will include the tariff plan; 
  • Product Name.

Module Setting

  • Module Name — select "VMmanager"; 
  • Server Group; 
  • Operation System — OS template id from VManager. You can view a list of ids by calling the function <Domain or IP address of the control panel>/dcimgr?func=osmgr&out=xml; 
  • Disk quota - limit on the hard disk size;
  • Memory quota - the amount of memory that will be allocated to the container;
  • CPU —  limit on the number of processors; 
  • CPU weight — processor usage priority; 
  • Main IP address type — a type of IP addresses that will be allocated to the container. If the value for the parameter is not specified, the value will be imported from the container template.; 
  • SSH public key — public SSH-key; 
  • Recipe Name — a recipe that will be executed after OS installation. Enter  #local__<recipe name> for local recipes. The files of local recipes are located on the server with DCImanager in the /usr/local/mgr5/etc/recipes/local/ directory.  Enter  <repository name>__<recipe name> for the recipes from the repository. The recipe files from the repository are located on the server with DCImanager in the /usr/local/mgr5/etc/recipes/repo/<repository name>/ 
  • Dont wait the OS install — do not wait for the OS installation process to complete when activating a service.; 
  • Domain template — domain template. If nothing is specified, the domain name that a user enters in WHMCS order form will be added.

Configurable options

Tariff options in WHMCS are additional resources that a client can order at an extra fee.  They are billed separately from the product. The client can choose the amount of additional resources on a service edit form. 

Configurable options can be grouped. Each group can be associated with several products. We recommend that you use a separate group of options for every connection to the control panel.  

Go to Setup → Products/Services → Configurable Options. Add the following options for your dedicated server tariff plan:

  • Operation system.   Enter "OS", "os" or "ostemplate" in Option Name. Other names are not supported; 
  • Per-installed software (recipes). Enter "recipe" in Option Name. Other names are not supported; 
  • IP addresses. In Option Name enter "IP" for IPv4-addresses and  "IPv6" for IPv6-addresses. Other names are not supported.