Personal tools
Namespaces

Variants
Actions

Proxmox Cloud 2.X For WHMCS

From ModulesGarden Wiki
(Difference between revisions)
Jump to: navigation, search
(Installation)
 
(109 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
<meta name="keywords" content="proxmox cloud for whmcs, proxmox cloud configuration, whmcs proxmox cloud management, whmcs proxmox cloud installation, whmcs proxmox cloud common problems, about whmcs proxmox cloud, whmcs proxmox cloud documentation, whmcs proxmox cloud faq, whmcs proxmox cloud help, whmcs proxmox cloud guide, whmcs proxmox cloud wiki, whmcs proxmox cloud tutorial, whmcs proxmox cloud tips, whmcs proxmox cloud wiki"></meta>
 
<meta name="keywords" content="proxmox cloud for whmcs, proxmox cloud configuration, whmcs proxmox cloud management, whmcs proxmox cloud installation, whmcs proxmox cloud common problems, about whmcs proxmox cloud, whmcs proxmox cloud documentation, whmcs proxmox cloud faq, whmcs proxmox cloud help, whmcs proxmox cloud guide, whmcs proxmox cloud wiki, whmcs proxmox cloud tutorial, whmcs proxmox cloud tips, whmcs proxmox cloud wiki"></meta>
 
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The Proxmox Cloud For WHMCS Module."></meta>
 
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The Proxmox Cloud For WHMCS Module."></meta>
 
  
 
=About [https://www.modulesgarden.com/products/whmcs/proxmox-cloud Proxmox Cloud For WHMCS]=
 
=About [https://www.modulesgarden.com/products/whmcs/proxmox-cloud Proxmox Cloud For WHMCS]=
 
{|
 
{|
|style="padding: 10px 0px 10px 0px;"|'''Proxmox Cloud For WHMCS''' offers your clients the possibilities to create, remove and freely resize their own virtual servers within resource limits defined by you.
+
|style="padding: 10px 0px 10px 0px;"|'''Proxmox Cloud For WHMCS''' offers your clients the flexibility to create, remove and freely resize their own virtual servers within resource limits defined by you.
With our module your customers will be able to single-handedly create as many servers as they need and manage aspects like backups, network devices or firewall.<br />
+
Your customers will be able to create as many servers as they need, manage such essential aspects like backups or firewall, and access noVNC, SPICE, or Xterm.js console.<br />
This gorgeous product lets you also conveniently manage servers, IP addresses and clusters owing to the unique Proxmox Addon attached to the module.
+
The module supports Cloud-Init for the KVM virtualization type, and features Proxmox Addon allowing you to easily manage servers, IP addresses and clusters.
 
|}
 
|}
 
<!--comments are awesome -->
 
<!--comments are awesome -->
Line 18: Line 17:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Change User Role
+
|style="padding: 0px 0px 0px 30px;"|✔ Change User Role  
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Reset Bandwidth
 
|}
 
|}
 
{|
 
{|
Line 58: Line 60:
 
{|
 
{|
 
|style="padding: 0px 0px 0px 30px;"|✔ Add Additional IP Address To VM
 
|style="padding: 0px 0px 0px 30px;"|✔ Add Additional IP Address To VM
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Enable Qemu Guest Agent (KVM)
 
|}
 
|}
 
{|
 
{|
Line 63: Line 68:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Enable Auto VM Backups Before Reinstallation
+
|style="padding: 0px 0px 0px 30px;"|✔ Enable Auto VM Backups Before Reinstallation
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ Enable Load Balancer
 
|}
 
|}
 
*'''Proxmox Addon Features:'''
 
*'''Proxmox Addon Features:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Display Servers List Per VPS And Cloud
+
|style="padding: 10px 0px 0px 30px;"|✔ Display Servers: List Per VPS And Cloud
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Manage  Public & Private IP Addresses Per Server, VLAN, Tag And Node
+
|style="padding: 0px 0px 0px 45px;"|✔ List Per VPS And Cloud
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Add Additional DHCP Server
+
|style="padding: 0px 0px 0px 45px;"|✔ Clusters List
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Display Servers Clusters
+
|style="padding: 0px 0px 0px 45px;"|✔ VMs List
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Display KVM Templates
+
|style="padding: 0px 0px 0px 45px;"|✔ KVM Templates
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Convert KVM VPS To KVM Template
+
|style="padding: 0px 0px 0px 45px;"|✔ Recovery VM Configurations List With Export To Backup File
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Set Minimum VM ID For Product Without ID Ranges Defined
+
|style="padding: 0px 0px 0px 45px;"|✔ Tasks History
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Synchronize Users Permissions
+
|style="padding: 0px 0px 0px 45px;"|✔ Statuses, Resources Usage, IP Assignments And Details
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Manage  Public & Private IP Addresses Per Server, VLAN, Tag And Node
 
|}
 
|}
 
{|
 
{|
Line 94: Line 105:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Create And Store Full Backup Of VMs Configuration
+
|style="padding: 0px 0px 0px 30px;"|✔ Convert KVM VPS To KVM Template
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ View Tasks History
+
|style="padding: 0px 0px 0px 30px;"|✔ Define VM IDs Ranges Per Server
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Set Minimum VM ID For Product Without ID Ranges Defined
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Configure Resources Weights For Load Balancer Prioritization
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ Synchronize Users Permissions
 +
|}
 +
 
*'''Client Area Features:'''
 
*'''Client Area Features:'''
 
{|
 
{|
Line 104: Line 125:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Boot/Reboot/Stop/Shutdown/Rebuild Server
+
|style="padding: 0px 0px 0px 30px;"|✔ Boot/Reboot/Stop/Shutdown Server
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Reinstall Server Using Templates (KVM) And ISO Images
 
|}
 
|}
 
{|
 
{|
Line 113: Line 137:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Access noVNC And SPICE Console
+
|style="padding: 0px 0px 0px 30px;"|✔ Access noVNC, SPICE And Xterm.js Console
 
|}
 
|}
 
{|
 
{|
Line 123: Line 147:
 
{|
 
{|
 
|style="padding: 0px 0px 0px 30px;"|✔ Manage Backup Jobs Within Defined Limits (Max Number Of Files & Max Size Of Files)
 
|style="padding: 0px 0px 0px 30px;"|✔ Manage Backup Jobs Within Defined Limits (Max Number Of Files & Max Size Of Files)
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View And Edit Public SSH Keys (KVM)
 
|}
 
|}
 
{|
 
{|
Line 140: Line 167:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Create Server Snapshots (KVM)
+
|style="padding: 0px 0px 0px 30px;"|✔ Create Server Snapshots  
 
|}
 
|}
 
{|
 
{|
Line 177: Line 204:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ CPU Weight Limit
+
|style="padding: 0px 0px 0px 45px;"|✔ CPU Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ CPU Units Limit
 
|}
 
|}
 
{|
 
{|
Line 183: Line 213:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Storage Limit
+
|style="padding: 0px 0px 0px 45px;"|✔ SWAP Limit
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Bandwidth Limit
+
|style="padding: 0px 0px 0px 45px;"|✔ Storage Limit
 
|}
 
|}
 
{|
 
{|
Line 193: Line 223:
 
{|
 
{|
 
|style="padding: 0px 0px 0px 45px;"|✔ IPv6 Addresses Limit
 
|style="padding: 0px 0px 0px 45px;"|✔ IPv6 Addresses Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Bandwidth Limit
 
|}
 
|}
 
{|
 
{|
Line 198: Line 231:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 45px;"|✔ Backups Files Limit
+
|style="padding: 0px 0px 0px 45px;"|✔ Backups Files Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Private Networks Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ VCPUs Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 45px;"|✔ Network Rate Limit
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 5px 0px 0px 30px;"|✔ '''LXC''':
 
|style="padding: 5px 0px 0px 30px;"|✔ '''LXC''':
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ CPU Sockets Limit
 
|}
 
|}
 
{|
 
{|
Line 207: Line 252:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ CPU Weight Limit
+
|style="padding: 0px 0px 0px 45px;"|✔ CPU Limit
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ SWAP Limit
+
|style="padding: 0px 0px 0px 45px;"|✔ CPU Units Limit
 
|}
 
|}
 
{|
 
{|
Line 216: Line 261:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Storage Limit
+
|style="padding: 0px 0px 0px 45px;"|✔ SWAP Limit
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Bandwidth Limit
+
|style="padding: 0px 0px 0px 45px;"|✔ Storage Limit
 
|}
 
|}
 
{|
 
{|
Line 226: Line 271:
 
{|
 
{|
 
|style="padding: 0px 0px 0px 45px;"|✔ IPv6 Addresses Limit
 
|style="padding: 0px 0px 0px 45px;"|✔ IPv6 Addresses Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Bandwidth Limit
 
|}
 
|}
 
{|
 
{|
Line 231: Line 279:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 45px;"|✔ Backups Files Limit
+
|style="padding: 0px 0px 0px 45px;"|✔ Backups Files Limit
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Private Networks Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ VCPUs Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 45px;"|✔ Network Rate Limit
 +
|}
 +
 
*'''General Info:'''
 
*'''General Info:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Supports PVE And PAM Authentication
+
|style="padding: 10px 0px 0px 30px;"|✔ Supports Cloud-Init (KVM)
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports PVE And PAM Authentication
 
|}
 
|}
 
{|
 
{|
Line 241: Line 302:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With <u>Advanced Billing For WHMCS</u> - Server Resource Usage Billing [http://www.modulesgarden.com/products/whmcs/advanced_billing/features (read more)]
+
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With <u>Advanced Billing For WHMCS</u> - Actual Server Resource Usage Billing [https://www.modulesgarden.com/products/whmcs/advanced-billing (read more)]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With <u>Proxmox Cloud Autoscaling For WHMCS</u> - Automated Servers Resizing [http://www.modulesgarden.com/products/whmcs/proxmox_cloud_autoscaling/features (read more)]
+
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With <u>Proxmox Cloud Autoscaling For WHMCS</u> - Automated Servers Resizing [https://www.modulesgarden.com/products/whmcs/proxmox-cloud-autoscaling (read more)]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With <u>IP Manager For WHMCS</u> - Complete Management of IP Subnets [http://www.modulesgarden.com/products/whmcs/ip_manager/features (read more)]
+
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With <u>IP Manager For WHMCS</u> - Complete Control And Easy Assignment Of IP Subnets [https://www.modulesgarden.com/products/whmcs/ip-manager (read more)]
 
|}
 
|}
 
{|
 
{|
Line 253: Line 314:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports Proxmox VE 4.X
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports Proxmox VE 6.X And Later
 
|}
 
|}
 
{|
 
{|
Line 262: Line 323:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 5.4 Up To PHP 7
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 7.1 Up To PHP 7.4
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Template Six
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Templates Five and Six
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS 7.9 And Later
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 30px;"|✔ Supports WHMCS V6 and V7
+
|style="padding: 0px 0px 30px 30px;"|✔ Easy Module Upgrade To [https://www.modulesgarden.com/products/whmcs/proxmox-cloud#open-source-version Open Source Version]
 
|}
 
|}
  
 
=Installation and Configuration=
 
=Installation and Configuration=
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|'''This tutorial will show you how to successfully install and configure Proxmox Cloud For WHMCS.''' <br />
+
|style="padding: 10px 0px 30px 15px;"|'''This tutorial will show you how to successfully install and configure [https://www.modulesgarden.com/products/whmcs/proxmox-cloud Proxmox Cloud For WHMCS.]''' <br />
 
We will guide you step by step through the whole installation and configuration process.
 
We will guide you step by step through the whole installation and configuration process.
 
|}
 
|}
 
==Installation==
 
==Installation==
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'''1. Log in to your client area and download the module.'''
+
|style="padding: 10px 0px 20px 15px;"|'''1. Log in to our client area and download the module.'''
 
|}
 
|}
 
{|
 
{|
Line 284: Line 348:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''2. Extract the module and upload content of 'UploadOnProxmoxServer' on all Proxmox servers into '/usr/share/novnc-pve/' folder.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''2. In the downloaded file you might find one or two packages that support different PHP versions.'''<br/>
''Note: If you wish to allow noVNC consoles, you need to configure product using PVE realm and user permissions set to 'PVEVMUser'.''
+
In the most recent versions of the module, you will find only one package that supports PHP 7.1 and later.<br/> <!-- If you need a package for the previous versions of PHP, please [https://www.modulesgarden.com/support/ticket/general-support contact our support]. -->
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''3. In the downloaded file you will find two packages that support different PHP versions.'''<br/>As presented on the screen below, the first one is dedicated to PHP 7, while the second one is aimed at PHP 5.4 up to PHP 5.6.<br/>It does not apply to open source versions.<br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:PHP71_74.png]]
'' '''Note''': You can check current PHP version in your WHMCS. To do so proceed to ''' 'Utilities' → 'System' → 'PHP Info'.'''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_2.png]]
+
|style="padding: 0px 0px 15px 15px;"|'''Previous updates of the module may contain two packages dedicated to various PHP versions.'''<br/>
 +
The first one that supports PHP 5.6 up to PHP 7.0, and the second one addressed to PHP 7.1 up to PHP 7.3.<br/>
 +
'''''Note:''' Keep in mind that PHP versions 5.6 up to 7.0 are no longer officially supported and their security issues are not fixed or released any more. Find more info [http://php.net/supported-versions.php here].''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''4. Extract the downloaded file and choose the one with the right PHP version. Upload and extract the PHP file into the main WHMCS directory.'''<br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:PHP56_73.png]]
The content of PHP version files should look like this.  
+
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|<!-- '' '''Important''': This situation does not affect [https://www.modulesgarden.com/products/whmcs/proxmox-cloud#open-source-version '''the open source version'''] of this module which can be applied to any PHP from version 5.6 and later.''<br/>'' --> '''Note''': You can check the current PHP version in your WHMCS. To do so, proceed to ''' 'Utilities' → 'System' → 'PHP Info'.'''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''3. Extract the package and upload its content into the main WHMCS directory.
 +
The content of the package to upload should look like this.
 
|}
 
|}
 
{|
 
{|
Line 302: Line 373:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''5. When you install Proxmox Cloud For WHMCS for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''4. Open '' 'UploadOnProxmoxServer' '' and upload content of the proper version on all Proxmox servers into the '' '/' '' path.'''<br />You should upload these files not only during the first installation of the module, but also each time you update it.<br/>
File is located in '' 'modules/servers/proxmoxCloud/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
+
'''''Note:''' If you wish to allow noVNC consoles, you need to configure a product using the PVE realm and set user permissions to 'PVEVMUser.' '' <br/>
 +
'''''Important:''' Open Folder UploadOnProxmoxServer/5.2-10 and upload content on all your proxmox servers. Scripts must be updated on proxmox server v2.6.0 to allow Xterm.js console work.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''5. When you install Proxmox Cloud For WHMCS for the first time, you have to rename the '' 'license_RENAME.php' '' file.'''<br />
 +
This file is located in '' 'modules/servers/proxmoxCloud/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
 
|}
 
|}
 
{|
 
{|
Line 311: Line 387:
 
|style="padding: 0px 0px 15px 15px;"|'''6. In order to configure your license key, you have to edit a previously renamed '' 'license.php' '' file.'''<br />
 
|style="padding: 0px 0px 15px 15px;"|'''6. In order to configure your license key, you have to edit a previously renamed '' 'license.php' '' file.'''<br />
 
Enter your license key between quotation marks as presented on the following screen.<br />
 
Enter your license key between quotation marks as presented on the following screen.<br />
You can find your license key in your client area → '' 'My Products'. ''
+
You can find your license key in our client area → '' 'My Products'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__4.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''7. In the next step, set up the '' 'storage' '' folder as recursively writable.'''<br />
 +
This folder is available at:
 +
'' your_whmcs/modules/addons/proxmoxAddon/ ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2__4.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_4_1.png]]
 
|}
 
|}
  
Line 320: Line 404:
 
{|
 
{|
 
|style="padding: 10px 0px 15px 15px;"|'''7. Firstly, you should activate Proxmox Addon.''' <br />
 
|style="padding: 10px 0px 15px 15px;"|'''7. Firstly, you should activate Proxmox Addon.''' <br />
To do so, log in into your WHMCS and press '' 'Setup' → 'Addon Modules'. '' Find'' 'Proxmox Addon' ''and press'' 'Activate'. ''
+
To do so, log in into your WHMCS and press '' 'Setup' → 'Addon Modules'. '' Find'' 'Proxmox Addon' ''and press'' 'Activate'. ''<br/><br/>
 +
 
 +
'' '''Note:''' The Proxmox addon version might '''not match''' the current version of the provisioning module itself. This is completely normal due to the specific structure of the product.''
 
|}
 
|}
 
{|
 
{|
Line 326: Line 412:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''8. In the next step you need to permit access to this module.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''8. In the next step, you need to permit access to this module.'''<br />
To do so, click on '' 'Configure' '' button. Tick '' 'Full Administrator' '' and press '' 'Save Changes'. ''
+
To do so, click on the '' 'Configure' '' button. Tick '' 'Full Administrator' '' and press '' 'Save Changes'. ''
 
|}
 
|}
 
{|
 
{|
Line 345: Line 431:
 
Choose '' 'ProxmoxCloud' '' from a dropdown menu and press '' 'Save Changes'. '''''<br />
 
Choose '' 'ProxmoxCloud' '' from a dropdown menu and press '' 'Save Changes'. '''''<br />
 
The last step is choosing authentication from the '' 'Authentication' '' dropdown menu.<br />
 
The last step is choosing authentication from the '' 'Authentication' '' dropdown menu.<br />
''Note: Authentication depends on the realm used by a user on Proxmox server.''
+
''Note: Authentication depends on the realm used by the user on a Proxmox server.''
 
|}
 
|}
 
{|
 
{|
Line 351: Line 437:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''11. After you configure your server correctly, you will see a following screen.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''11. After you have configured your server correctly, you will see the following screen.'''<br />
You can check connection with Proxmox server. To do so, simply press '' 'Test Connection' '' as shown on the screen below.  
+
You can check connection with the Proxmox server. To do so, simply press '' 'Test Connection' '' as shown on the screen below.  
 
|}
 
|}
 
{|
 
{|
Line 372: Line 458:
 
==Configuration of Product==
 
==Configuration of Product==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''14. In order to create and configure a product go to '' 'Setup' → 'Products/Services' → 'Products/Services'. '''''<br />
+
|style="padding: 10px 0px 15px 15px;"|'''14. In order to create and configure a product, go to '' 'Setup' → 'Products/Services' → 'Products/Services'. '''''<br />
 
Click on '' 'Create a New Group'. ''   
 
Click on '' 'Create a New Group'. ''   
 
|}
 
|}
Line 379: Line 465:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''15. Enter product group name and press '' 'Save Changes'. '''''
+
|style="padding: 0px 0px 20px 15px;"|'''15. Enter the product group name and press '' 'Save Changes'. '''''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__13.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_13.png]]
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|'''16. When you have a product group, you are able to create your product.'''<br />
 
|style="padding: 0px 0px 15px 15px;"|'''16. When you have a product group, you are able to create your product.'''<br />
To create a product click on '' 'Create a New Product'. ''
+
To create a product, click on '' 'Create a New Product'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__14.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_14.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''17. Afterwards, choose your product group and type from dropdown menus, enter your product name and press '' 'Continue'. '''''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''17. Afterward, choose your product group from dropdown menus and poinmt its type, enter your product name and choiose Proxmoix VPS as a module name. <br/> Press '' 'Continue'. '''''<br />
'' 'Product Type' '' can be set to '' 'Dedicated/VPS Server' '' but nameservers will have to be added later.<br/>
+
'' 'Product Type' '' can be set to '' 'Server/VPS' '' but nameservers will need to be added later.<br/>
If you do not want to be forced to fill out nameservrs, please select here '' 'Hosting Account'. ''
+
If you do not want to fill out nameservers, please select '' 'Shared Account' ''.
 
|}
 
|}
 
{|
 
{|
Line 400: Line 486:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''18. Now, go to '' 'Module Settings' '' section, choose both '' 'ProxmoxCloud' '' and your previously created server group from dropdown menus.<br />
+
|style="padding: 0px 0px 15px 15px;"|'''18. Now, go to the '' 'Module Settings' '' section and choose your previously created server group from the dropdown menu.<br />
 
Next, click on '' 'Save Changes'. '''''
 
Next, click on '' 'Save Changes'. '''''
 
|}
 
|}
Line 407: Line 493:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''19. From dropdown menus choose '' 'Virtualization Type', 'Default Node', 'Template & ISO Storage' '' and '' 'User Permission'. ''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''19. Choose '' 'Virtualization Type', 'Default Node', 'Template & ISO Storage' '' and '' 'User Permission' from dropdown menus. ''<br />
 
Available virtualization types:<br/>
 
Available virtualization types:<br/>
'''KVM'''<br/>
+
*'''KVM'''<br/>
'''LXC''' ''(supported by Proxmox VE 4.0 and later)''<br/>
+
*'''LXC''' <br/>
'''OpenVZ''' ''(supported by Proxmox VE 3.4 and earlier, prior to Proxmox v2.3.0)''<br/>
+
You can also choose how often the bandwidth usage should be calculated.<br />
You can also choose how often bandwidth usage should be counted.<br />
+
 
Afterwards, press '' 'Save Changes'. ''<br />
 
Afterwards, press '' 'Save Changes'. ''<br />
''Note: If you choose 'Auto-Node' as 'Default Note', new virtual servers will be created on the least used node.''
+
'''''Note:''' If you choose 'Auto-Node' as 'Default Node', new virtual servers will be created on the least used node.''<br/>
 +
'''''Note 2:''' An advanced tool is available for you to automatically manage a node selection with the best count of resources. Read more about Load Balancer.''
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__17.png]]
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__17.png]]
 
|}
 
|}
 +
===KVM Virtualization Type===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''20. Setting of KVM virtualization type (skip, if you have chosen LXC virtualization type).'''<br/>
+
|style="padding: 0px 0px 15px 15px;"|'''20. Setting of the KVM virtualization type (skip this step if you have chosen the LXC virtualization type).'''<br/>
From dropdown menus choose '' 'KVM OS Type', 'Default Storage', 'Disk Type' '' and '' 'CD/DVD-ROM Type'. ''<br />
+
From dropdown menus, choose '' 'KVM OS Type', 'Default Storage', 'Disk Type' '' and '' 'CD/DVD-ROM Type'. ''<br />
 
Choose ISO images available for your clients by marking them in '' 'ISO Image'. ''<br/><br/>
 
Choose ISO images available for your clients by marking them in '' 'ISO Image'. ''<br/><br/>
Set network through selecting from '' 'Network Mode', 'Network Model', '' and '' 'Bridge' '' dropdown menus.<br />
+
Set the network through selecting from the '' 'Network Mode', 'Network Model', '' and '' 'Bridge' '' dropdown menus.<br />
If you are going to allow your clients to manage their private networks, you must select '' 'Private Bridge' '' and set up VLAN TAG Range.<br/>
+
If you are going to allow your clients to manage their private networks, you have to select '' 'Private Bridge' '' and set up VLAN TAG Range.<br/>
Type your VM description in '' 'Container Description', '' set backup location in '' 'Storage' '' dropdown menu and click '' 'Save Changes'. ''<br/>
+
Type in your VM description in '' 'Container Description', '' set the backup location in the '' 'Storage' '' dropdown menu and click '' 'Save Changes'. ''<br/>
Here you may also decide whether you wish to use DHCP software to automatically assign IP addresses, simply select option 'ISC DHCP Server'.<br/> Read more about its installation [http://www.docs.modulesgarden.com/Proxmox_Cloud_For_WHMCS#Automatic_IP_Address_Assignment here].  
+
'''Important: Keep in mind that the root password is generated automatically for KVM virtualization upon its creation and reset.'''<br />
 +
'''If you want to set your own password on KVM virtualization, use the [[#Cloud-Init_.28KVM.29|Cloud-Init]] option.''
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__18.png]]
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__18.png]]
 
|}
 
|}
 +
 +
===LXC Virtualization Type===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''21. Setting of LXC virtualization type (skip, if you have chosen KVM virtualization type).'''<br/>
+
|style="padding: 0px 0px 15px 15px;"|'''21. Setting of the LXC virtualization type (skip this step if you have chosen the KVM virtualization type).'''<br/>
From dropdown menus choose '' 'Default Storage', 'Template' '' and '' 'Bridge'. ''<br />
+
From dropdown menus, choose '' 'Default Storage', 'Template' '' and '' 'Bridge'. ''<br />
Enter your virtual servers description in '' 'Container Description' '' and press '' 'Save Changes'. ''<br/><br/>
+
Enter your virtual server description in '' 'Container Description' '' and press '' 'Save Changes'. ''<br/><br/>
 
'''Remember! This virtualization type is supported only by Proxmox VE 4.0. and later.'''<br/>
 
'''Remember! This virtualization type is supported only by Proxmox VE 4.0. and later.'''<br/>
If you are using older version of Proxmox server, you will not be able to start this virtualization.
+
If you are using the previous version of a Proxmox server, you will not be able to start this virtualization.
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__18_1.png]]
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__18_1.png]]
 
|}
 
|}
 +
 +
<!--
 +
===OpenVZ Virtualization Type===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''22. Setting OpenVZ virtualization type (skip, if you have chosen KVM virtualization type).'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''22. Setting of the OpenVZ virtualization type (skip this step if you have chosen the KVM virtualization type).'''<br />
''Please note that only versions of Proxmox prior to v.2.3.0 support OpenVZ virtualization.''<br/>
+
''Please note that only Proxmox versions prior to v.2.3.0 support OpenVZ virtualization.''<br/>
  
From dropdown menus choose '' 'OpenVZ OS Templates', 'Default Storage', 'Network Mode' '' and '' 'Bridge'. ''<br />
+
From dropdown menus, choose '' 'OpenVZ OS Templates', 'Default Storage', 'Network Mode' '' and '' 'Bridge'. ''<br />
Type in your virtual servers description in '' 'Container Description' '' and press '' 'Save Changes'. ''<br/><br/>
+
Type in your virtual server description in '' 'Container Description' '' and press '' 'Save Changes'. ''<br/><br/>
'''Remember! This virtualization type is supported only by Proxmox VE 3.4. and earlier.'''<br/>
+
'''Remember! This virtualization type is supported only by Proxmox VE 3.4 and previous.'''<br/>
If you are using the latest version of Proxmox server, you will not be able to start this virtualization.
+
If you are using the latest version of a Proxmox server, you will not be able to start this virtualization.
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__19.png]]
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__19.png]]
 
|}
 
|}
 +
-->
 +
 +
===Finalizing The Configuration===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''23. Private Network Management - to allow clients manage their private networks please set up '' 'Network Device' '' section properly.<br/>
+
|style="padding: 0px 0px 15px 15px;"|'''23. Private Network Management - in order to allow clients to manage their private networks, set up the '' 'Network Device' '' section properly.<br/>
 
*Select '' 'Private Bridge' ''
 
*Select '' 'Private Bridge' ''
 
*Select '' 'Private Network Model' ''
 
*Select '' 'Private Network Model' ''
 
*Enter ranges for VLAN TAG<br/>
 
*Enter ranges for VLAN TAG<br/>
''Info: Configure these three options for KVM and LXC virtualization.''<br/>
+
'''''Note:''' Configure these three options for the KVM and LXC virtualization.''<br/>
If you skip this step, clients will not me allowed to add private networks.<br/>
+
If you skip this step, clients will not be allowed to add private networks.<br/>
 
|}
 
|}
 
{|
 
{|
Line 465: Line 561:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''24. The next step is setting up configuration of backups.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''24. The next step is setting up the configuration of backups.'''<br />
Define backup settings in '' 'Backups' '' section through selecting values from '' 'Storage' '' and '' 'Backups Routing' '' dropdown menus.<br />
+
Define backup settings in the '' 'Backups' '' section through selecting values from the '' 'Storage' '' and '' 'Backups Routing' '' dropdown menus.<br />
Backups routing automatically removes the oldest backup when a new backup is created and a backup limit is reached.<br />
+
Backups routing automatically removes the oldest backup when a new backup is created and the established backup limit is reached.<br />
Additionally, you can limit the time period for storing backups by providing the number of days into '' 'Store The Backup For N Days' '' field.<br />
+
Additionally, you can limit the time period for storing backups by providing the number of days into the '' 'Store The Backup For N Days' '' field.<br />
Furthermore, you can define firewall rules limit and interface to apply rules to.<br />
+
Furthermore, you can define the limit of firewall rules and the interface to apply the rules to.<br />
Finish configuration at '' 'Module Settings' '' tab through pressing '' 'Save Changes'. ''<br />
+
Finish the configuration in the '' 'Module Settings' '' tab through pressing '' 'Save Changes'. ''
'''Important: Keep in mind that the root password is generated automatically for KVM virtualization upon its creation and reset.'''<br />
+
'''There is no possibility to set your own password due to Proxmox API limitations to KVM virtualization. '''
+
 
|}
 
|}
 
{|
 
{|
Line 484: Line 578:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''26. The final step is generating custom fields and deciding whether to set up product with static or configurable resources.<br />
+
|style="padding: 0px 0px 15px 15px;"|'''26. The final step is generating custom fields and deciding whether to set up the product with static or configurable resources.<br />
 
Press '' 'Generate default' '' next to '' 'Custom Fields'. ''<br />
 
Press '' 'Generate default' '' next to '' 'Custom Fields'. ''<br />
'''Static Resources:''' Fill in the fields in '' 'Default Configuration' '' section with desired values.<br />
+
'''Static Resources:''' Fill in the fields in located in the '' 'Default Configuration' '' section with desired values.<br />
 
'''Configurable Resources:''' Click on '' 'Generate Default' '' next to '' 'Configurable Options'. ''<br />
 
'''Configurable Resources:''' Click on '' 'Generate Default' '' next to '' 'Configurable Options'. ''<br />
 
Press '' 'Save Changes' '' at the bottom of the page.<br/>
 
Press '' 'Save Changes' '' at the bottom of the page.<br/>
'' Note that while generating 'Configurable Options' it is advisable to delete the ones you do not use, e.g. for KVM virtualization delete swap option or IPv6.''
+
''''' Note:''' While generating 'Configurable Options', it is advisable to delete the ones you do not use, e.g. the swap option or IPv6 for the KVM virtualization.''
 
|}
 
|}
 
{|
 
{|
Line 495: Line 589:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''27. In the end of the product configuration you have to add cron job that is shown below (5 minutes interval suggested).
+
|style="padding: 0px 0px 20px 15px;"|'''27. In the end of the product configuration, you have to add a cron job that is shown below (5 minutes interval suggested).
 
  php -q /your_whmcs/modules/servers/proxmoxCloud/cron/cron.php
 
  php -q /your_whmcs/modules/servers/proxmoxCloud/cron/cron.php
 
Do not forget to replace '' 'your_whmcs' '' with your WHMCS root location.
 
Do not forget to replace '' 'your_whmcs' '' with your WHMCS root location.
Line 505: Line 599:
 
==Configuration of Addon==
 
==Configuration of Addon==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''28. Add a new IP address.'''<br />
+
|style="padding: 10px 0px 15px 15px;"|'''26. Proceed to '' 'Addons' '' → '' 'Proxmox Addon' '' → '' 'Settings' '' → '' 'General Settings' '' and set up cron jobs listed under the '' 'Cron' '' section.<br/>
In order to create a new product you have to add a dedicated IP pool to '' 'IP Addresses' '' list in '' 'Proxmox' '' addon module.<br />
+
Please note that there are separate cron jobs dedicated to Proxmox VPS and Proxmox Cloud modules - these jobs are the most important to assure fluent work of the modules, suggested frequency is 5 minutes.<br/> If you are using only Proxmox VPS, there is no need to set up the second one and the other way round.<br/>
To do so, go to '' 'Addons' '' → '' 'Proxmox Addon' '' → '' 'IP Management' '' and press '' 'New IP Addresses'. ''<br />
+
The other ones are responsible for:
''Note: You can add both IPv4 and IPv6 addresses.''
+
* Users synchronization - ''run only once''
 +
* VM recovery synchronization - ''optionally run every 24 hours''
 +
* VM migration synchronization - ''optionally run every 24 hours or just after the VM migration''
 +
* Tasks synchronization - ''optionally run every one hour''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2_35.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''27. Next, under the Cron settings, find the '' 'Minimum VMID' '' field.'''<br/> Fill it in with a number that will be used as an ID of the first VM, the second VM will be asigned the next ID number.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__35_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''28. Adding a new IP address (if you are not using [https://www.modulesgarden.com/products/whmcs/ip-manager#features IP Manager For WHMCS]).'''<br />
 +
In order to create a new product, you have to add '' 'Dedicated IP'' ' to the '' 'IP Addresses' '' list in '' 'Proxmox' '' addon module.<br />
 +
To do so, go to '' 'IP Management' '' and press '' 'New IP Addresses'. ''<br />
 +
'''''Note:''' You can add both the IPv4 and IPv6 addresses.''
 
|}
 
|}
 
{|
 
{|
Line 514: Line 626:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''29. Type in the desired IP and mask in '' 'IP Pool' '' and choose server from '' 'Server' '' dropdown menu.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''29. Start by typing a desired IP address and mask into '' 'IP Pool'. '''''<br />
Select '' 'Private Address' '' if added address is such, clients will be allowed then to manage their private network - add, remove and configure.<br/> Afterwards, press '' 'Add'. ''<br/>
+
Next, choose a server from the '' 'Server' '' dropdown menu and define which virtualization it should be applied to through selecting it from the '' 'Virtualization' '' dropdown menu.<br />
''Note! Automatic IP assignment works only for OpenVZ/LXC machines.''<br/>
+
Afterward, press '' 'Confirm'. ''
''In case of KVM virtualization IP addresses must be manually added to the pool in Proxmox addon or IP Manager to allow their automatic assignment!''<br/>
+
'''Important:''' Private IP addresses are not downloaded for IP Manager module.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__23.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PX2__23.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''30. You are now able to create new virtual machines at product.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''30. You are now able to create new virtual machines at the product.'''<br />
If you used KVM virtualization type, the client area of successfully created product should look similar to the one on the screen below.
+
If you used the KVM virtualization type, the client area of a successfully created product should look similar to the one presented on the screen below.
 
|}
 
|}
 
{|
 
{|
Line 531: Line 641:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''31. The client area of product using LXC virtualization type looks quite similar.'''
+
|style="padding: 0px 0px 20px 15px;"|'''31. The client area of a product using the LXC virtualization type looks quite similar.'''
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__25.png]]
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__25.png]]
 
|}
 
|}
 +
<!--
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''32. This is how an exemplary product's details look like in admin area.'''<br/>
+
|style="padding: 0px 0px 20px 15px;"|'''32. This is how an exemplary product details look like in the admin area.'''<br/>
 
Allowed actions:
 
Allowed actions:
 
*Create
 
*Create
Line 547: Line 658:
 
{|
 
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2__25_1.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2__25_1.png]]
 +
|}
 +
-->
 +
<!--
 +
==Configuration of SSH Keys (KVM)==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|<span style="color:#ff0000"> '' '''Important!''' Since the 2.5.0 version of the module, if you are using Proxmox VE 5.2 or later, we highly recommended using the [[#Cloud-Init_.28KVM.29|Cloud-Init]] feature instead of following instructions described in this section.''</span>
 +
<br/>
 +
'''SSH keys are required to enable the automatic resizing of a partition upon the disk upgrade as well as the change of passwords for the KVM virtualization type.'''<br />
 +
'' '''Note''' - 'Resize Partition', and 'Change Root Password' will only work for '''newly created VMs with ISC DHCP and Internet access configuration'''.<br/>We recommend using this option only for new products.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2_65.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''33. First, create a new [https://pve.proxmox.com/wiki/VM_Templates_and_Clones VM Template] that you will use for the KVM image.'''<br />
 +
Then, generate SSH keys and add the ''' public key '''to the root account on the newly created VM image. Moreover, upload both (''' public ''' and ''' private ''') keys on your WHMCS server in a secure location.<br />
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2_66.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|'''34. Next, while in your WHMCS, go to the '' 'Proxmox Addon' '' → '' 'Settings' '' → '' 'SSH Keys' '' and press '' 'Add' '' button.'''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2_67.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|'''35. Enter the name and location to the key pairs located on your WHMCS server.'''<br/>
 +
Optionally, you can add a passphrase to increase security.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_64.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''36. Next, go back to the product configuration and, in ' ''KVM Configuration' '' → '' 'VM SSH Root Key' '', select the pair of keys you want to use. '''<br /> Enter the SSH communication port and select the preferred features.<br />Make sure '''they match''' the '' 'KVM OS Template' '' that will be used.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2_69.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''37. Now, the '' 'Resize Partition' '', '' 'Change Root Password' '' and '' 'Delete VM SSH Root Key' '' options should be available.'''
 +
* ''' Resize Partition ''' - if a customer upgrades a VM by changing the disk size to a larger one, the size of the last partition in that disk will be automatically increased by the newly added value. <br /> The feature deletes a current partition table, then creates a new one, according to a new disk size, and reboots the VM. <br/>These partition types have to be standard, e.g. '' 'Linux Extended' (Ext2/Ext3/Ext4...), 'Linux SWAP' '', '' 'Solaris' '' or '' 'LVM' ''.<br/>'''Important - in case of any failure, all data available on the resized partition might be lost!''' ''
 +
* ''' Change Root Password ''' - this option is responsible for the automatic reset of the password after the VM creation. It also allows users to generate a new root password while using the VM.
 +
* ''' Delete VM SSH Root Key ''' - it will automatically remove the default SSH key after the VM creation. Use this component to increase security or leave unchecked for resizing partition feature.<br/>'' '''Important''' - if a customer decides to remove the public key from the VM on their own or the 'Delete VM SSH Root Key' is enabled, it will make the 'Resize Partition' and 'Change Root Password' options no longer working!''
 +
<br />
 +
From now on, clients will be able to set their own password for newly created VMs.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2_70.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|The partition will be also automatically resized during the VM upgrade if a disk size is different than the one set as default in the template.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2_71.png]]
 +
|}
 +
-->
 +
 +
==Cloud-Init (KVM)==
 +
{|
 +
|style="padding: 10px 0px 30px 15px;"|Use Cloud-Init to configure the system during installation, first-boot and package change.<br/>Cloud-Init was initially developed to provide early initialization of cloud instances.<br/>Click [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_atomic_host/7/html/installation_and_configuration_guide/setting_up_cloud_init here] to learn more about Cloud-Init configuration.<br/>
 +
 +
|} <!-- Na razie bez tej notki and requires CloudInit version '''17.1 or later'''.'' -->
 +
<!--
 +
===Scripts Configurations===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|In the '' 'Settings'  '' -> '' 'Cloud Init' '' section you will find your scripts configurations which are built by default by accessing the addon configuration.<br/><br/>
 +
'' '''Important:''' These are only '''exemplary''' configuration scripts and may '''not''' work on your Proxmox server configuration!<br/>Before using, please first adjust them to your needs and make sure they are configured correctly.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_49.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|You can also add your own configuration or edit existing ones by pressing corresponding buttons.<br/>
 +
[http://cloudinit.readthedocs.io/en/latest/topics/examples.html Here] you can find some cloud config examples.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_50.png]]
 +
|}
 +
-->
 +
 +
===Configuration Of Product===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|To to allow you clients to use cloud-init you need to enable it in the Proxmox product configuration.<br/>
 +
Before you start we recommend to learn the details about cloud-init configuration on your Proxmox server - click [https://pve.proxmox.com/wiki/Cloud-Init_Support here] for more details.<br/>
 +
Once you get familiar with Proxmox cloud-init proceed to Cloud-Init group of your KVM configuration where you can enable it and set the following:
 +
*'''Allow To Set Username''' - if enabled the client can set its own username during VM creation. Otherwise it will remain unchanged and be set by default as in the template or set from the '' 'Default User' '' field if provided.
 +
*'''Allow To Set Password''' - if enabled the client can set its own password during VM creation Otherwise it will remain unchanged and be set by default as in the template.
 +
*'''Allow To Set SSH Public Key''' - if enabled the client can upload its own public SSH key in OpenSSH format during VM creation. This will then allow client to log in to VM using their private key instead of password.
 +
*'''Default User''' - provide the username that will be used for VM instead of using the '' 'Service Username' '' field or image's configured default user. Otherwise leave empty.
 +
*'''Allow To Set DNS Domain''' - if enabled the client can provide its own DNS domain for a container. During VM creation, the provided setting will be automatically used if neither a search domain nor a nameserver is set.
 +
*'''Allow To Set Nameservers''' - if enabled the client can set its own nameservers for the VM. Otherwise they will remain unchanged and be set by default as in the template.
 +
<!--
 +
*'''Cloud Init'''  -  select what scripts will be executed on VM create or change package. If you are using the configurable options you can also define the '' 'cloudInit|Cloud Init' '' option (Proxmox VPS only).<br/>'' '''Important:''' If you use multiple scripts configuration of the same type (e.g. 'Network Config'), remember that they will be connected into '''one script''' before sent to the server.<br/>Therefore, make sure that these scrips can work properly with each other.''
 +
*'''CD/DVD-ROM Type''' - an additional CD-ROM in which the ISO image is mounted with a ready-to-use script for the VM
 +
*'''Storage''' - the directory on which the CD-ROM ISO image is stored
 +
-->
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2_51_new.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|This is how the above settings will look like in the client area during VM creation.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2_55.png]]
 +
|}
 +
<!--
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Please also note the server configuration for that product must use the '' 'root' '' account and '' 'Linux PAM standard authentication' ''.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_52.png]]
 +
|}
 +
-->
 +
 +
===Configuration Of Proxmox Server===
 +
<!--
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|1. 'genisoimage' is required for cloud-init to be installed on your '''Proxmox server'''. To install it execute the in terminal:
 +
apt-get update &&  apt-get install genisoimage
 +
Otherwise you will get '' 'genisoimage: command not found' '' error.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|2. To make KVM virtual machine ready for could-init on a Proxmox server do the following:
 +
*Download and install system ISO image, e.g. [https://www.ubuntu.com/download/alternative-downloads Ubuntu]
 +
*Install cloud-init by executing in the terminal: <pre>apt-get install cloud-init</pre>
 +
*Or module requires cloud-init version '' '''17.1 or higher''' ''. After installation you can validate it version using <pre>cloud-init -v</pre>
 +
*Shutdown the machine and [http://git.mglocal/whmcs-products/Proxmox/uploads/994fd04f9a2a5cf03533c24aacfef0fc/image.png convert it to template.]
 +
*Finally from the product configuration or configurable options chose the created '' 'VM Template' ''.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_57.png]]
 +
|}
 +
-->
 +
{|
 +
|style="padding: 10px 0px 30px 15px;"|The process of setting up Cloud-Init on the Proxmox server is described [https://pve.proxmox.com/wiki/Cloud-Init_Support here].<br/>
 +
Additionally you can use the following commands that can be useful for debugging.
 +
*Re-run cloud init scripts
 +
<pre>rm -rf /var/lib/cloud/sem/* /var/lib/cloud/instance /var/lib/cloud/instances/* &&
 +
cloud-init init  &&
 +
cloud-init modules -m final</pre>
 +
*Logs
 +
<pre>cat /var/log/cloud-init.log
 +
cat /var/log/cloud-init-output.log</pre>
 +
<!--
 +
*If you need more information about cloud-init installation you can follow [https://support.telefonicaopencloud.com/en-us/usermanual/ims/en-us_topic_0030730603.html#EN-US_TOPIC_0030730603__li38478451154018 this guide.]
 +
-->
 
|}
 
|}
  
 
=Management=
 
=Management=
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|''' Proxmox Cloud For WHMCS allows your customers to manage their PVE servers via client area in your WHMCS system.'''<br />
+
|style="padding: 10px 0px 15px 15px;"|''' Proxmox Cloud For WHMCS allows your customers to manage their PVE servers in the WHMCS client area.'''<br />
You can monitor and manage each product from your WHMCS admin area.<br />
+
At the same time, you can monitor and handle each product from your WHMCS admin area.<br />
To view VM details(1), migrate VM(2), update VMs node(3) or delete VM(4) press a specific button.<br />
+
To view VM details(1), migrate VM(2), update VMs node(3) or delete VM(4), press a specific button.<br />
To view details of virtual server created by your client simply press '' 'Load Status' '' button.
+
To view details of a virtual server created by your client, simply press the '' 'Load Status' '' button.
 
|}
 
|}
 
{|
 
{|
Line 560: Line 819:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|On the following screen you can see loaded details of the VM as well as opened migration popup.<br />
+
|style="padding: 0px 0px 15px 15px;"|On the following screen, you can see loaded details of the VM as well as opened migration popup.<br />
Migration is useful when you want to request migration from the WHMCS admin area, while editing node is useful for updating details after migrating VM from Proxmox panel.
+
Migration is useful when you want to request migration from the WHMCS admin area, while editing node is practical for updating details after migrating the virtual machine from the Proxmox panel.
 
|}
 
|}
 
{|
 
{|
Line 568: Line 827:
 
==Management of Addon==
 
==Management of Addon==
 
===Servers Management===
 
===Servers Management===
====Server List====
+
====Servers List====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In '' 'Addons' '' → '' 'Proxmox Addon' '' → '' 'Servers' '' → '' 'Servers List' '' you can find configured Proxmox servers.<br />
+
|style="padding: 10px 0px 15px 15px;"|In '' 'Addons' '' → '' 'Proxmox Addon' '' → '' 'Servers' '' → '' 'Servers List' '' you can find the configured Proxmox servers.<br />
 
'''RAM''' details:
 
'''RAM''' details:
 
:Assigned - RAM assigned to the server (hosting services only)
 
:Assigned - RAM assigned to the server (hosting services only)
:Total - full RAM on server
+
:Total - full server RAM
:Free - difference between Server Total RAM and RAM Assigned
+
:Free - difference between Total Server RAM and Assigned RAM
'''Suspended''' - number of suspended accounts per their size in MB<br/> ''i.e. (1/500 MB) when there is only one suspended account (size: 500MB of that account) assigned to Proxmox server VPS.''<br/>
+
'''Suspended''' - number of suspended accounts per size in MB ''E.g.: (1/500 MB) when there is only one suspended account (occupying 500MB of that account) assigned to Proxmox VPS server.''
You can quickly define VM ID ranges for those servers, press '' 'Manage' '' to do so.<br />
+
''Note: VM ID range allows you to sort VMs created depending on server they were created from.
+
 
|}
 
|}
 
{|
 
{|
Line 583: Line 840:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Define ID range and save changes.
+
|style="padding: 0px 0px 30px 15px;"|Through pressing '' 'Edit' '' icon you will be moved to the server edit page - see point number 10 of [[#Configuration of Server|Server Configuration]].<br/>
 +
Press '' 'More Details' '' icon and you will get extended information on the selected server. See below for more details.
 +
|}
 +
=====VMs=====
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"| The '' 'VMs' '' tab includes a list of created virtual machines on this server. Take a quick look at information on domain, status, bandwidth and IP addresses.<br/>
 +
To view information about a VM, simply press the more info icon.
 
|}
 
|}
 
{|
 
{|
Line 589: Line 852:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|Through pressing '' 'Edit' '' you will be moved to server edit page.
+
|style="padding: 0px 0px 20px 15px;"|Check the node and VMID:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_29_1.png]]
 +
|}
 +
 
 +
=====Clusters=====
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"| The next tab contains the list of clusters with information on uptime, CPU as well as CPU, SWAP, memory and disk usage data.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_29_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Press the Edit icon to manage the node:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_29_3.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Press '' 'Node Details' '' and you will get all the summary and usage graphs:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_30_2.png]]
 +
|}
 +
 
 +
=====VM Cleaner=====
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"|VM Cleaner allows you to track VMs existing only on your Proxmox server and that are not visible in your WHMCS.<br/> Consequently, you are allowed to sort and delete only those VMs that cannot be managed from your WHMCS.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_31_1.png]]
 +
|}
 +
 
 +
=====Templates=====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Under this page you can view the list of templates. You can easily convert any '''KVM''' VM on your server to a template.<br />
 +
In order to convert a VM, press '' 'Create Template' '' button.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_31_3.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Next, choose a VM to convert.<br />
 +
Fill out '' 'Description' '' field and press '' 'confirm'. ''<br/>
 +
'''Important: Selected VM will be destroyed in the process.'''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_31_4.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|You may also delete unused templates here. Delete single templates or use the mass action to delete templates in bulk.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_31_2.png]]
 +
|}
 +
 
 +
=====Settings=====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Here you can define the VM IDs range that will be used for newly created VMs on this server. Please note that to use this feature, you also need to enable the "Use VM Ranges" setting in the product configuration.<br />Define ID range and save changes. <br/>
 +
'''''Note:''' VM ID range allows you to sort created VMs depending on the server they were created on.''.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_34.png]]
 
|}
 
|}
  
 
====VMs List====
 
====VMs List====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In '' 'Addons' '' → '' 'Proxmox Addon' '' → '' 'Servers' '' → '' 'VMs List' '' you can find details on any proxmox product.<br />
+
|style="padding: 10px 0px 15px 15px;"|In '' 'Addons' '' → '' 'Proxmox Addon' '' → '' 'Servers' '' → '' 'VMs List' '' you can find details of any Proxmox product.<br />
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_28_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_35.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Use '' 'Toggle Filters' '' button to find entries you are interested in the most.
+
|style="padding: 0px 0px 20px 15px;"|Press '' 'More Details' '' button to get the node and VMID information.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_28_2.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_35_1.png]]
 
|}
 
|}
  
 
====Recovery VM Lists====
 
====Recovery VM Lists====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In '' 'Addons' '' → '' 'Proxmox Addon' '' → '' 'Servers' '' → '' 'recovery VM List' '' you can find configured Proxmox servers.<br />
+
|style="padding: 10px 0px 15px 15px;"|In '' 'Addons' '' → '' 'Proxmox Addon' '' → '' 'Servers' '' → '' 'Recovery VM List' '' you can details on the created VM. <br />
Run '' 'recovery cron job' '' to create and store full backups of VMs configuration.<br/>
+
Run the '' 'VM recovery synchronization' '' cron job to create and store full backups of VMs configuration, you can find it at point no 26 of the [[#Configuration of Addon|configuration]] instructions.<br/>
Use '' 'Export to File' '' button to save information of the cron execution.
+
Use the '' 'Export to File' '' button to save information in a TXT copy file.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_36.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|On pressing the '' 'Details' '' icon, you will get any information on Configuration, Status and DNS:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 25px;"|[[File:PX2_36_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 25px;"|[[File:PX2_36_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_36_3.png]]
 +
|}
 +
 
 +
====Tasks History====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Tasks History includes a list o all module tasks with the most crucial details on them.<br/> You may delete single tasks or use mass action button to remove them in bulk.<br/>
 +
 
 +
Run the '' 'Tasks synchronization' '' cron job to synchronize the tasks and view all tasks from the server, you can find it at point no 26 of the [[#Configuration of Addon|configuration]] instructions.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_28_3.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_37.png]]
 
|}
 
|}
  
 
===IP Management===
 
===IP Management===
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|At '' 'IP Management' '' tab you can add, edit and remove IP addresses of Proxmox products.  
+
|style="padding: 10px 0px 15px 15px;"|In the '' 'IP Management' '' tab you can manage the IP addresses of Proxmox products.<br/> You can create both single IP addresses and IP pools which then can be assigned to created VMs.
 
|}
 
|}
 
{|
 
{|
Line 624: Line 972:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 15px;"|Fill out the required fields. Here you may also define private IP addresses. Simply mark adequate field. <br/>
+
|style="padding: 0px 0px 15px 15px;"|When you are creating a new IP address or a pool, you may define:
Only if some private IP addresses are added then clients may manage they private networks and assign IP addresses to VM.
+
*private/public address
 +
*servers or nodes that will use them
 +
*virtualization types ''(different VMs will use different IP pools)''
 
|}
 
|}
 
{|
 
{|
Line 631: Line 981:
 
|}
 
|}
  
===Clusters===
+
===IP Manager Integration===
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'' 'Clusters' '' tab contains the list of clusters. To view information about a cluster simply press its name.  
+
|style="padding: 10px 0px 15px 15px;"|Owing to the integration with [https://www.modulesgarden.com/products/whmcs/ip_manager/features IP Manager For WHMCS], you are able to easily create subnets with IP addresses and assign them to the desired products.<br/>
 +
By activating the IP Manager submodule, settings concerning IP addresses such as 'Configurable Options' and 'Default Options' will be ignored by Proxmox VPS.<br/>
 +
'' '''Note:''' This integration works for '''LXC''' and '''KVM''' virtualization types.''
 +
<br/><br/>
 +
1. Proceed to the IP Manager For WHMCS → [https://www.docs.modulesgarden.com/IP_Manager_For_WHMCS#Subnets Subnets] tab in order to prepare IP addresses subnet for Proxmox VPS For WHMCS.<br/>
 +
2. Edit the previously created IP addresses subnet and create a custom field '' 'MAC Address' '' with a desired MAC address at each IP address in the subnet.<br/>
 +
''' ''Note:'' Setting up MAC address is optional and can be skipped.'''<br/>
 +
More details about creating custom fields can be found [https://www.docs.modulesgarden.com/IP_Manager_For_WHMCS#Default_Custom_Fields here].
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_31.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PX_49.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Here you can find various information about a cluster, from available resource to usage graphs.
+
|style="padding: 0px 0px 15px 15px;"|3. Afterward, create a [https://www.docs.modulesgarden.com/IP_Manager_For_WHMCS#Automatic_IP_Assignment new configuration] and assign the previously created subnet to it.<br />
 +
''Note: Multiple IP addresses subnets can be assigned to a single configuration.''<br />
 +
4. Now, link the configuration with Proxmox VPS product via a product, a server or a configurable option.<br />
 +
On the following screen we have linked them via the configurable option assigned to the Proxmox VPS product.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_32.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PX_50.png]]
 
|}
 
|}
===Templates List===
 
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|Under this page you can view the list of templates. You may also delete unused templates here.
+
|style="padding: 0px 0px 15px 15px;"|5. Now, enable the integration by proceeding to the '' '3rd Party Integration' '' tab.<br />
 +
Press '' 'Activate' '' next to the '' 'proxmoxVPS' '' module type as shown on the following screen.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_32_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PX_51.png]]
 
|}
 
|}
 
===Create Templates===
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|You can easily convert any VM on your server to a template.<br />
+
|style="padding: 0px 0px 15px 15px;"|6. Next, assign the previously created configuration to the submodule.<br />
In order to convert VM, go to '' 'Proxmox Addon' '' → '' 'Templates' '' → '' 'Create Template'. ''<br />
+
Press '' 'Configure' '', choose a configuration and press '' 'Save Changes'. ''
Choose server on which VM to convert exists and press '' 'Next Step'. ''<br />
+
'''Important: VM will be destroyed in the process.'''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_33.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PX_52.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Next, choose node and VM to convert.<br />
+
|style="padding: 0px 0px 15px 15px;"|If you encounter an error like the one on the below screen while integrating the two products, probably the function '' 'mb_strlen' '' is not enabled by default.<br/> Please read the  manual [http://www.php.net/manual/en/mbstring.installation.php here] for installation instructions.
Fill in '' 'Template Friendly Name' '' and press '' 'Save Changes'. ''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_34.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PX_52_1.png]]
 
|}
 
|}
===General Settings===
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'' 'Minimal VMID' '' allows you to define minimal ID of VM created from server, which does not have VMID range defined.<br />
+
|style="padding: 0px 0px 15px 15px;"|It is possible to add a '''VLAN Tag Custom Filed''' in the very same way as the MAC Address field.<br/>
Cron job user synchronization - if you change user role in the product settings, this cron job changes the roles of existing users.<br/>
+
Look above for the detailed instruction on how to proceed, follow steps 1-6 to create the new custom field.<br/>
Cron job recovery VM synchronization - run regularly, responsible for updating list of recovered VMs, allows downloading results.
+
The only thing you need to change is the custom field name, which should be ''' 'Tag' ''' in this case.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2_35.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PX_49_1.png]]
 
|}
 
|}
  
===VM Cleaner===
+
===Settings===
 +
====Load Balancer====
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|VM Cleaner allows you to track VM existing only on your Proxmox server and that are not visible in your WHMCS.<br/> Consequently, you are allowed here to sort and delete only those VM that are not managed from  your WHMCS.
+
|style="padding: 10px 0px 15px 15px;"|Load Balancer is an advanced tool that allows smooth rotation between nodes to find the most preferable one and create virtual machine on it.<br/>
 +
Set the weight of the resource that will prioritize its selection when sorting the Nodes according to the free resources.<br/>
 +
'''''Note:''' The lowest possible weight is 1. You cannot set for example 0,5.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_35_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PX2_30_4.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|In order to use Load Balancer you must previously enable it in the product's configuration: <br/>
 +
Define the behavior of the tool:
 +
*On Upgrade - select action to perform:
 +
** None - if selected, no action will be triggered
 +
** Block - the upgrade process will blocked as there are insufficient resources on the node
 +
** Migrate - the upgrade process will be performed after previous migration of the VM to a server with sufficient free space
 +
*Shutdown VM on Upgrade
 +
*Stop VM If Shutdown Fails
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_30_5.png]]
 +
|}
 +
=====Node Prioritization Method=====
 +
{|
 +
|style="padding: 10px 0px 0px 15px;"|Let us take a look at how the sorting process works and the rules that it obeys. <br/>
 +
Let's take exemplary weights for each resource just like presented on the screen above.<br/>
 +
 
 +
VMs Number Weight: 1,5<br/>
 +
CPU Weight: 2 <br/>
 +
Disk Weight: 4<br/>
 +
RAM Weight: 2,5
 +
 
 +
Disk Weight with the highest weight which means it has the highest priority and VMs Number Weight as the least crucial factor on a given node.<br/>
 +
 
 +
 
 +
In our situation, there are four nodes created, named A, B, C, D with current resources as shown below: <br/>
 +
 
 +
Node A (Free Ram: 60%, Free CPU: 20%, Free Disk Space: 50%, Number of VMs: 5) <br/>
 +
Node B (Free Ram: 30%, Free CPU: 70%, Free Disk Space: 40%, Number of VMs: 10) <br/>
 +
Node C (Free Ram: 90%, Free CPU: 50%, Free Disk Space: 20%, Number of VMs: 20) <br/>
 +
Node D (Free Ram: 80%, Free CPU: 60%, Free Disk Space: 70%, Number of VMs: 15)
 +
 
 +
The next step is sorting the nodes according to each resource, by assigning them corresponding priorities from 1 to 4. <br/>The higher the priority, the more free resources available.<br/>
 +
|}
 +
{| class="wikitable" style="margin-left: 20px; margin-right: auto;"
 +
! Priority
 +
! Free Ram
 +
! Free CPU
 +
! Free Disk Space
 +
! Number of VMs
 +
|-
 +
| 4
 +
| Node C
 +
| Node B
 +
| Node D
 +
| Node A
 +
|-
 +
| 3
 +
| Node D
 +
| Node D
 +
| Node A
 +
| Node B
 +
|-
 +
| 2
 +
| Node A
 +
| Node C
 +
| Node B
 +
| Node D
 +
|-
 +
| 1
 +
| Node B
 +
| Node A
 +
| Node C
 +
| Node C
 +
|}
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Now, the final calculation to sort nodes according to free resources, taking into account previously defined weights, is performed<br/>
 +
Sorting nodes is based on the following calculation method:<br/>
 +
 
 +
Final Node Priority = (RAM Priority x RAM Weight) + (CPU Priority x CPU Weight) + (Free Disk Priority x Disk Weight) + (No. VMs  Priority x VMs Weight)
 +
 
 +
The results for nodes A, B, C and D (with weights and sorting priority) are following:
 +
 
 +
Node A: (2 x 2,5) + ( 1 x 2 ) + ( 3 x 4 ) + ( 4 x 1,5 ) = 25
 +
Node B: (1 x 2,5) + ( 4 x 2 ) + ( 2 x 4 ) + ( 3 x 1,5 ) = 23
 +
Node C: (4 x 2,5) + ( 2 x 2 ) + ( 1 x 4 ) + ( 1 x 1,5 ) = 19,5
 +
Node D: (3 x 2,5) + ( 3 x 2 ) + ( 4 x 4 ) + ( 2 x 1,5 ) = 32,5
 +
 
 +
As you can see, Node D has got the highest priority value with a result: 32,5.<br/> It will be selected by Load Balancer to create a new VM there, to migrate or upgrade an existing VM if its current node does not have sufficient resources.<br/>
 +
 
 +
The above described calculations are performed every time, a '' 'Create' '' or '' 'Upgrade' '' actions are executed based on the current usage of resources on available nodes.<br/>
 +
 
 +
'''''Important:''' In case a given client already has an existing VM on a node, this very node will NOT be taken into account during the prioritization of resources process.<br/>
 +
This is due to security measures to make sure, that in case of failure of this node, the client will still have access to the other VM server, created on another, working node.<br/> However, if this client has VMs on every node already, all of them will be taken into account during the selection prioritization process again.''<br/>
 +
 
 +
If you decide to use Load Balancer tool, define the resources weights to adjust their prioritization of nodes according to your needs.
 
|}
 
|}
  
Line 706: Line 1,151:
 
Instead of using the sliders you can also enter resources values into textboxes.<br />
 
Instead of using the sliders you can also enter resources values into textboxes.<br />
 
Confirm creation through pressing '' 'Add New Virtual Server'. ''<br />
 
Confirm creation through pressing '' 'Add New Virtual Server'. ''<br />
''Note! Data to be filled in may differ according to which type OpenVZ or KVM you have chosen.''
+
''Note! Data to be filled in may differ according to which type LXC or KVM you have chosen.''
 
|}
 
|}
 
{|
 
{|
Line 713: Line 1,158:
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|To manage your virtual server simply press '' 'Manage' '' button next to it.<br />
 
|style="padding: 0px 0px 15px 15px;"|To manage your virtual server simply press '' 'Manage' '' button next to it.<br />
You can find information about managing your virtual servers in [http://www.docs.modulesgarden.com/Proxmox_Cloud_For_WHMCS#Client_Area-VM_Management next section].
+
You can find information about managing your virtual servers in [https://www.docs.modulesgarden.com/Proxmox_Cloud_For_WHMCS#Client_Area-VM_Management next section].
 
|}
 
|}
 
{|
 
{|
Line 727: Line 1,172:
 
{|
 
{|
 
|style="padding: 10px 0px 20px 15px;"|Move to '' 'Private Network Management' '' to add, delete and edit your private networks.<br/>
 
|style="padding: 10px 0px 20px 15px;"|Move to '' 'Private Network Management' '' to add, delete and edit your private networks.<br/>
Please keep in mind that this option must be enabled by administrator in your product's '' 'Module Settings' '' previously and a private IP address must be added in the Proxmox Addon.<br/> Otherwise you will no be able to add any private network successfully.
+
Please keep in mind that this option must be enabled by administrator in your product's '' 'Module Settings' '' previously and a private IP address must be added in the Proxmox Addon.<br/> Otherwise you will not be able to add any private network successfully.
 
|}
 
|}
 
{|
 
{|
Line 783: Line 1,228:
 
{|
 
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2__41.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2__41.png]]
|}
 
===VNC Console===
 
{|
 
|style="padding: 10px 0px 15px 15px;"|VNC console allows your clients to remotely manage the server. To access it, simply press the '' 'VNC Console' '' button.<br />
 
Console requires Java software and you need to accept security risk to run it.
 
|}
 
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_39.png]]
 
 
|}
 
|}
 
===noVNC Console===
 
===noVNC Console===
Line 802: Line 1,239:
 
{|
 
{|
 
|style="padding: 10px 0px 15px 15px;"|Spice console enables you to connect with virtual machine using SPICE.<br />
 
|style="padding: 10px 0px 15px 15px;"|Spice console enables you to connect with virtual machine using SPICE.<br />
''Note: Your client needs to [http://www.spice-space.org/download.html download] and install client side SPICE application in order to connect with VM.''
+
''Note: Your client needs to [https://www.spice-space.org/download.html download] and install client side SPICE application in order to connect with VM.''
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_40.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_40.png]]
 
|}
 
|}
 +
===Xterm.js Console===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Xterm.js console enables you to connect to virtual machine using Xterm.js.<br />
 +
You must update the scripts on Proxmox v2.6.0. To do so open folder: ''UploadOnProxmoxServer/5.2-10'' and upload content on all your proxmox servers.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PX2_40_1.png]]
 +
|}
 +
 
===Upgrade===
 
===Upgrade===
 
{|
 
{|
Line 817: Line 1,263:
  
 
==Client Area - Additional Tools==
 
==Client Area - Additional Tools==
 +
===Reinstall===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Reinstall feature can be used to reinstall a new OS on the VM by the clients on their own. <br/>
 +
You can provide your clients to either select a new OS from a provided KVM templates to automatically system replacement, or let them choose the ISO image for manual system installation.
 +
<br/><br/>
 +
'' '''Note:''' The ISO images can only be used for the KVM virtualization type, while VM templates can be used either for KVM or LXC.<br/> Additionally the new OS password for the KVM OS reinstallation will be set based on the previous service password while for the LXC user can define it before the new installation.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2_38_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|You can configure the available '' 'KVM OS Templates' '' for clients in the '' 'KVM Configuration' ''.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2_38_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|In the same way choose available '' 'ISO Images' '' from the can configure the '' 'CD/DVD-ROM Drive' ''.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2_38_3.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Remember to also gain your clients access to selected reinstallation types in the  '' 'User's Options' ''.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2_38_4.png]]
 +
|}
 +
 
===Backups===
 
===Backups===
 
{|
 
{|
Line 837: Line 1,312:
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2__49.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2__49.png]]
 
|}
 
|}
 +
 
===Backup Jobs===
 
===Backup Jobs===
 
{|
 
{|
Line 879: Line 1,355:
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__53.png]]
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__53.png]]
 
|}
 
|}
===Snapshots (KVM only)===
+
===Snapshots===
 
{|
 
{|
 
|style="padding: 0px 0px 20px 15px;"|Use snapshot to remember the contents of virtual machine memory current state. You may use them later to restore the VM settings.  
 
|style="padding: 0px 0px 20px 15px;"|Use snapshot to remember the contents of virtual machine memory current state. You may use them later to restore the VM settings.  
Line 892: Line 1,368:
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2_48_11.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2_48_11.png]]
 
|}
 
|}
 +
 
===Firewall===
 
===Firewall===
 
{|
 
{|
Line 918: Line 1,395:
 
{|
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__53_3.png]]
 
|style="padding: 0px 0px 20px 25px;"|[[File:PXC2__53_3.png]]
 +
|}
 +
 +
===Firewall Options===
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|View and edit firewall options.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2_53_4.png]]
 
|}
 
|}
  
Line 927: Line 1,412:
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2__52_2.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2__52_2.png]]
 
|}
 
|}
 +
 
===Scheduled Task===
 
===Scheduled Task===
 
{|
 
{|
Line 934: Line 1,420:
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2__52_3.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2__52_3.png]]
 
|}
 
|}
 +
 +
<!--
 
==Automatic IP Address Assignment==
 
==Automatic IP Address Assignment==
 
{|
 
{|
Line 962: Line 1,450:
 
  subnet 192.168.1.0 netmask 255.255.255.0 {
 
  subnet 192.168.1.0 netmask 255.255.255.0 {
 
  #ProxmoxIPv4
 
  #ProxmoxIPv4
  host 1 {hardware ethernet 32:62:39:64:33:33;fixed-address 1.1.1.101;}
+
  host 1 {hardware ethernet 32:62:39:64:33:33;fixed-address 192.168.1.2;}
  host 2 {hardware ethernet 32:39:61:31:33:66;fixed-address 1.1.1.243;}
+
  host 2 {hardware ethernet 32:39:61:31:33:66;fixed-address 192.168.1.3;}
 
  }
 
  }
  
Line 978: Line 1,466:
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2_48_1.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2_48_1.png]]
 
|}
 
|}
 +
-->
  
 
==IP Manager Integration==
 
==IP Manager Integration==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Owing to integration with [http://www.modulesgarden.com/products/whmcs/ip_manager/features IP Manager For WHMCS] you are able to easily create IP addresses subnets and assign them to desired products.<br />
+
|style="padding: 10px 0px 15px 15px;"|Owing to integration with [https://www.modulesgarden.com/products/whmcs/ip-manager IP Manager For WHMCS] you are able to easily create IP addresses subnets and assign them to desired products.<br/>
1. Proceed to IP Manager For WHMCS → [http://www.docs.modulesgarden.com/IP_Manager_For_WHMCS#Subnets Subnets] tab in order to prepare IP addresses subnet for Proxmox Cloud For WHMCS.<br />
+
'' '''Note:''' This integration works for both '''LXC''' and '''KVM''' virtualization types.''
 +
<br/><br/>
 +
1. Proceed to IP Manager For WHMCS → [https://www.docs.modulesgarden.com/IP_Manager_For_WHMCS#Subnets Subnets] tab in order to prepare IP addresses subnet for Proxmox Cloud For WHMCS.<br />
 
2. Edit a previously created IP addresses subnet and create custom field '' 'MAC Address' '' with desired MAC address at each IP address in the subnet.<br />
 
2. Edit a previously created IP addresses subnet and create custom field '' 'MAC Address' '' with desired MAC address at each IP address in the subnet.<br />
More about creating custom fields can be found [http://www.docs.modulesgarden.com/IP_Manager_For_WHMCS#Default_Custom_Fields here].
+
More about creating custom fields can be found [https://www.docs.modulesgarden.com/IP_Manager_For_WHMCS#Default_Custom_Fields here].
 
|}
 
|}
 
{|
 
{|
Line 990: Line 1,481:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|3. Afterwards, create a [http://www.docs.modulesgarden.com/IP_Manager_For_WHMCS#Automatic_IP_Assignment new configuration] and assign a previously created subnet to it.<br/>
+
|style="padding: 0px 0px 15px 15px;"|3. Afterwards, create a [https://www.docs.modulesgarden.com/IP_Manager_For_WHMCS#Automatic_IP_Assignment new configuration] and assign a previously created subnet to it.<br/>
 
''Note: Multiple IP addresses subnets can be assigned to a single configuration.''<br />
 
''Note: Multiple IP addresses subnets can be assigned to a single configuration.''<br />
 
4. Now, link the configuration with Proxmox Cloud product via product, server or configurable option.<br />
 
4. Now, link the configuration with Proxmox Cloud product via product, server or configurable option.<br />
Line 1,052: Line 1,543:
 
{|
 
{|
 
|style="padding: 10px 0px 15px 15px;"|When you successfully set up a product, your clients can order it by choosing from the default configurable options.<br/>
 
|style="padding: 10px 0px 15px 15px;"|When you successfully set up a product, your clients can order it by choosing from the default configurable options.<br/>
''Note! If automatically generated configurable options do not seem to fulfill your clients needs, you can edit them using [http://www.docs.modulesgarden.com/General#Editing_Configurable_Options this guide].''
+
''Note! If automatically generated configurable options do not seem to fulfill your clients needs, you can edit them using [https://www.docs.modulesgarden.com/General#Editing_Configurable_Options this guide].''
 
|}
 
|}
 
{|
 
{|
Line 1,058: Line 1,549:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|If you decide to set up pricing per server resource ordered, you can find instruction to proceed [http://www.docs.modulesgarden.com/General#Setting_Up_Pricing_For_Configurable_Options here].
+
|style="padding: 0px 0px 20px 15px;"|If you decide to set up pricing per server resource ordered, you can find instruction to proceed [https://www.docs.modulesgarden.com/General#Setting_Up_Pricing_For_Configurable_Options here].
 
|}
 
|}
 
{|
 
{|
Line 1,066: Line 1,557:
 
==Management of Billing==
 
==Management of Billing==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|When you combine Proxmox Cloud For WHMCS with [http://www.docs.modulesgarden.com/Advanced_Billing_For_WHMCS Advanced Billing For WHMCS], you will be able to set up additional billing options.<br />
+
|style="padding: 10px 0px 15px 15px;"|When you combine Proxmox Cloud For WHMCS with [https://www.docs.modulesgarden.com/Advanced_Billing_For_WHMCS Advanced Billing For WHMCS], you will be able to set up additional billing options.<br />
 
Module allows you to charge your customers basing on the server resources used by them.
 
Module allows you to charge your customers basing on the server resources used by them.
 
|}
 
|}
Line 1,134: Line 1,625:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|5. As this module supports templates system, any changes made in the module's templates files will be saved after the upgrade process.
+
|style="padding: 0px 0px 5px 15px;"|6. As this module supports templates system, any changes made in the module's templates files will be saved after the upgrade process.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 5px 15px;"|7. If you currently use the module in the 2.3.2 version or previous, and would like to migrate to '''Proxmox VE V5.X''',  you need to update the files on your Proxmox server to the new version from the ''' 'UploadOnProxmoxServer' ''' folder.
 +
|}
 +
 
 +
{|
 +
|style="padding: 0px 0px 5px 15px;"|8. You can use the '' 'IPSet IP Filter' '' option for firewall to prevent IP spoofing. Click [https://pve.proxmox.com/wiki/Firewall#pve_firewall_ip_sets here] to read more about IP Sets.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 5px 15px;"|9. '' 'Minimum Network Rate Limit' '' option allows you to change the previously entered '' 'Default Network Rate Limit' '' value to a new one if the current '' 'Bandwidth Limit' '' is already exhausted.<br/>Note that the '' 'Bandwidth Limit' ''  can also be used for WHMCS overage billing calculation as described [https://docs.whmcs.com/Disk_Space_and_Bandwidth_Overage_Billing here].
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PXC2_70_1.png]]
 +
|}
 +
 
 +
=Update Instructions=
 +
{|
 +
|style="padding: 10px 0px 30px 15px;"|Essential guidance through the process of updating the module is offered '''[https://www.docs.modulesgarden.com/How_To_Update_WHMCS_Module here]'''.<br/><br/>
 +
Keep in mind there is a quick and easy option in our client area that will let you upgrade the license of your module to an open source version at any time - and at a lower price!<br/>
 +
To take advantage of it, simply use the '''License Upgrade''' button located on the product's page and a discounted invoice will be generated automatically.<br/>
 
|}
 
|}
  
Line 1,155: Line 1,666:
 
{|
 
{|
 
|style="padding: 0px 0px 5px 15px;"|4. Blank page during connecting via noVNC console.<br />
 
|style="padding: 0px 0px 5px 15px;"|4. Blank page during connecting via noVNC console.<br />
'''Reason:''' You have not uploaded 'mgnovnc.html' on to the Proxmox server.<br />
+
'''Reason:''' You have not uploaded the additional files on the Proxmox server.<br />
'''Solution:''' Extract the module and upload 'mgnovnc.html' file located in 'UploadOnProxmoxServer' on all Proxmox servers into '/usr/share/novnc-pve/' folder.
+
'''Solution:''' Open 'UploadOnProxmoxServer' and upload content of proper version on all Proxmox servers into the '/' path.
 
|}
 
|}
 
{|
 
{|
Line 1,170: Line 1,681:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|8. '' 'OS Architecture Type'' ' option for LXC virtualization type is currently not supported as it not implemented in Proxmox itself.<br/>We are sorry for inconvenience.
+
|style="padding: 0px 0px 5px 15px;"|8. '' 'OS Architecture Type'' ' option for LXC virtualization type is currently not supported as it not implemented in Proxmox itself.<br/>We are sorry for inconvenience.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 5px 15px;"|9. Error: "Only root can set 'serial0' config".<br />
 +
'''Solution:''' Turn off the Xterms.js console in the product configuration.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|10. Error "Parameter verification failed. ([maxfiles] - Only root may set this option.)"<br/>
 +
'''Reason:''' User is other than "root" or server authentication is set to Proxmox VE<br />
 +
'''Solution:''' In server configuration, set the root details and select PAM as the authentication type.
 
|}
 
|}

Latest revision as of 16:10, 16 November 2020

Contents

[edit] About Proxmox Cloud For WHMCS

Proxmox Cloud For WHMCS offers your clients the flexibility to create, remove and freely resize their own virtual servers within resource limits defined by you.

Your customers will be able to create as many servers as they need, manage such essential aspects like backups or firewall, and access noVNC, SPICE, or Xterm.js console.
The module supports Cloud-Init for the KVM virtualization type, and features Proxmox Addon allowing you to easily manage servers, IP addresses and clusters.

  • Admin Area Features:
✔ Create/Suspend/Unsuspend/Terminate User Account
✔ Change Package
✔ Change User Role
✔ Reset Bandwidth
✔ Migrate/Import/Delete Server
✔ Edit Server Node
✔ View Server Status, Details And Statistics
✔ View Graphs - With Ability To Change Time Scale of MRTG Graphs
✔ Display Disk And Bandwidth Usage Of Each Product
✔ Display CPU, SWAP and Memory Usage Of Each Product
✔ Select Server Locations Available For Clients
✔ Configure Client Area Features Per Product
✔ Define Static Or Dynamic Resource Limits
✔ Define Server Minimum And Maximum Resource Values
✔ Import IP Address To Hosting IP Addresses Table
✔ Return IP Address To IP Addresses Subnet
✔ Add Additional IP Address To VM
✔ Enable Qemu Guest Agent (KVM)
✔ Enable Backups Routing
✔ Enable Auto VM Backups Before Reinstallation
✔ Enable Load Balancer
  • Proxmox Addon Features:
✔ Display Servers: List Per VPS And Cloud
✔ List Per VPS And Cloud
✔ Clusters List
✔ VMs List
✔ KVM Templates
✔ Recovery VM Configurations List With Export To Backup File
✔ Tasks History
✔ Statuses, Resources Usage, IP Assignments And Details
✔ Manage Public & Private IP Addresses Per Server, VLAN, Tag And Node
✔ VM Cleaner - Manage VM Not Existing In Your WHMCS
✔ Convert KVM VPS To KVM Template
✔ Define VM IDs Ranges Per Server
✔ Set Minimum VM ID For Product Without ID Ranges Defined
✔ Configure Resources Weights For Load Balancer Prioritization
✔ Synchronize Users Permissions
  • Client Area Features:
✔ Create/Edit/Delete Servers
✔ Boot/Reboot/Stop/Shutdown Server
✔ Reinstall Server Using Templates (KVM) And ISO Images
✔ Choose Location For New Servers
✔ View Available Resources
✔ Access noVNC, SPICE And Xterm.js Console
✔ Create/Restore/Delete Backups
✔ Manage Backups Within Defined Limits (Max Number Of Files & Max Size Of Files)
✔ Manage Backup Jobs Within Defined Limits (Max Number Of Files & Max Size Of Files)
✔ View And Edit Public SSH Keys (KVM)
✔ Create/Upload/Download Public And Private SSH Keys (LXC)
✔ View Graphs - With Ability To Change Time Scale of MRTG Graphs
✔ View Task History
✔ View Network Devices and Manage Private Interface
✔ Manage Private Networks And Assign Them To Multiple Servers
✔ Create Server Snapshots
✔ Create VM Template From Server - KVM Virtualization Only
✔ Manage Firewall
✔ View Server Status, Details And Statistics
✔ Display Disk And Bandwidth Usage
✔ Display CPU, SWAP and Memory Usage
✔ Change Boot Order (KVM)
✔ Change ISO Image (KVM)
✔ Choose Server Resources While Ordering And Upgrade/Downgrade Them Freely
  • Configurable Options:
KVM:
✔ CPU Sockets Limit
✔ CPU Cores Limit
✔ CPU Limit
✔ CPU Units Limit
✔ Memory Limit
✔ SWAP Limit
✔ Storage Limit
✔ IPv4 Addresses Limit
✔ IPv6 Addresses Limit
✔ Bandwidth Limit
✔ Backups Size Limit
✔ Backups Files Limit
✔ Private Networks Limit
✔ VCPUs Limit
✔ Network Rate Limit
LXC:
✔ CPU Sockets Limit
✔ CPU Cores Limit
✔ CPU Limit
✔ CPU Units Limit
✔ Memory Limit
✔ SWAP Limit
✔ Storage Limit
✔ IPv4 Addresses Limit
✔ IPv6 Addresses Limit
✔ Bandwidth Limit
✔ Backups Size Limit
✔ Backups Files Limit
✔ Private Networks Limit
✔ VCPUs Limit
✔ Network Rate Limit
  • General Info:
✔ Supports Cloud-Init (KVM)
✔ Supports PVE And PAM Authentication
✔ Supports KVM and LXC Virtualization
✔ Integrated With Advanced Billing For WHMCS - Actual Server Resource Usage Billing (read more)
✔ Integrated With Proxmox Cloud Autoscaling For WHMCS - Automated Servers Resizing (read more)
✔ Integrated With IP Manager For WHMCS - Complete Control And Easy Assignment Of IP Subnets (read more)
✔ Multi-Language Support
✔ Supports Proxmox VE 6.X And Later
✔ Supports IPv4 and IPv6
✔ Supports Custom Hooks
✔ Supports PHP 7.1 Up To PHP 7.4
✔ Supports WHMCS Template Six
✔ Supports WHMCS 7.9 And Later
✔ Easy Module Upgrade To Open Source Version

[edit] Installation and Configuration

This tutorial will show you how to successfully install and configure Proxmox Cloud For WHMCS.

We will guide you step by step through the whole installation and configuration process.

[edit] Installation

1. Log in to our client area and download the module.
PXC2 1.png
2. In the downloaded file you might find one or two packages that support different PHP versions.

In the most recent versions of the module, you will find only one package that supports PHP 7.1 and later.

PHP71 74.png
Previous updates of the module may contain two packages dedicated to various PHP versions.

The first one that supports PHP 5.6 up to PHP 7.0, and the second one addressed to PHP 7.1 up to PHP 7.3.
Note: Keep in mind that PHP versions 5.6 up to 7.0 are no longer officially supported and their security issues are not fixed or released any more. Find more info here.

PHP56 73.png
Note: You can check the current PHP version in your WHMCS. To do so, proceed to 'Utilities' → 'System' → 'PHP Info'.
3. Extract the package and upload its content into the main WHMCS directory.

The content of the package to upload should look like this.

PX2 2 1.png
4. Open 'UploadOnProxmoxServer' and upload content of the proper version on all Proxmox servers into the '/' path.
You should upload these files not only during the first installation of the module, but also each time you update it.

Note: If you wish to allow noVNC consoles, you need to configure a product using the PVE realm and set user permissions to 'PVEVMUser.'
Important: Open Folder UploadOnProxmoxServer/5.2-10 and upload content on all your proxmox servers. Scripts must be updated on proxmox server v2.6.0 to allow Xterm.js console work.

5. When you install Proxmox Cloud For WHMCS for the first time, you have to rename the 'license_RENAME.php' file.

This file is located in 'modules/servers/proxmoxCloud/license_RENAME.php'. Rename it from 'license_RENAME.php' to 'license.php'.

PXC2 3.png
6. In order to configure your license key, you have to edit a previously renamed 'license.php' file.

Enter your license key between quotation marks as presented on the following screen.
You can find your license key in our client area → 'My Products'.

PXC2 4.png
7. In the next step, set up the 'storage' folder as recursively writable.

This folder is available at: your_whmcs/modules/addons/proxmoxAddon/

PX2 4 1.png

[edit] Activation of Proxmox Addon

7. Firstly, you should activate Proxmox Addon.

To do so, log in into your WHMCS and press 'Setup' → 'Addon Modules'. Find 'Proxmox Addon' and press 'Activate'.

Note: The Proxmox addon version might not match the current version of the provisioning module itself. This is completely normal due to the specific structure of the product.

PXC2 5.png
8. In the next step, you need to permit access to this module.

To do so, click on the 'Configure' button. Tick 'Full Administrator' and press 'Save Changes'.

PXC2 6.png

[edit] Configuration of Server

9. Now, we will show you how to configure a new product.

Go to 'Setup' 'Products/Services' 'Servers' and press 'Add New Server'.

PXC2 7.png
10. Next, enter your server name, IP address, username and password.

Choose 'ProxmoxCloud' from a dropdown menu and press 'Save Changes'.
The last step is choosing authentication from the 'Authentication' dropdown menu.
Note: Authentication depends on the realm used by the user on a Proxmox server.

PXC2 8.png
11. After you have configured your server correctly, you will see the following screen.

You can check connection with the Proxmox server. To do so, simply press 'Test Connection' as shown on the screen below.

PXC2 9.png
12. It is time to create a server group. To do so, click on 'Create New Group'.
PXC2 10.png
13. Enter name, click on your previously created server, press 'Add' and afterwards 'Save Changes'.
PXC2 11.png

[edit] Configuration of Product

14. In order to create and configure a product, go to 'Setup' → 'Products/Services' → 'Products/Services'.

Click on 'Create a New Group'.

PXC2 12.png
15. Enter the product group name and press 'Save Changes'.
PX2 13.png
16. When you have a product group, you are able to create your product.

To create a product, click on 'Create a New Product'.

PX2 14.png
17. Afterward, choose your product group from dropdown menus and poinmt its type, enter your product name and choiose Proxmoix VPS as a module name.
Press 'Continue'.

'Product Type' can be set to 'Server/VPS' but nameservers will need to be added later.
If you do not want to fill out nameservers, please select 'Shared Account' .

PXC2 15.png
18. Now, go to the 'Module Settings' section and choose your previously created server group from the dropdown menu.

Next, click on 'Save Changes'.

PXC2 16.png
19. Choose 'Virtualization Type', 'Default Node', 'Template & ISO Storage' and 'User Permission' from dropdown menus.

Available virtualization types:

  • KVM
  • LXC

You can also choose how often the bandwidth usage should be calculated.
Afterwards, press 'Save Changes'.
Note: If you choose 'Auto-Node' as 'Default Node', new virtual servers will be created on the least used node.
Note 2: An advanced tool is available for you to automatically manage a node selection with the best count of resources. Read more about Load Balancer.

PXC2 17.png

[edit] KVM Virtualization Type

20. Setting of the KVM virtualization type (skip this step if you have chosen the LXC virtualization type).

From dropdown menus, choose 'KVM OS Type', 'Default Storage', 'Disk Type' and 'CD/DVD-ROM Type'.
Choose ISO images available for your clients by marking them in 'ISO Image'.

Set the network through selecting from the 'Network Mode', 'Network Model', and 'Bridge' dropdown menus.
If you are going to allow your clients to manage their private networks, you have to select 'Private Bridge' and set up VLAN TAG Range.
Type in your VM description in 'Container Description', set the backup location in the 'Storage' dropdown menu and click 'Save Changes'.
Important: Keep in mind that the root password is generated automatically for KVM virtualization upon its creation and reset.
'If you want to set your own password on KVM virtualization, use the Cloud-Init option.

PXC2 18.png

[edit] LXC Virtualization Type

21. Setting of the LXC virtualization type (skip this step if you have chosen the KVM virtualization type).

From dropdown menus, choose 'Default Storage', 'Template' and 'Bridge'.
Enter your virtual server description in 'Container Description' and press 'Save Changes'.

Remember! This virtualization type is supported only by Proxmox VE 4.0. and later.
If you are using the previous version of a Proxmox server, you will not be able to start this virtualization.

PXC2 18 1.png


[edit] Finalizing The Configuration

23. Private Network Management - in order to allow clients to manage their private networks, set up the 'Network Device' section properly.
  • Select 'Private Bridge'
  • Select 'Private Network Model'
  • Enter ranges for VLAN TAG

Note: Configure these three options for the KVM and LXC virtualization.
If you skip this step, clients will not be allowed to add private networks.

PXC2 20 1.png
24. The next step is setting up the configuration of backups.

Define backup settings in the 'Backups' section through selecting values from the 'Storage' and 'Backups Routing' dropdown menus.
Backups routing automatically removes the oldest backup when a new backup is created and the established backup limit is reached.
Additionally, you can limit the time period for storing backups by providing the number of days into the 'Store The Backup For N Days' field.
Furthermore, you can define the limit of firewall rules and the interface to apply the rules to.
Finish the configuration in the 'Module Settings' tab through pressing 'Save Changes'.

PXC2 20.png
25. Set up server limits to control the size of created servers.
PXC2 21 1.png
26. The final step is generating custom fields and deciding whether to set up the product with static or configurable resources.

Press 'Generate default' next to 'Custom Fields'.
Static Resources: Fill in the fields in located in the 'Default Configuration' section with desired values.
Configurable Resources: Click on 'Generate Default' next to 'Configurable Options'.
Press 'Save Changes' at the bottom of the page.
Note: While generating 'Configurable Options', it is advisable to delete the ones you do not use, e.g. the swap option or IPv6 for the KVM virtualization.

PXC2 21.png
27. In the end of the product configuration, you have to add a cron job that is shown below (5 minutes interval suggested).
php -q /your_whmcs/modules/servers/proxmoxCloud/cron/cron.php

Do not forget to replace 'your_whmcs' with your WHMCS root location.

Congratulations! You have just finished the installation and configuration of the module.

[edit] Configuration of Addon

26. Proceed to 'Addons' 'Proxmox Addon' 'Settings' 'General Settings' and set up cron jobs listed under the 'Cron' section.

Please note that there are separate cron jobs dedicated to Proxmox VPS and Proxmox Cloud modules - these jobs are the most important to assure fluent work of the modules, suggested frequency is 5 minutes.
If you are using only Proxmox VPS, there is no need to set up the second one and the other way round.
The other ones are responsible for:

  • Users synchronization - run only once
  • VM recovery synchronization - optionally run every 24 hours
  • VM migration synchronization - optionally run every 24 hours or just after the VM migration
  • Tasks synchronization - optionally run every one hour
PXC2 35.png
27. Next, under the Cron settings, find the 'Minimum VMID' field.
Fill it in with a number that will be used as an ID of the first VM, the second VM will be asigned the next ID number.
PXC2 35 1.png
28. Adding a new IP address (if you are not using IP Manager For WHMCS).

In order to create a new product, you have to add 'Dedicated IP ' to the 'IP Addresses' list in 'Proxmox' addon module.
To do so, go to 'IP Management' and press 'New IP Addresses'.
Note: You can add both the IPv4 and IPv6 addresses.

PXC2 30.png
29. Start by typing a desired IP address and mask into 'IP Pool'.

Next, choose a server from the 'Server' dropdown menu and define which virtualization it should be applied to through selecting it from the 'Virtualization' dropdown menu.
Afterward, press 'Confirm'.

PX2 23.png
30. You are now able to create new virtual machines at the product.

If you used the KVM virtualization type, the client area of a successfully created product should look similar to the one presented on the screen below.

PXC2 24 1.png
31. The client area of a product using the LXC virtualization type looks quite similar.
PXC2 25.png

[edit] Cloud-Init (KVM)

Use Cloud-Init to configure the system during installation, first-boot and package change.
Cloud-Init was initially developed to provide early initialization of cloud instances.
Click here to learn more about Cloud-Init configuration.

[edit] Configuration Of Product

To to allow you clients to use cloud-init you need to enable it in the Proxmox product configuration.

Before you start we recommend to learn the details about cloud-init configuration on your Proxmox server - click here for more details.
Once you get familiar with Proxmox cloud-init proceed to Cloud-Init group of your KVM configuration where you can enable it and set the following:

  • Allow To Set Username - if enabled the client can set its own username during VM creation. Otherwise it will remain unchanged and be set by default as in the template or set from the 'Default User' field if provided.
  • Allow To Set Password - if enabled the client can set its own password during VM creation Otherwise it will remain unchanged and be set by default as in the template.
  • Allow To Set SSH Public Key - if enabled the client can upload its own public SSH key in OpenSSH format during VM creation. This will then allow client to log in to VM using their private key instead of password.
  • Default User - provide the username that will be used for VM instead of using the 'Service Username' field or image's configured default user. Otherwise leave empty.
  • Allow To Set DNS Domain - if enabled the client can provide its own DNS domain for a container. During VM creation, the provided setting will be automatically used if neither a search domain nor a nameserver is set.
  • Allow To Set Nameservers - if enabled the client can set its own nameservers for the VM. Otherwise they will remain unchanged and be set by default as in the template.
PXC2 51 new.png
This is how the above settings will look like in the client area during VM creation.
PXC2 55.png

[edit] Configuration Of Proxmox Server

The process of setting up Cloud-Init on the Proxmox server is described here.

Additionally you can use the following commands that can be useful for debugging.

  • Re-run cloud init scripts
rm -rf /var/lib/cloud/sem/* /var/lib/cloud/instance /var/lib/cloud/instances/* &&
cloud-init init  &&
cloud-init modules -m final
  • Logs
cat /var/log/cloud-init.log
cat /var/log/cloud-init-output.log

[edit] Management

Proxmox Cloud For WHMCS allows your customers to manage their PVE servers in the WHMCS client area.

At the same time, you can monitor and handle each product from your WHMCS admin area.
To view VM details(1), migrate VM(2), update VMs node(3) or delete VM(4), press a specific button.
To view details of a virtual server created by your client, simply press the 'Load Status' button.

PXC2 26.png
On the following screen, you can see loaded details of the VM as well as opened migration popup.

Migration is useful when you want to request migration from the WHMCS admin area, while editing node is practical for updating details after migrating the virtual machine from the Proxmox panel.

PXC2 27.png

[edit] Management of Addon

[edit] Servers Management

[edit] Servers List

In 'Addons' 'Proxmox Addon' 'Servers' 'Servers List' you can find the configured Proxmox servers.

RAM details:

Assigned - RAM assigned to the server (hosting services only)
Total - full server RAM
Free - difference between Total Server RAM and Assigned RAM

Suspended - number of suspended accounts per size in MB E.g.: (1/500 MB) when there is only one suspended account (occupying 500MB of that account) assigned to Proxmox VPS server.

PX2 28.png
Through pressing 'Edit' icon you will be moved to the server edit page - see point number 10 of Server Configuration.

Press 'More Details' icon and you will get extended information on the selected server. See below for more details.

[edit] VMs
The 'VMs' tab includes a list of created virtual machines on this server. Take a quick look at information on domain, status, bandwidth and IP addresses.

To view information about a VM, simply press the more info icon.

PX2 29.png
Check the node and VMID:
PX2 29 1.png
[edit] Clusters
The next tab contains the list of clusters with information on uptime, CPU as well as CPU, SWAP, memory and disk usage data.
PX2 29 2.png
Press the Edit icon to manage the node:
PX2 29 3.png
Press 'Node Details' and you will get all the summary and usage graphs:
PX2 30 2.png
[edit] VM Cleaner
VM Cleaner allows you to track VMs existing only on your Proxmox server and that are not visible in your WHMCS.
Consequently, you are allowed to sort and delete only those VMs that cannot be managed from your WHMCS.
PX2 31 1.png
[edit] Templates
Under this page you can view the list of templates. You can easily convert any KVM VM on your server to a template.

In order to convert a VM, press 'Create Template' button.

PX2 31 3.png
Next, choose a VM to convert.

Fill out 'Description' field and press 'confirm'.
Important: Selected VM will be destroyed in the process.

PX2 31 4.png
You may also delete unused templates here. Delete single templates or use the mass action to delete templates in bulk.
PX2 31 2.png
[edit] Settings
Here you can define the VM IDs range that will be used for newly created VMs on this server. Please note that to use this feature, you also need to enable the "Use VM Ranges" setting in the product configuration.
Define ID range and save changes.

Note: VM ID range allows you to sort created VMs depending on the server they were created on..

PX2 34.png

[edit] VMs List

In 'Addons' 'Proxmox Addon' 'Servers' 'VMs List' you can find details of any Proxmox product.
PX2 35.png
Press 'More Details' button to get the node and VMID information.
PX2 35 1.png

[edit] Recovery VM Lists

In 'Addons' 'Proxmox Addon' 'Servers' 'Recovery VM List' you can details on the created VM.

Run the 'VM recovery synchronization' cron job to create and store full backups of VMs configuration, you can find it at point no 26 of the configuration instructions.
Use the 'Export to File' button to save information in a TXT copy file.

PX2 36.png
On pressing the 'Details' icon, you will get any information on Configuration, Status and DNS:
PX2 36 1.png
PX2 36 2.png
PX2 36 3.png

[edit] Tasks History

Tasks History includes a list o all module tasks with the most crucial details on them.
You may delete single tasks or use mass action button to remove them in bulk.

Run the 'Tasks synchronization' cron job to synchronize the tasks and view all tasks from the server, you can find it at point no 26 of the configuration instructions.

PX2 37.png

[edit] IP Management

In the 'IP Management' tab you can manage the IP addresses of Proxmox products.
You can create both single IP addresses and IP pools which then can be assigned to created VMs.
PXC2 30.png
When you are creating a new IP address or a pool, you may define:
  • private/public address
  • servers or nodes that will use them
  • virtualization types (different VMs will use different IP pools)
PX2 30 1.png

[edit] IP Manager Integration

Owing to the integration with IP Manager For WHMCS, you are able to easily create subnets with IP addresses and assign them to the desired products.

By activating the IP Manager submodule, settings concerning IP addresses such as 'Configurable Options' and 'Default Options' will be ignored by Proxmox VPS.
Note: This integration works for LXC and KVM virtualization types.

1. Proceed to the IP Manager For WHMCS → Subnets tab in order to prepare IP addresses subnet for Proxmox VPS For WHMCS.
2. Edit the previously created IP addresses subnet and create a custom field 'MAC Address' with a desired MAC address at each IP address in the subnet.
Note: Setting up MAC address is optional and can be skipped.
More details about creating custom fields can be found here.

PX 49.png
3. Afterward, create a new configuration and assign the previously created subnet to it.

Note: Multiple IP addresses subnets can be assigned to a single configuration.
4. Now, link the configuration with Proxmox VPS product via a product, a server or a configurable option.
On the following screen we have linked them via the configurable option assigned to the Proxmox VPS product.

PX 50.png
5. Now, enable the integration by proceeding to the '3rd Party Integration' tab.

Press 'Activate' next to the 'proxmoxVPS' module type as shown on the following screen.

PX 51.png
6. Next, assign the previously created configuration to the submodule.

Press 'Configure' , choose a configuration and press 'Save Changes'.

PX 52.png
If you encounter an error like the one on the below screen while integrating the two products, probably the function 'mb_strlen' is not enabled by default.
Please read the manual here for installation instructions.
PX 52 1.png
It is possible to add a VLAN Tag Custom Filed in the very same way as the MAC Address field.

Look above for the detailed instruction on how to proceed, follow steps 1-6 to create the new custom field.
The only thing you need to change is the custom field name, which should be 'Tag' in this case.

PX 49 1.png

[edit] Settings

[edit] Load Balancer

Load Balancer is an advanced tool that allows smooth rotation between nodes to find the most preferable one and create virtual machine on it.

Set the weight of the resource that will prioritize its selection when sorting the Nodes according to the free resources.
Note: The lowest possible weight is 1. You cannot set for example 0,5.

PX2 30 4.png
In order to use Load Balancer you must previously enable it in the product's configuration:

Define the behavior of the tool:

  • On Upgrade - select action to perform:
    • None - if selected, no action will be triggered
    • Block - the upgrade process will blocked as there are insufficient resources on the node
    • Migrate - the upgrade process will be performed after previous migration of the VM to a server with sufficient free space
  • Shutdown VM on Upgrade
  • Stop VM If Shutdown Fails
PX2 30 5.png
[edit] Node Prioritization Method
Let us take a look at how the sorting process works and the rules that it obeys.

Let's take exemplary weights for each resource just like presented on the screen above.

VMs Number Weight: 1,5
CPU Weight: 2
Disk Weight: 4
RAM Weight: 2,5

Disk Weight with the highest weight which means it has the highest priority and VMs Number Weight as the least crucial factor on a given node.


In our situation, there are four nodes created, named A, B, C, D with current resources as shown below:

Node A (Free Ram: 60%, Free CPU: 20%, Free Disk Space: 50%, Number of VMs: 5) 
Node B (Free Ram: 30%, Free CPU: 70%, Free Disk Space: 40%, Number of VMs: 10)
Node C (Free Ram: 90%, Free CPU: 50%, Free Disk Space: 20%, Number of VMs: 20)
Node D (Free Ram: 80%, Free CPU: 60%, Free Disk Space: 70%, Number of VMs: 15)

The next step is sorting the nodes according to each resource, by assigning them corresponding priorities from 1 to 4.
The higher the priority, the more free resources available.

Priority Free Ram Free CPU Free Disk Space Number of VMs
4 Node C Node B Node D Node A
3 Node D Node D Node A Node B
2 Node A Node C Node B Node D
1 Node B Node A Node C Node C
Now, the final calculation to sort nodes according to free resources, taking into account previously defined weights, is performed

Sorting nodes is based on the following calculation method:

Final Node Priority = (RAM Priority x RAM Weight) + (CPU Priority x CPU Weight) + (Free Disk Priority x Disk Weight) + (No. VMs  Priority x VMs Weight)

The results for nodes A, B, C and D (with weights and sorting priority) are following:

Node A: (2 x 2,5) + ( 1 x 2 ) + ( 3 x 4 ) + ( 4 x 1,5 ) = 25
Node B: (1 x 2,5) + ( 4 x 2 ) + ( 2 x 4 ) + ( 3 x 1,5 ) = 23
Node C: (4 x 2,5) + ( 2 x 2 ) + ( 1 x 4 ) + ( 1 x 1,5 ) = 19,5
Node D: (3 x 2,5) + ( 3 x 2 ) + ( 4 x 4 ) + ( 2 x 1,5 ) = 32,5

As you can see, Node D has got the highest priority value with a result: 32,5.
It will be selected by Load Balancer to create a new VM there, to migrate or upgrade an existing VM if its current node does not have sufficient resources.

The above described calculations are performed every time, a 'Create' or 'Upgrade' actions are executed based on the current usage of resources on available nodes.

Important: In case a given client already has an existing VM on a node, this very node will NOT be taken into account during the prioritization of resources process.
This is due to security measures to make sure, that in case of failure of this node, the client will still have access to the other VM server, created on another, working node.
However, if this client has VMs on every node already, all of them will be taken into account during the selection prioritization process again.

If you decide to use Load Balancer tool, define the resources weights to adjust their prioritization of nodes according to your needs.

[edit] Client Area

Client area interface of Proxmox Cloud For WHMCS allows your clients to create their own virtual servers.

They can also view resources used and manage existing virtual servers.

PXC2 36.png

[edit] New Server

In order to add a new server, press 'Add New Server' button.
PXC2 37.png
Afterwards, enter 'Hostname', choose 'OS Type' and select resources for your server by using sliders.

Instead of using the sliders you can also enter resources values into textboxes.
Confirm creation through pressing 'Add New Virtual Server'.
Note! Data to be filled in may differ according to which type LXC or KVM you have chosen.

PXC2 38.png
To manage your virtual server simply press 'Manage' button next to it.

You can find information about managing your virtual servers in next section.

PXC2 39.png
If you do not need a particular virtual server anymore, press 'Delete' button to remove it.
PXC2 40.png

[edit] Private Network Management

Move to 'Private Network Management' to add, delete and edit your private networks.

Please keep in mind that this option must be enabled by administrator in your product's 'Module Settings' previously and a private IP address must be added in the Proxmox Addon.
Otherwise you will not be able to add any private network successfully.

PXC2 60.png
In that section you will find all existing private networks with any details such as assigned virtual machines.
To create a new network press 'Add Private Network'.
PXC2 61.png
Type in the name and select virtual machines from available that will have the private IP Addresses assigned.
PXC2 61 1.png
New private network automatically appears on the list. You may edit (1) it or delete (2) whenever needed.
PXC2 61 2.png

[edit] Templates Management (KVM Only)

Press 'Templates', you will be redirected to a site where you will find the list of currently created templates along with their details and access to basic actions.
PXC2 62.png
You may edit or delete existing templates. To add a new one, simply press 'Add Template' button.

OS templates do not consume any resources such as CPU sockets, memory etc.
Important! When you convert server into a template, it is consumed in the process! There is no possibility to revert it back.

PXC2 63.png
Select server from dropdown menu and type in its short description. Save changes when ready.
PXC2 64.png

[edit] Client Area - VM Management

Client area interface of virtual server should look like the one on the screen below.

As you can see, control panel contains useful options needed for managing VPS.
The module allows your customers to easily boot, stop, reboot and shutdown their VM through pressing a specific button.
Clients can also upgrade server and access VNC, SPICE and noVNC consoles.
Any additional tools are described in details in below sections.

PXC2 41.png

[edit] noVNC Console

noVNC console allows your clients to connect with their server in the easiest possible way.
PX2 39 1.png

[edit] SPICE Console

Spice console enables you to connect with virtual machine using SPICE.

Note: Your client needs to download and install client side SPICE application in order to connect with VM.

PX2 40.png

[edit] Xterm.js Console

Xterm.js console enables you to connect to virtual machine using Xterm.js.

You must update the scripts on Proxmox v2.6.0. To do so open folder: UploadOnProxmoxServer/5.2-10 and upload content on all your proxmox servers.

PX2 40 1.png

[edit] Upgrade

Upgrade feature allows you to change server details and resources except 'Template' and 'Password' . To edit your server, click 'Upgrade' button.

Afterwards, alter options you desire and confirm through pressing 'Save Changes' button.

PXC2 42.png

[edit] Client Area - Additional Tools

[edit] Reinstall

Reinstall feature can be used to reinstall a new OS on the VM by the clients on their own.

You can provide your clients to either select a new OS from a provided KVM templates to automatically system replacement, or let them choose the ISO image for manual system installation.

Note: The ISO images can only be used for the KVM virtualization type, while VM templates can be used either for KVM or LXC.
Additionally the new OS password for the KVM OS reinstallation will be set based on the previous service password while for the LXC user can define it before the new installation.

PXC2 38 1.png
You can configure the available 'KVM OS Templates' for clients in the 'KVM Configuration' .
PXC2 38 2.png
In the same way choose available 'ISO Images' from the can configure the 'CD/DVD-ROM Drive' .
PXC2 38 3.png
Remember to also gain your clients access to selected reinstallation types in the 'User's Options' .
PXC2 38 4.png

[edit] Backups

To create a single backup, proceed to 'Backups' section and click 'New Backup' as shown on the following screen.
PXC2 47.png
Now choose 'Compress Dump File' and 'Backup Mode' from dropdown menus.

Afterwards, press 'Add' button.

PXC2 48.png
To restore VM from a backup simply press 'Restore' and then click 'OK' button in a popup window to confirm.
PXC2 49.png

[edit] Backup Jobs

By pressing 'Backup Jobs' in the client area, you will be carried to a backup jobs management page.

To add a new backup job press 'New Job' as shown on the following screen.

PXC2 50.png
Now, define backup time, mark days to run it and choose 'Compression Dump File' and 'Backup Mode' from dropdown menus.

Next, press 'Add' button. You may also enable email notifications here.

PXC2 51.png

[edit] Usage Graphs

Under 'Usage Graphs' page, a client can find graph with CPU usage, memory usage, network traffic and disc I/O.

They can also switch the timeline of the graphs by choosing it from a dropdown menu pointed on the following screen.

PXC2 46.png

[edit] Task History

All changes of VM status are listed in 'Task History'.

Additionally, each access to the VM through SPICE console is shown here.

PXC2 52.png

[edit] Network

'Network' section allows your clients to view their VM's network interface.

Depending on the settings of the product (private network is used), they can also create/remove them. This feature is optional.

PXC2 53.png

[edit] Snapshots

Use snapshot to remember the contents of virtual machine memory current state. You may use them later to restore the VM settings.
PXC2 52 1.png
Press 'Take Snapshot' button and fill out the form to take a snapshot.
Name it (use alphabetical characters only), choose whether to include RAM and add some description.
PXC2 48 11.png

[edit] Firewall

Owing to 'Firewall' page, your clients can set up firewall rules and enable security group for theirs servers from your WHMCS client area.

As you can see, you can easily modify and remove previously added rules and security groups.
To add a new firewall rule (1) or predefined security group (2) use the buttons marked on the following screen.

PXC2 53 1.png
You can add a firewall rule in two ways. Both of them require choosing direction, action, interface, source and destination.

The first way (red) is by choosing macro from a 'Macro' dropdown field.
The second way (blue) consist of choosing protocol and filling source and destination ports out.
Additionally, you can enable rule and add a comment to it.
Press 'Add' to create a rule.

PXC2 53 2.png
Inserting a security group consists of choosing security group and interface on which group has to be used.

Additionally, you can enable security group and add a comment to it.
Click 'Add' to use the security group.

PXC2 53 3.png

[edit] Firewall Options

View and edit firewall options.
PXC2 53 4.png

[edit] Disks (KVM only)

View and manage hard disk within defined limits, add new one or remove additional disks if you wish.
PXC2 52 2.png

[edit] Scheduled Task

Proceed to 'Scheduled Tasks' section to view details on any current task.
PXC2 52 3.png


[edit] IP Manager Integration

Owing to integration with IP Manager For WHMCS you are able to easily create IP addresses subnets and assign them to desired products.

Note: This integration works for both LXC and KVM virtualization types.

1. Proceed to IP Manager For WHMCS → Subnets tab in order to prepare IP addresses subnet for Proxmox Cloud For WHMCS.
2. Edit a previously created IP addresses subnet and create custom field 'MAC Address' with desired MAC address at each IP address in the subnet.
More about creating custom fields can be found here.

PX 49.png
3. Afterwards, create a new configuration and assign a previously created subnet to it.

Note: Multiple IP addresses subnets can be assigned to a single configuration.
4. Now, link the configuration with Proxmox Cloud product via product, server or configurable option.
On the following screen we have linked them via a configurable option assigned to the Proxmox Cloud product.

PX 50.png
5. Now, enable integration by proceeding to '3rd Party Integration' tab.

Press 'Activate' next to 'proxmoxCloud' module type as shown on the following screen.

PXC 54.png
6. Next, assign a previously created configuration to the submodule.

Press 'Configure', choose the configuration and press 'Save Changes'.

PXC 55.png

[edit] Importing VM

Our module allows you to easily import VM into your cloud product.

To do so, press 'Import VM' as shown on the following screen.

PXC2 45 3.png
Afterwards, select the node on which the server exists and fill in 'VMID' field.

Confirm importing through pressing 'Save Changes' button.

PXC2 45 4.png

[edit] Custom Hooks

Our module allows you to use custom hooks, all you need is knowledge of PHP programming language.

Custom hooks are placed in 'your_whmcs/modules/servers/proxmoxCloud/customhooks.php' .
You can find there all custom hooks and basic information about them.
A full list of available custom hooks:

proxmoxCloud_beforeCreateVM 
proxmoxCloud_afterCreateVM
proxmoxCloud_beforeTerminateVM
proxmoxCloud_afterTerminateVM
proxmoxCloud_beforeCreate
proxmoxCloud_afterCreate
proxmoxCloud_beforeTerminate
proxmoxCloud_afterTerminate
proxmoxCloud_afterSuspend
proxmoxCloud_afterUnsuspend
proxmoxCloud_afterIPAdditionByAdmin
proxmoxCloud_afterIPDeletionByAdmin
proxmoxCloud_afterIPAdditionByUpgrade

[edit] Configurable Options

When you successfully set up a product, your clients can order it by choosing from the default configurable options.

Note! If automatically generated configurable options do not seem to fulfill your clients needs, you can edit them using this guide.

PXC246.png
If you decide to set up pricing per server resource ordered, you can find instruction to proceed here.
PXC248.png

[edit] Management of Billing

When you combine Proxmox Cloud For WHMCS with Advanced Billing For WHMCS, you will be able to set up additional billing options.

Module allows you to charge your customers basing on the server resources used by them.

PXC49.png
With Advanced Billing For WHMCS module, you can also display your customers current server resource usage and their cost.
PXC50.png

[edit] Products Autoscaling

If you want to meet the needs of your clients then give them the possibility to scale provisioned servers according to their current load automatically.

To achieve that you need our Proxmox Cloud Autoscaling extension with Advanced Billing For WHMCS product.
Only then, when you have such a combination of products your offer will be full.

PXC52.png
With the combination of these three items, you will be able to formulate a set of rules basing on which specified servers will be modified at the right time.

Advanced Billing For WHMCS will bill your clients for the currently used servers and its extension, Proxmox Cloud Autoscaling, will adjust the size of Cloud product to the current needs.

PXC51.png

[edit] Tips

1. Operations performed on the virtual servers are not executed immediately. Give your Proxmox Virtual Environment some time for processing the request and execution of operation.
2. Multiple physical Proxmox servers can be joined into one cluster.

When they are joined into one cluster, you can access all of them by connecting to any of them.
While auto-node creates new VM on the server(node) with the most free resources, server-node creates VM on the server(node) which IP address it has (WHMCS's server configuration).

3. OS Templates are not automatically downloaded while configuring a product.
For each virtualization type, templates are downloaded from the Proxmox server depending on which one of them they are generated for.
4. To name the location accordingly to your needs, within the module change the lang into:
$_LANG['node_X']='Your friendly name for node_X';
5. When PAM authentication is used it is necessary to create a client first in order to change the password correctly. Read more about it here.
6. As this module supports templates system, any changes made in the module's templates files will be saved after the upgrade process.
7. If you currently use the module in the 2.3.2 version or previous, and would like to migrate to Proxmox VE V5.X, you need to update the files on your Proxmox server to the new version from the 'UploadOnProxmoxServer' folder.
8. You can use the 'IPSet IP Filter' option for firewall to prevent IP spoofing. Click here to read more about IP Sets.
9. 'Minimum Network Rate Limit' option allows you to change the previously entered 'Default Network Rate Limit' value to a new one if the current 'Bandwidth Limit' is already exhausted.
Note that the 'Bandwidth Limit' can also be used for WHMCS overage billing calculation as described here.
PXC2 70 1.png

[edit] Update Instructions

Essential guidance through the process of updating the module is offered here.

Keep in mind there is a quick and easy option in our client area that will let you upgrade the license of your module to an open source version at any time - and at a lower price!
To take advantage of it, simply use the License Upgrade button located on the product's page and a discounted invoice will be generated automatically.

[edit] Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
2. Error 'Could not create PVE2_API object' during connecting via noVNC console.

Reason: User account does not have permission to access noVNC console.
Solution: Proceed to product's 'Module Settings' tab and check whether selected user permission grant right for noVNC console.
Afterwards, proceed to client's hosting and run 'Change User Role' on it.

3. Error 'This connection is untrusted' during connecting via noVNC console.

Reason: Your certificate is not valid.
Quick Solution: Your client needs to add Proxmox address to certificate exception list.
Best Solution: Configure valid certificate.

4. Blank page during connecting via noVNC console.

Reason: You have not uploaded the additional files on the Proxmox server.
Solution: Open 'UploadOnProxmoxServer' and upload content of proper version on all Proxmox servers into the '/' path.

5. Error 'Function "ssh2_connect" does not exist. Please Install SSH2 PECL before you start using the script.'

Reason: You have not updated php.ini file
Solution: After SSH2 PECL installation be sure that you have updated php.ini files for CLI and webserver.

6. After you have updated your Proxmox Cloud For WHMCS to Proxmox Cloud For WHMCS V2.0.0, it is always required to save your product configuration in module settings again.
7. If you see an error: 'Invalid VLAN TAG Range' configuration or other when trying to add a new private network, please make sure you have completed all required options in Module Settings.
These are: 'Network Device' → 'Private Bridge', 'VLAN TAG Range From' and 'VLAN TAG Range To'.
8. 'OS Architecture Type ' option for LXC virtualization type is currently not supported as it not implemented in Proxmox itself.
We are sorry for inconvenience.
9. Error: "Only root can set 'serial0' config".

Solution: Turn off the Xterms.js console in the product configuration.

10. Error "Parameter verification failed. ([maxfiles] - Only root may set this option.)"

Reason: User is other than "root" or server authentication is set to Proxmox VE
Solution: In server configuration, set the root details and select PAM as the authentication type.

Navigation
WHMCS Modules
WHMCS Widgets
Translations
cPanel Modules
General
FAQ
Community
Proxmox Cloud 2.X For WHMCS