Proxmox VE Cloud VPS For WHMCS
Contents
|
About Proxmox VE Cloud VPS For WHMCS
Proxmox VE Cloud VPS 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. |
- Admin Area Features:
✔ Create/Suspend/Unsuspend/Terminate User Account |
✔ Change Package |
✔ Change User Role |
✔ Reset Bandwidth |
✔ Migrate/Import/Delete Server |
✔ View Available Resources (Memory, vCPUs, Disks, Networks) |
✔ Display Disk And Bandwidth Usage Of Each Product |
✔ View Servers Status And Details |
✔ View Available IP Addresses |
✔ View User Details |
✔ Set Up KVM And LXC Product Configuration: |
✔ Main Configuration Limits |
✔ Server Limits |
✔ Mount Point (LXC) |
✔ Backup |
✔ Network And Private Network Settings With SDN Support |
✔ Hard Disk (KVM) |
✔ Additional Disks (KVM) |
✔ Boot |
✔ Firewall |
✔ Firewall Options (KVM) |
✔ Cloud-Init (KVM) |
✔ Guest Agent (KVM) |
✔ User |
✔ Miscellaneous |
✔ Load Balancer |
✔ KVM And LXC Configuration |
✔ Additional KVM And LXC Configuration |
✔ High Availability Cluster |
✔ Console |
✔ Client Area Features |
✔ Configurable Option Units |
✔ CPU Priority |
✔ Generate Configurable Options |
✔ Additional Configuration Features: |
✔ Define Resource Limits: |
✔ Static |
✔ Dynamic |
✔ 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 Backups Routing |
✔ Enable Auto VM Backups Before Reinstallation |
✔ Enable Reset Usage First Day Of Month |
✔ Define Node Selection: |
✔ Server-Node |
✔ Auto-Node |
✔ Custom Chosen Node |
- Proxmox Addon Features:
✔ Display Servers: |
✔ 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 And Private IP Addresses Per Server/VLAN/Tag/Node/Bridge: |
✔ IPv4 Addresses |
✔ IPv6 Addresses |
✔ IPv6 Subnets |
✔ View Logs Of IP Assignment Changes |
✔ VM Cleaner - Manage VM Not Existing In Your WHMCS |
✔ Convert KVM VPS To KVM Template |
✔ Define VM ID Ranges Per Server |
✔ Set Minimum VM ID For Product Without ID Ranges Defined |
✔ Provide Server Credentials For Cloud-Init Scripts |
✔ Configure Scheduled Backups, Firewall And Operating Systems Templates |
✔ Configure Resource Weights For Load Balancer Prioritization |
✔ Configure Tasks Repetition Threshold And Email Notifications |
✔ Configure Console Proxy |
✔ Synchronize User Permissions |
✔ Create And Manage Custom Cloud-Init Scripts |
- Proxmox VE Widget
✔ View Faulty VM Deployments |
✔ View Failed Tasks |
✔ View Cluster Remaining Resources |
✔ View Node Resources |
- Client Area Features:
✔ Create/Edit/Delete VM Instances On Selected Servers |
✔ Create/Edit/Delete Virtual Networks |
✔ View Available Resources And Usage (Memory, vCPUs, Disks, Networks) |
✔ Set Up Virtual Machines: |
✔ Define Machine Settings: |
✔ Name |
✔ Type |
✔ Description |
✔ Define Machine Parameters: |
✔ Location |
✔ Sockets (KVM) |
✔ Cores (LXC) |
✔ vCPU (KVM) |
✔ CPU Priority |
✔ VM RAM |
✔ SWAP (LXC) |
✔ Disk Size |
✔ Default User (KVM) |
✔ Password |
✔ SSH Key |
✔ Search Domain (KVM) |
✔ Name Servers (KVM) |
✔ Add Virtual Networks |
✔ Add Additional Disks |
✔ Start/Reboot/Stop/Shut Down/Delete Server |
✔ Reconfigure Server Network |
✔ Access noVNC, SPICE, And Xterm.js Console |
✔ View And Manage Machine Details |
✔ View And Manage Disks |
✔ View And Manage Virtual Networks And Interfaces |
✔ Take, Manage, Schedule And Restore Snapshots |
✔ Create, Manage And Restore Backups |
✔ Restore Backups From: |
✔ Any Owned Server |
✔ Proxmox Backup Server (PBS) |
✔ Restore Backups Of: |
✔ Selected Single Files And Directories With Option To Download Them (PBS) |
✔ Full Server Backups |
✔ Schedule Automatic Backups In Defined Periods |
✔ Edit Firewall Options And Manage Its Rules |
✔ View Tasks History |
✔ View CPU/Disk/Memory/Network Graphs Usage |
✔ Reinstall Server Using: |
✔ OS Templates (KVM) |
✔ ISO Images |
✔ Choose Server Resources While Ordering And Upgrade/Downgrade Them Freely |
- Configurable Options:
✔ KVM Limits: |
✔ CPU Sockets |
✔ CPU Cores |
✔ CPU Limit |
✔ CPU Units Limit |
✔ Memory |
✔ Storage |
✔ IPv4 Addresses |
✔ IPv6 Addresses |
✔ IPv6 Subnets |
✔ Backups Size |
✔ Backups Files |
✔ Snapshots |
✔ Bandwidth |
✔ Network Rate |
✔ VCPUs |
✔ Virtual Networks |
✔ Snapshot Jobs |
✔ Storage Disk Space |
✔ LXC Limits: |
✔ CPU Limit |
✔ CPU Units Limit |
✔ Memory |
✔ SWAP |
✔ Storage |
✔ IPv4 Addresses |
✔ IPv6 Addresses |
✔ IPv6 Subnets |
✔ Backups Size |
✔ Backups Files Limit |
✔ Snapshots |
✔ Bandwidth |
✔ Network Rate |
✔ Virtual Networks |
✔ Snapshot Jobs |
✔ Storage Disk Space |
- General Info:
✔ Supports Cloud-Init (KVM) |
✔ Supports PVE And PAM Authentication |
✔ Supports KVM And LXC Virtualization |
✔ Supports Proxy For Proxmox Console Connections |
✔ Integrated With Advanced Billing For WHMCS - Actual Server Resource Usage Billing |
✔ Integrated With Proxmox VE VPS For WHMCS - Remote Provisioning And Management Of Virtual Servers |
✔ Integrated With IP Manager For WHMCS - Complete Control And Easy Assignment Of IP Subnets (LXC) |
✔ Fully Integrated With Lagom Client Theme |
✔ Multi-Language Support |
✔ Supports Proxmox VE 6.X, 7.X And 8.X |
✔ Supports IPv4 And IPv6 |
✔ Supports PHP 8.2 Back To PHP 7.4 |
✔ Supports WHMCS Themes "Six" And "Twenty-One" |
✔ Supports V8.11 Back To WHMCS V8.8 |
✔ Requires ionCube Loader V13 Or Later |
✔ Easy Module Upgrade To Open Source Version |
Installation and Configuration
This tutorial will show you how to successfully install and configure Proxmox VE Cloud VPS For WHMCS. We will guide you step by step through the whole installation and configuration process. |
Installation
1. Log in to our client area and download the module. |
2. Extract the package and upload its content into the main WHMCS directory.
The content of the package to upload should look like this. |
Warning: The next step is important, make sure you do not skip it! |
3. Open 'UploadOnProxmoxServer' and upload content of the proper version on all Proxmox Virtual Environment 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 1: If the version of the Proxmox server you are using is not available, choose the package with the highest version number that is lower than the one you are currently using. |
4. When you install Proxmox VE Cloud VPS For WHMCS for the first time, you have to rename the 'license_RENAME.php' file. This file is located in 'modules/servers/proxmoxCloudVps/license_RENAME.php'. Rename it from 'license_RENAME.php' to 'license.php'. |
5. 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. |
6. In the next step, set up the 'storage' folders as recursively writable. These folders are available under two locations:
|
Activation of Proxmox Addon
8. Firstly, you should activate Proxmox Addon. To do so, log in into your WHMCS and navigate to 'System Settings' → '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. |
9. 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'. |
Configuration of Server
10. Now, we will show you how to configure a new product. Go to 'System Settings' → 'Servers' and press 'Add New Server'. |
11. Next, enter your server name, IP address, username and password. Choose 'Proxmox Cloud VPS' from a dropdown menu and press 'Save Changes'. |
12. After you have configured your server correctly, you will see the following screen. You can check connection with the Proxmox Virtual Environment server. To do so, simply press 'Test Connection' as shown on the screen below. |
13. It is time to create a server group. To do so, click on 'Create New Group'. |
14. Enter name, click on your previously created server, press 'Add' and afterwards 'Save Changes'. |
Configuration of Product
15. In order to create and configure a product, go to 'System Settings' → 'Products/Services'. Click on 'Create a New Group'. |
16. Enter the product group name and press 'Save Changes'. |
17. When you have a product group, you are able to create your product. To create a product, click on 'Create a New Product'. |
18. Afterward, choose your product group from dropdown menus and point its type, enter your product name and choose 'Proxmox Cloud VPS' as a module name. Press 'Continue'. 'Product Type' can be set to 'Server/VPS' but nameservers will need to be added later. |
19. Now, go to the 'Module Settings' section and choose your previously created server group from the dropdown menu. Next, click on 'Save Changes'. |
20. Firstly, choose 'Virtualization Type' from the dropdown menu. Then, proceed to the next section which is 'Main Configuration' and set proper values here. Available virtualization types:
You can also choose how often the bandwidth usage should be calculated. |
KVM Virtualization Type
21. The setting of the KVM virtualization type (skip this step if you have chosen the LXC virtualization type). There are a few sections underlined that need your attention. Please, complete carefully the 'KVM Configuration' , 'Additional Disks' , 'Client Area Features' sections. Note: If you want to allow creating VMs based on 'Installation From Archive' remember to enable and select 'Archives' for the clients to choose from. |
LXC Virtualization Type
22. Setting of the LXC virtualization type (skip this step if you have chosen the KVM virtualization type). Firstly, complete the 'General' configuration and then proceed to the 'Main Configuration' , 'LXC Configuration' , 'Network' , and 'Client Area Features' sections. |
Finalizing The Configuration
23. Private Network Management - in order to allow clients to manage their private networks, set up the 'Network' and 'Private Network' sections properly.
Note: Configure these three options for the KVM and LXC virtualization. Note2: For SDN Private Network type please refer to Tips section, point 12. |
24. The next step is setting up the configuration of backups. Define backup settings in the 'Backup' section through defining 'Storage' and enabling 'Backups Routing' . |
25. Set up server limits to control the size of created servers. |
26. The final step is generating 'Configurable Options' . Click on the 'Create Configurable Options' button. |
Now, you may decide which options should be generated for your product. Adjust configurable options to your needs and press 'Confirm' . |
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/addons/proxmoxAddon/cron/cron.php queue Do not forget to replace 'your_whmcs' with your WHMCS root location. The cron can be also executed every single minute in order to perform the action more often. |
Congratulations! You have just finished the installation and configuration of the module. |
Configuration of Addon
28. 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 VE VPS and Proxmox VE Cloud VPS modules - these jobs are the most important to assure fluent work of the modules, suggested frequency is 5 minutes.
|
29. 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. Define the limit of tasks that will be executed with a single cron run, just type in the required number into the 'Tasks Limit' field. Here it is also possible to turn on 'Debug Mode' if you need to register module logs. |
30. 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. |
31. Start with defining the IP address type, choose among: 'IPv4', IPv6' and 'IPv6 subnet'. Then, depending on the selected type, provide: For IPv4 and IPv6 addresses types
|
For "IPv6 Subnet" address type
Decide whether the created addresses will be private or not. |
Move to the 'Details' tab. 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. Remember to press 'Confirm' button when ready. |
32. You are now able to create new virtual machines at the product. The client area of a successfully created product should look similar to the one presented on the screen below. |
Proxy Installation For Console Connection
A comprehensive guide detailing the installation, update instructions, and operational flow for the Proxmox Proxy application can be found in a dedicated article accessible through the following link. We encourage you to refer to it for further insight into the Proxmox Proxy application. |
The proxy feature can be looked on as an added security boost for your infrastructure. It hides your Proxmox server so that your clients will not get to know its actual address when connecting to the server via the console in your system. |
Proxy must be connected with Proxomx server. To verify if the connection between these two is successful, you may run the following command:
curl -v https://10.10.11.48:8006 where 10.10.11.48:8006 is the node IP address. |
Before you begin the process of connecting the console to the server through a proxy, you need to download the proxy application file. The file can be found under the following link after you have logged in to your ModulesGarden account. |
1. Create a new VPS server, which you may run on a Proxmox server. It is advised to use the KVM virtualization type. Warning! The used VPS may NOT have any services running, such as: PHP, WebServer (e.g. apache, nginx) or MySQL server. |
2. Configure the network on the virtual machine, make sure the network works correctly, to do so you may use the below command:
ping modulesgarden.com If everything is fine, assure that basic server security settings have been established. |
3. Log into the machine on which you are going to set up proxy. |
4. Install the docker engine and the docker compose:
https://docs.docker.com/engine/install/ |
5. Upload the application files into a proper directory, eg: /root/proxmox-proxy (create if needed). Then unzip the files. |
6. Move to the following catalog:
cd /root/proxmox-proxy Note that the exact directory depends on the previous step where you uploaded te files. |
7. Purchase or generate your own SSL certificate, and then use the certificate to overwrite the following files: 'nginx/localhost.crt' and 'nginx/localhost.key' . |
8. Find the 'example.env' file and rename it to '.env'. Then open the just renamed '.env' file and provide a random set of signs to create the database and root passwords: DB_PASSWORD and MYSQL_ROOT_PASSWORD |
9. Run the below command:docker-compose up --build -d |
10. Move to docker container:
docker exec -it proxyphp bash and run the installation script: php -q /var/www/html/installer.php install When ready, find the API Key and keep it safe, you will need it later on when pasting the data into the Proxmox Addon, see point 12 for details. |
11. Next, copy your machine IP address to WHMCS. You may check the IP address using the below command:
ip a Note: Remember to check the IP address in your virtual machine, not in the proxyphp conatiner. |
12. Configure all the required data in the Proxomox addon in your WHMCS. Move to 'Addons' → 'Proxmox Addon' → 'Settings'. At the bottom you will find section 'Console Proxy' with 'Host' and 'API Key' fields. Note that the Host field may include either an IP address or a domain. It is extremely important that you paste here the same data as the ones used in the SSL certificate. Provide the necessary data and confirm the changes. |
13. Make sure the server works. In order to do so, please open the address: https://{vmip}:8443. Remember to replace {vmip} with a valid virtual machine IP address, for example: https://192.168.8.113:8443/ |
14. Finally, try to open the noVNC console on your WHMCS Proxmox product to check if the proxy configuration is working properly. |
Important: If your certificate expires in the meantime, you will need to buy/generate a new one and follow the below steps:
docker-compose up --build -d |
Note: If you ever encounter an iconcube error while rerunning the 'docker-compose up' command, delete all local docker images related to your docker file using the following command and try again.
$ docker rmi -f $(docker images -a -q) |
For instruction on how to react in case an update is required, please refer to the dedicated article including all details on the Proxmox Proxy application. |
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. Note: Cloud-Init functionality is supported for the KVM virtualization only. |
Custom Configuration In Addon
Cloud-Init Scripts
The Cloud-Init Scripts section allows adding ready scripts that will be available to choose from in the products' configuration page. The selected there script will be used while crating the virtual machine. Press 'Add New' to manually add your script. |
Name your new Cloud-Init script and type in or paste a ready configuration. The configuration must include:
Here is an exemplary configuration of a Cloud-Init script. You may alter it to fit your settings and paste into the 'Script' ' field: #cloud-config hostname: {$domain} manage_etc_hosts: true fqdn: {$domain} user: {$username} password: {$passwordHash} chpasswd: expire: False users: - default package_upgrade: true |
A full list of available variables related to a Proxmox VE Cloud VPS type of the product/service:
{$vm.id} {$vm.name} {$vm.password} {$vm.passwordHash} {$vm.ipv4Addresses} {$vm.ipv6Addresses} {$vm.ciuser} {$vm.sshkeys} Where:
Important: If you want to use a {} sign in your script that has no variable inside, you must place it inside: {literal}{/literal}, for example: '{literal}{"X": "Y"}{/literal}'. |
Manage created Cloud-Init scripts, edit/delete singe scripts or use mass action to delete numerous scripts. |
Server Details
In order to use the Cloud-Init successfully, you need to also provide SSH details to let the script send the IP addresses to the Proxmox server. Move to Servers → Servers List → Details → Settings, there you will find fields that are responsible for the correct SSH connection.
You also have to select the 'Snippet Storage' to locate the Cloud-Init script in the correct catalog. |
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 learning the details about cloud-init configuration on your Proxmox server - click here for more details.
|
Among other client area features, find 'Cloud-Init Script' and select the scripts that your clinets will be allowed to choose from when creating a new virtual machine. |
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.
rm -rf /var/lib/cloud/sem/* /var/lib/cloud/instance /var/lib/cloud/instances/* && cloud-init init && cloud-init modules -m final
cat /var/log/cloud-init.log cat /var/log/cloud-init-output.log |
Management
Proxmox VE Cloud VPS 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.
|
Management of Addon
Servers Management
Servers List
In 'Addons' → 'Proxmox Addon' → 'Servers' → 'Servers List' you can find the configured Proxmox servers. RAM details:
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 VE VPS server. |
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. |
VMs
The 'Services' 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. |
Check the node and VMID: |
Clusters
The next tab contains the list of clusters with information on uptime, CPU as well as CPU, SWAP, memory and disk usage data. Important: Defined here node limits are strongly connected with the Load Balancer and node prioritization method used by the module to create new virtual machines. |
Press the "Edit" icon to manage the node and its limits.
Setting node limits is crucial as creating virtual machines is largely based on them, once reached, a new virtual machine cannot be created on that node. |
Press 'Node Details' and you will get all the summary and usage graphs: |
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. |
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. |
Next, choose a VM to convert. Fill out 'Description' field and press 'Confirm'. |
You may also delete unused templates here. Delete single templates or use the mass action to delete templates in bulk. |
Server 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. |
Node Groups
Under the 'Node Groups' subsection, you can create new groups and assign nodes to them. |
Provide a name of your group and allot preferred nodes from the dropdown menu. |
Now, navigate to the 'Module Settings' of your product and find the 'Load Balancer' section. Here you can select one or more of the previously created groups. |
Services List
In 'Addons' → 'Proxmox Addon' → 'Servers' → 'Services List' you can find details of any Proxmox product. |
Press 'More Details' button to get the node and VMID information. |
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. |
On pressing the 'Details' icon, you will get any information on Configuration, Status and DNS: |
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. |
IP Management
In the 'IP Management' tab you can manage the IP addresses of Proxmox products. You can create both single IP addresses (IPv4 and IPv6 are supported) and IP pools which then can be assigned to created VMs. Important!: In order to create a virtual machine, you must previously add public IP addresses. |
When you are creating a new IP address or a pool, you may define:
Note: please go back to point 31 of the addon configuration to learn more details about adding IP addresses. |
IP Logs
The 'IP Logs' includes the history of the IP addresses that were removed by the admin and which are again available in the proxmox addon IP Management pool. Keep in mind that only addresses that were automatically added when creating the VM. Removed IP addresses, that were the manually assigned, are not logged here. |
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. |
3. Afterward, create a new configuration, and assign the previously created subnet to it. Note: Multiple subnets can be assigned to a single configuration. 4. Now, link the configuration with Proxmox VPS product via a product, server or configurable option. |
4. When Proxmox starts creating a virtual machine, it retrieves the assigned IP address to the service and assigns it directly to the virtual machine. It is possible to add VLAN Tag Custom Filed in the very same way as the "MAC Address" field. |
General Settings
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. To learn more about nodes and their allowed limits please go back to the Clusters section of this documentation. |
In order to use Load Balancer you must previously enable it in the product's configuration: Define the behavior of the tool:
|
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 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.
Node A (Free Ram: 60%, Free CPU: 20%, Free Disk Space: 50%, Number of VMs: 5) The next step is sorting the nodes according to each resource, by assigning them corresponding priorities from 1 to 4. |
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. 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. If you decide to use the 'Load Balancer' tool, define the resource weights to adjust their prioritization of nodes according to your needs. |
Global Limitations
|
Task Settings
This setting can help you stay informed about failed tasks. When a threshold of task retries is reached a notification email message will be sent out. You can set up a three-tier notification system with separate email contents. |
The default email templates include:
You can pick different email templates from the dropdown fields in the tasks settings or edit the default templates by navigating to 'System Settings' → 'Email Templates'. |
Admin Area Features
The 'Admin area Features' section includes a list of all possible features that can be activated and then available or not for the admin under the product's details. Below you can find a list of features dedicated to:
|
Tasks
Under the 'Tasks' tab, you can check a list of performed tasks along with their status. Moreover, you are granted the possibility to check 'Info' for a particular task, run the task again by clicking the 'Run Task' button, or delete it. |
Widget
Proxmox VE VPS For WHMCS features a dedicated widget that displays crucial information about the module right in the WHMCS dashboard. The information displayed includes:
Each list can be hidden by disabling it in the addon's general settings. |
You can change the height of the widget by editing the 'widget.tpl' file located in '/whmcs/modules/widgets/ModulesGardenProxmoxAddon/templates'. Find this code fragment:
<style> #MGProxmoxAddonWidget{ height: 300px; } </style>
and change it to include <style> #MGProxmoxAddonWidget{ height: 300px; max-height: none !important; } </style>
Now you will be able to adjust the widget's height by editing the |
Client Area
Client area interface of Proxmox VE Cloud VPS For WHMCS allows your clients to create their own virtual servers. They can also view resources used and manage existing virtual machines. |
New Virtual Machine
In order to add a new virtual machine, press the 'Add New Virtual Machine' button. |
Now, provide a name of your new virtual machine and choose a proper type from the dropdown menu. Moreover, you can add 'New Virtual Network' and 'New Additional Disk' here.
Confirm creation through pressing 'Confirm'. |
You can now easily 'Edit' (1) or 'Delete' (2) your virtual machine.
You can find information about managing your virtual servers in next section. |
Virtual Network Management
Move to 'Virtual Networks' section to add, delete and edit your virtual 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. |
Templates Management (KVM Only)
Once you 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. |
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. |
Select server from dropdown menu and type in its short description. Save changes when ready. |
Client Area - VM Management
The client area interface of your virtual machine should look like the one on the screen below. As you can see, the control panel contains useful options needed for managing VPS. |
noVNC Console
noVNC console allows your clients to connect with their server in the easiest possible way. |
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. |
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. |
Client Area - Additional Tools
Reinstall
The 'Reinstall' section is divided into two parts. There are 'OS Template' and 'ISO Images' subsections. Note: The ISO images can only be used for the KVM virtualization type, while VM templates can be used either for KVM or LXC. |
Remember to gain your clients access to selected reinstallation types in the 'Client Area Features' of the product's configuration. |
Backups
Backups List
To create a single backup, proceed to 'Backups List' section and click 'Add Backup' . |
Now choose 'Compress' and 'Mode' from dropdown menus. Afterwards, press 'Confirm' button. |
To restore VM from a backup simply press 'Restore' and then click 'OK' button in a popup window to confirm. |
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 'Add Backup Job' . |
Now, define backup time, mark days to run it and choose 'Compression' and 'Mode' from dropdown menus. Next, press 'Confirm' button. You may also enable email notifications here. |
Available Resources
NExt to the 'Backup Jobs', there is a table with information on 'Available Resources'. You will find there data on limits put on backups:
Next to the statistics there is a comfortable and easy to read progressive chart to illustrate the usage. If size is set to 'Unlimited', the chart does not show any progress. |
Graphs
Under '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. |
Tasks
All changes of VM status are listed in the 'Tasks' section. Additionally, each access to the VM through SPICE console is shown here. |
Network
Under the 'Network' section, you will find 'Virtual Network' and 'Interfaces' subsections. Depending on the settings of the product (private network is used), they can also create/remove them. This feature is optional. |
Snapshots
Use snapshots to remember the contents of virtual machine memory current state. You may use them later to restore the VM settings. |
It is also possible to set up 'Snapshot Jobs' where snapshots can be created according to your preferences (daily or hourly). Click on 'New Job' in order to add a new snapshot job. |
As you complete the form, remember to fill in the 'Name' field without spaces or special characters- only capital letters and numbers are allowed here. |
Firewall
Firewall Rules
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. |
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. |
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. |
Additional Actions:
|
You may manage the hierarchy of rules on the list. In front of each rule, you can find its 'Position' marker. The higher the rule is on the list, the higher priority the rule has assigned.You may change the rule position using the 'Move up/down' arrows. |
Firewall Options
Under this subsection, you can easily view and edit firewall options. |
Disks (KVM only)
View and manage hard disk within defined limits, add new one or remove additional disks if you wish. |
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. |
3. Afterward, create a new configuration, and assign the previously created subnet to it. Note: Multiple subnets can be assigned to a single configuration. 4. Now, link the configuration with Proxmox VPS product via a product, server or configurable option. |
4. When Proxmox starts creating a virtual machine, it retrieves the assigned IP address to the service and assigns it directly to the virtual machine. It is possible to add VLAN Tag Custom Filed in the very same way as the "MAC Address" field. |
Importing VM
Our module allows you to easily import VM into your cloud product. To do so, press 'Import Virtual Machine' as shown on the following screen. |
Afterwards, choose the preferred virtual machine from the dropdown menu and complete the 'Password' field.. Confirm importing through pressing 'Confirm' button. |
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. |
Management of Billing
When you combine Proxmox Cloud VPS 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. |
With Advanced Billing For WHMCS module, you can also display your customers current server resource usage and their cost. |
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. |
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 'Network Rate Limit' value to a new one if the current 'Bandwidth Limit' is already exceeded. Note that the 'Bandwidth Limit' can also be used for WHMCS overage billing calculation as described here. |
10. Configuring 'Default User' per template. Move to 'Proxmox Addon' → 'Servers' → 'Server Details' → 'Templates' → 'Create/Edit Template'. You may assign a default user to a single template, that user will be automatically assigned to the newly created VM. |
11. Creating a VM without any CPU limits. In the module settings, under 'Server Limits', set up 'CPU Limit' to: 0-1. Next, make sure that all values under 'CPU Priority' section are cleared. |
12. SDN Support: The module supports SDN private network type. It is possible to create virtual networks (vnets) at datacenter level thanks to the Software Defined Network (SDN). In the module, the whole configuration of SDN is located in 'Module Settings' → 'Private Network' section. There you will find dedicated options, these are:
|
13. Some sections of the Proxmox Addon, such as 'Scheduled Backup Templates', 'Firewall Templates' and 'Operating Systems Groups' are only applicable for Proxmox VE VPS For WHMCS. Those features do not provide any functionality for Proxmox VE Cloud VPS For WHMCS. |
Update Instructions
1. Essential guidance through the process of updating the module is offered here. Ensure successful completion of the module update by carefully following each step, thereby preventing data loss or any unforeseen issues. |
2. To upgrade the module from Proxmox Cloud For WHMCS to Proxmox VE Cloud VPS For WHMCS correctly, you need to follow these steps:
your_whmcs/modules/servers/proxmoxCloud
your_whmcs/modules/servers/proxmoxCloud/cron/cron.php
5-minute interval suggested for: php -q your_whmcs/modules/addons/proxmoxAddon/cron/cron.php queue php -q your_whmcs/modules/addons/proxmoxAddon/cron/cron.php update-server-usage 1-hour interval suggested for: php -q your_whmcs/modules/addons/proxmoxAddon/cron/cron.php rrddata
Important! Please remember to reissue the licence in the client area after uploading new files to the main WHMCS directory.
|
Upgrade Guide
Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability? There is an option that not only proves to be cost-effective in the long run but also includes prioritized support services, making it a truly valuable investment. Opt for the Open Source version of your Proxmox VE Cloud VPS For WHMCS module to unlock these benefits. Follow a comprehensive guide covering the transition process, the advantages it brings, and step-by-step instructions on what to do next after the order has been successfully finalized. |
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. |
3. Error 'This connection is untrusted' during connecting via noVNC console. Reason: Your certificate is not valid. |
4. Blank page during connecting via noVNC console. Reason: You have not uploaded the additional files on the Proxmox server. |
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 |
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 |