OpenStack VPS And Cloud For WHMCS
Contents |
About OpenStack VPS For WHMCS
OpenStack VPS For WHMCS is a module which allows you to automatically provision virtual servers to your customers. The great advantage of this module is the fact that customers can order and manage virtual servers, backups and many more in your own WHMCS client area. |
- Admin Area Features:
✔ Create/Suspend/Unsuspend/Terminate Server |
✔ Change Package - Supports Configurable Options |
✔ Change Password - Xen Virtualization Only |
✔ Rescue/Unrescue Server |
✔ View Server Status And Details |
✔ View Interface Details |
✔ View List Of Scheduled Tasks |
✔ Configure Client Area Features Per Product |
✔ Define Backup Quantity Limit |
✔ Set Security Groups |
✔ Enable Backups Routing |
✔ Execute Custom Scripts On Boot |
✔ Run Extended Connection Test |
- Client Area Features:
✔ View Server Status And Details |
✔ Start/Stop/Pause/Unpause/Resume/Rebuild Server |
✔ Reboot Server - Soft/Hard |
✔ Reset Network |
✔ Rescue/Unrescue Server |
✔ Change Password For Xen Virtualization |
✔ Access noVNC VNC, RDP, SPICE Or Serial Console |
✔ Create/Restore/Delete Backups |
✔ Download Public & Private SSH Keys |
✔ View List Of Scheduled Tasks |
- Configurable Options:
✔ Flavor |
✔ VM Image |
✔ IP Addresses |
✔ Backups Files Limit |
✔ Disk |
✔ RAM |
✔ VCPUs |
✔ Region |
✔ Custom Script Files |
- Required Components:
✔ Keystone |
✔ Glance |
✔ Nova |
✔ Neutron |
✔ Ceilometer (Required For Advanced Billing For WHMCS) |
- General Info:
✔ Automated Generation Of SSH Keys - Public SSH Key Is Injected To VM Automatically |
✔ Integrated With Advanced Billing For WHMCS v3.2.2 And Later - Actual Server Resource Usage Billing (read more) |
✔ Integrated With Server Allocator For WHMCS - Automatic Assignment Of Specified Servers To Products (read more) |
✔ Multi-Language Support |
✔ Supports Cloud-Init Scripts |
✔ Supports OpenStack Pike and Earlier |
✔ Supports OpenStack Gnocchi |
✔ Supports PHP 5.4 Up To PHP 7 |
✔ Supports WHMCS Templates Five and Six |
✔ Supports WHMCS V6 and V7 |
Installation and Configuration
This tutorial will show you how to successfully install and configure OpenStack 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. In the downloaded file you will find two packages that support different PHP versions. 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. It does not apply to open source versions. Note: You can check current PHP version in your WHMCS. To do so proceed to 'Utilities' → 'System' → 'PHP Info'. |
3. Extract the downloaded file and choose the one with the right PHP version. Upload and extract the PHP file into the main WHMCS directory. The content of PHP version files should look like this. |
4. When you install OpenStack VPS For WHMCS for the first time you have to rename 'license_RENAME.php' file. File is located in 'modules/servers/OpenStackVPS/license_RENAME.php' . Rename it from 'license_RENAME.php' to 'license.php' . |
5. In order to configure your license key, you have to edit the previously renamed 'license.php' file. Enter your license key between quotation marks as presented on the following screen. |
6. The last step is setting up a cron job (each 5 minutes suggested). Use cron job below but switch 'your_whmcs' with your root WHMCS path. php -q /your_whmcs/modules/servers/OpenStackVPS/cron/cron.php |
Configuration of Server
7. Now, we will show you how to configure a new product. Go to the 'Setup' → 'Products/Services' → 'Servers' and press 'Add New Server' . |
8. Next, enter your server name, IP address/hostname (which may required API version at the end of the address), username, password and admin tenant ID. Choose 'OpenStackVPS' from the dropdown menu and press 'Save Changes' . |
9. After you configure your server correctly, you can check the connection with the OpenStack server. Simply edit the previously created server and press 'Test Connection' as shown on the screen below. |
10. It is time to create a server group. To do so, click on 'Create Server Group' . |
11. Enter a name, click on your previously created server, press 'Add' and afterward 'Save Changes' . |
Configuration of Product
12. In order to create and configure a product, go to the 'Setup' → 'Products/Services' → 'Products/Services' . Click on 'Create a New Group' . |
13. Enter product group name and press 'Save Changes' . |
14. When you have a product group, you can create your product. To create a product click on 'Create a New Product' . |
15. Afterward, choose your product group and type from the dropdown menus, enter your product name and press 'Continue'. 'Product Type' should be set to 'Hosting Account'. |
16. Now, go to the 'Module Settings' section, choose both 'OpenStackVPS' and your previously created server group from the dropdown menus. Module should automatically save and reload settings. If not, click on 'Save Changes' manually. |
17. Start from selecting a 'Default Tenant' . 'Check access' will return 'OK' if you set up permissions correctly. |
18. Afterward, set up a network. Choose 'Fixed Network' , 'Floating Network' and 'Default Number Of IP Addresses' . You can set up network in two ways. You can find more information about the configuration here. |
19. At this step you can set up backups. Mark the 'Backups Routing' checkbox if you want to replace oldest backup with newest one when backups file limit is reached. |
20. Mark a security group from 'Use Security Groups' and select 'Console Type' . If you wish to use SSH keys, leave 'Inject SSH Key' marked (virtualization has to support the 'Inject File' feature). |
21. You can also take advantage of the dedicated Volume and set it as the location of your Virtual Machine Disk,
To do so, make sure to tick the Use Volumes checkbox and enter the desired number into the Default Volume Size field. |
22. Finish through selecting features available at the client area. Mark the checkbox next to a feature in order to enable it. Press 'Save Changes' when you are done. |
VPS With Predefined Resources
Our module allows you to offer OpenStack VPS to your clients in two ways, with either predefined or configurable resources. In this section we will show you configuration of VPS with predefined resources. |
23. Select a 'Default Flavor' and 'Default VM Image' . 'Default Flavour' defined resources assigned to a VM while 'Default VM Image' allows you to choose the VM image used to create a new VM. |
Congratulations! You have just finished the installation and configuration of the module with predefined resources. |
VPS With Configurable Resources
24. Preparing VPS with configurable options consists of pressing 'Generate default' as shown on the following screen. It will prepare default configurable options which can be afterward easily edited as described in this article.
Note: The second and the third options results in creation of a new flavor on your server each time a new order is made. |
Custom Config Scripts
25. In this area, you can write a custom script using Cloud-Init and arrange it to be executed on newly created VMs. This way you can automate your work instead of making all kinds of specific images for specific tasks manually.
|
On the example below, we will show an examplary script responsible for setting the password to 'newpass01' for the Ubuntu root user. You can achieve it by writing: chpasswd: list: | ubuntu:newpass01 expire:False |
You can configure scripts in the same format, but for clients' individual choice when ordering the product. All you need to do is add a new configurable option and assign it to the OpenStack VPS product. |
Afterward, your clients can choose during the ordering process: |
Using this method, you can perform assorted actions on newly created machines, e.g.: modifying files, preinstalling & preconfiguring software, executing any statements that would normally be executed via the terminal.
or
You can add many scripts in the exact way. |
Management
OpenStack VPS For WHMCS allows your customers to manage their OpenStack VPS via the client area in your WHMCS system. You can monitor and manage each product from your WHMCS admin area. |
If you decided to select the Use Volumes feature, you will see an additional section named Volumes. |
Ordering
Owing to configurable options, you are able to offer a product which your clients can tailor according to their needs. Additionally, you are able to set up pricing for each configurable option, which make your offer even more competitive. |
Client Area
Client area interface of OpenStack VPS should look like the one on the screen below. As you can see, the control panel contains useful options needed for managing a VPS. Module allows your customers to easily start/stop, pause/unpause, resume, soft reboot, hard reboot and reset network of their servers through pressing the specific button. |
Volumes
In case your OpenStack VPS is running with the Use Volumes option, the client area may look a bit different. It will now include an additional section named Volumes |
Rebuild
The rebuild feature allows your clients to change a server image. Press the 'Rebuild' button as shown on the following screen in order to move to the rebuild page. |
To reinstall your server, choose an image and confirm through clicking on 'Rebuild' . |
Rescue Mode
The rescue mode provides a mechanism for a VM access even in case the VM's image renders the instance inaccessible - e.g. if instance's filesystem becomes corrupted. The rescue VM will be launched to permit the user to fix their VM. |
Before you continue please note that the rescue VM will be set up with the same network configuration as the real VM. |
When you want to disable the rescue mode, click the 'Unrescue' buton. TheVM status will then also return to 'ACTIVE'. |
Backups
Your customers can also create a backup of VPS. To do so, press the 'Backups' button. |
Now, choose a backup name and click 'Backup Now' . |
To restore a VPS from backup, simply press the 'Restore' button next to it. As you may notice on the following screen, presented earlier the 'First Backup' backup was replaced with the 'New Backup' . |
noVNC Console
One of the most interesting functionality is a noVNC console where your clients can remotely manage their server. To access it, simply click on the 'Console' button. |
noVNC is a browser based VNC client. It was implemented using HTML5 Canvas and WebSockets. |
SSH Keys
Due to a limitation in WHMCS product create process, OpenStack VPS For WHMCS generates SSH key pair automatically. The public SSH key is automatically injected into a VM while the private key can be downloaded from the client area. |
Public SSH key in other hand, can be downloaded as many times as your client will need it. Press 'Download Public Key' as shown on the following screen to save it on your disk. |
Network Configuration Cases
OpenStack VPS For WHMCS allows you to set up two types of network. The first one is a network without a floating IP address. |
The second type of network is the network with a floating IP address. Select 'Shared Network' as 'Fixed Network' and 'Public' as 'Floating Network' . |
Configurable Options
In case that standard configuration is not fitting your needs, you can adjust it through configurable options. To do so, go to 'Setup' → 'Products/Services' → 'Configurable Option' and press the edit button next to a configurable option used by your product. |
Here you can view the products that this configurable option group is assigned to. Now we will show you how to edit options. Let's say that you want to add an option to order VPS with 8GB (8192 MB) RAM. |
You will see a popup window, so make sure that your browser will not block it. To add a new option, enter it in a textbox under all other options. If you want to replace it with an option you currently have, simply edit its text box. |
Management of Billing
When you combine OpenStack 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 based on the server resources used by them. |
With Advanced Billing module, you can also display your customers the current server resource usage, their cost, usage history and charts. |
Tips
1. Due to some requests may take time to be completed, we implemented 'Scheduled Tasks' . Tasks visible at 'Scheduled Tasks' are subsequently performed by a cron job. |
2. Important: module has to use admin endpoints instead of public endpoints. In properly configured OpenStack server, wget from WHMCS server should be able to get any data from any admin endpoint. wget openstack:9292 --2014-03-31 09:35:24-- http://openstack:9292/ Resolving openstack(openstack)... 192.168.1.222 Connecting to openstack(openstack)|192.168.1.222|:9292... connected. HTTP request sent, awaiting response... 300 Multiple Choices Length: 520 [application/json] Saving to: `index.html' 100%[==========================================================>] 520 --.-K/s in 0s 2014-03-31 09:35:24 (118 MB/s) - `index.html' saved [520/520]
wget openstack:8777 --2014-03-31 09:41:05-- http://openstack:8777/ Resolving openstack(openstack)... 192.168.1.222 Connecting to openstack(openstack)|192.168.1.222|:8777... connected. HTTP request sent, awaiting response... 401 Unauthorized Authorization failed. |
3. A primary IP address is always assigned by OpenStack server when a VM is created Therefore, if you decide to order 2 IP addresses, then 3 addresses will be assigned. The primary one and the two additionally ordered. If you wish only one IP address to be assigned to a single product, please set the filed 'Default Number Of IP Addresses' to '0' or leave it empty in the product's 'Module Settings'. |
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! |
Common Problems
1. When you have problems with connection, check whether your SELinux or firewall does not block ports. |
2. In case of persisting connection problems, please make sure you have the following ports open:
8774, 35357, 9292, 5000, 8777, 9696, 8776 |