Personal tools
Namespaces

Variants
Actions

OpenStack VPS And Cloud For WHMCS

From ModulesGarden Wiki
(Difference between revisions)
Jump to: navigation, search
(About OpenStack VPS For WHMCS)
(About OpenStack VPS & Cloud For WHMCS)
 
(187 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 
<meta name="keywords" content="openstack vps for whmcs, openstack vps configuration, whmcs openstack vps management, whmcs openstack vps installation, whmcs openstack vps common problems, about whmcs openstack vps, whmcs openstack vps documentation, whmcs openstack vps faq, whmcs openstack vps help, whmcs openstack vps guide, whmcs openstack vps wiki, whmcs openstack vps tutorial, whmcs openstack vps tips, whmcs openstack vps wiki"></meta>
 
<meta name="keywords" content="openstack vps for whmcs, openstack vps configuration, whmcs openstack vps management, whmcs openstack vps installation, whmcs openstack vps common problems, about whmcs openstack vps, whmcs openstack vps documentation, whmcs openstack vps faq, whmcs openstack vps help, whmcs openstack vps guide, whmcs openstack vps wiki, whmcs openstack vps tutorial, whmcs openstack vps tips, whmcs openstack vps wiki"></meta>
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The OpenStack VPS For WHMCS Module."></meta>
+
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The OpenStack VPS & Cloud For WHMCS Module."></meta>
  
=About [http://www.modulesgarden.com/products/whmcs/openstack_vps/features OpenStack VPS For WHMCS]=
+
=About [https://www.modulesgarden.com/products/whmcs/openstack-vps-and-cloud OpenStack VPS & Cloud For WHMCS]=
 
{|
 
{|
|style="padding: 10px 0px 10px 0px;"|'''OpenStack VPS For WHMCS''' is a module which allows you to automatically provision virtual servers to your customers.<br/>
+
|style="padding: 10px 0px 10px 0px;"|'''OpenStack VPS & Cloud For WHMCS''' is a module which allows you to automatically provision virtual servers to your customers.<br/>
 
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.<br/>
 
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.<br/>
Additionally, it allows you to conveniently overview and manage all the customers' servers.
+
Additionally, it allows you to conveniently overview and control all the customers' servers.
 
|}
 
|}
 
<!--a comment maybe? -->
 
<!--a comment maybe? -->
Line 14: Line 14:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Change Package - Supports Configurable Options
+
|style="padding: 0px 0px 0px 30px;"|✔ Change Package - Supports Configurable Options And Volume Resizing
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Change Password - Xen Virtualization Only
+
|style="padding: 0px 0px 0px 30px;"|✔ Change Password
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ View Server Status And Details
+
|style="padding: 0px 0px 0px 30px;"|✔ Start/Stop/Pause/Unpause/Resume Server
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ View Interface Details
+
|style="padding: 0px 0px 0px 30px;"|✔ Soft/Hard Reboot Server
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ View List Of Scheduled Tasks
+
|style="padding: 0px 0px 0px 30px;"|✔ Reset Network
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Configure Client Area Features Per Product
+
|style="padding: 0px 0px 0px 30px;"|✔ Rescue/Unrescue Server
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Backup Quantity Limit
+
|style="padding: 0px 0px 0px 30px;"|✔ Toggle VM Protection From WHMCS Termination And Rebuilding
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Set Security Groups
+
|style="padding: 0px 0px 0px 30px;"|✔ Access RDP, Serial, SPICE, Or VNC Console
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Enable Backups Routing
+
|style="padding: 0px 0px 0px 30px;"|✔ View Instance Status And Details
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Run Extended Connection Test
+
|style="padding: 0px 0px 0px 30px;"|✔ View Interfaces Details
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View Volumes Information
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Rebuild Virtual Machine From Image
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View/Add/Delete Custom Firewall Rules
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Create/Restore/Delete Backups
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View And Run Scheduled Tasks
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Provide Product Configurations:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Project Settings:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Choose Default VM Image/Flavor/Region
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Provide Random Domain Prefix
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Set Availability Zone
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Toggle Debug Mode
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Network Settings:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Choose Fixed/Floating Networks
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Define Default Number Of IP Addresses
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Backup Settings:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Enable Backups Rotation
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Enable Scheduled Backups
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Define Backups Quantity Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Define Backups Minimum Time Interval
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Snapshot Settings (For Volumes Only)
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Define Default Snapshot Files Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Virtual Machines Settings:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Enable Auto-generation SSH Key
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Define Default Volume Size And Type
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Set Security Groups
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Enable Password Management
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Choose RDP/Serial/SPICE/VNC Console Type
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Select Rescue Image
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Toggle VM Protection After Creation
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Toggle SSH Private Key Deletion Once Displayed
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Firewall Settings:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Apply Custom Rules
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Define Inbound/Outbound/Total Firewall Rules Limits
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Console Settings:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Open Console In New Window
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Configure Client Area Features Per Product
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Configure Admin Area Features Per Product
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Define Custom Flavor Specification
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Define Metadata
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Execute Custom Scripts On Boot
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Choose Welcome Email For VM Creation
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 45px;"|✔ Generate Configurable Options
 
|}
 
|}
 
*'''Client Area Features:'''
 
*'''Client Area Features:'''
Line 48: Line 174:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Start/Stop/Pause/Unpause/Resume/Rebuild Server
+
|style="padding: 0px 0px 0px 30px;"|✔ Start/Stop/Pause/Unpause/Resume Server
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Reboot Server - Soft/Hard
+
|style="padding: 0px 0px 0px 30px;"|✔ Soft/Hard Reboot Server
 
|}
 
|}
 
{|
 
{|
Line 57: Line 183:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Change Password For Xen Virtualization
+
|style="padding: 0px 0px 0px 30px;"|✔ Rescue/Unrescue Server
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Access noVNC Console
+
|style="padding: 0px 0px 0px 30px;"|✔ Change Server Protection Status
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Toggle VM Protection From WHMCS Termination And Rebuilding
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Change Password
 
|}
 
|}
 
{|
 
{|
Line 66: Line 198:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Download Public & Private SSH Keys
+
|style="padding: 0px 0px 0px 45px;"|✔ Pin Backups For Overwriting Protection
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ View List Of Scheduled Tasks
+
|style="padding: 0px 0px 0px 45px;"|✔ Toggle Scheduled Backups And Define Time Interval
 
|}
 
|}
*'''General Info:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Automated Generation Of SSH Keys - Public SSH Key Is Injected To VM Automatically
+
|style="padding: 0px 0px 0px 30px;"|✔ Access RDP, Serial, SPICE, Or VNC Console
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With <u>[http://www.modulesgarden.com/products/whmcs/advanced_billing/features Advanced Billing For WHMCS]</u> - Server Resource Usage Billing
+
|style="padding: 0px 0px 0px 30px;"|✔ View/Add/Delete Custom Firewall Rules:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Multi-Language Support
+
|style="padding: 0px 0px 0px 45px;"|✔ TCP
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports OpenStack Mitaka and Earlier
+
|style="padding: 0px 0px 0px 45px;"|✔ UDP
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 5.3 Up To PHP 7
+
|style="padding: 0px 0px 0px 45px;"|✔ ICMP
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Templates Five and Six
+
|style="padding: 0px 0px 0px 45px;"|✔ Other Protocols
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Supports WHMCS V6 and V7
+
|style="padding: 0px 0px 0px 30px;"|✔ Rebuild Virtual Machine From Image
 
|}
 
|}
*'''Available Configurable Options:'''
+
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Create/Restore/Delete Volume Snapshots
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Download Public & Private SSH Keys
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View Volumes Information
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View List Of Scheduled Tasks
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ Receive Email Notification After VM Creation
 +
|}
 +
 
 +
*'''Configurable Options:'''
 
{|
 
{|
 
|style="padding: 10px 0px 0px 30px;"|✔ Flavor
 
|style="padding: 10px 0px 0px 30px;"|✔ Flavor
Line 102: Line 249:
 
{|
 
{|
 
|style="padding: 0px 0px 0px 30px;"|✔ IP Addresses
 
|style="padding: 0px 0px 0px 30px;"|✔ IP Addresses
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Volume Size
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 0px 30px;"|✔ Backups Files Limit
 
|style="padding: 0px 0px 0px 30px;"|✔ Backups Files Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Snapshots Files Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Volume Type
 
|}
 
|}
 
{|
 
{|
Line 113: Line 269:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ VCPUs
+
|style="padding: 0px 0px 0px 30px;"|✔ VCPUs
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Total Firewall Rules Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Inbound Firewall Rules Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Outbound Firewall Rules Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Region
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Custom Script Files
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ Availability Zone
 +
|}
 +
*'''Supported Providers:'''
 +
{|
 +
|style="padding: 10px 0px 0px 30px;"|✔ Binero Public Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Bluvalt
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ China Unicom Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ City Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ CT Cloud Platform
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ DS Public
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ ELASTX OpenStack
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ INAP Bare Metal
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ INAP Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Limestone Networks
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Linaro Developer Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ NIPA - Enterprise Public Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Open Telekom Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ ORockCloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ OVH Public Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Rackspace Public Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ ScaleUp Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ STC Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ UOS Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ VEXXHOST Public Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ vScaler Public Cloud
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ warescale Public Cloud
 +
|}
 +
 
*'''Required Components:'''
 
*'''Required Components:'''
 
{|
 
{|
Line 129: Line 371:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 30px;"|✔ Ceilometer (Required For Advanced Billing For WHMCS)
+
|style="padding: 0px 0px 10px 30px;"|✔ Gnocchi (Required For Billing)
 +
|}
 +
*'''General Info:'''
 +
{|
 +
|style="padding: 10px 0px 0px 30px;"|✔ Automated Generation Of SSH Keys - Public SSH Key Is Injected To VM Automatically
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With [https://www.modulesgarden.com/products/whmcs/advanced-billing#features Advanced Billing For WHMCS] - Actual Server Resource Usage Billing
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With [https://www.modulesgarden.com/products/whmcs/server-allocator#features Server Allocator For WHMCS] - Automatic Assignment Of Most Suitable Servers To Products
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Multi-Language Support
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports Cloud-Init Scripts With WHMCS Variables
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports Latest Stable OpenStack and Previous
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports OpenStack Gnocchi
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports Virtuozzo Hybrid Infrastructure (VHI)
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports Limestone Networks Cloud Hosting Solutions
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 8.1 Back To PHP 7.4
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Themes "Six", "Twenty-One" And "Lagom WHMCS Client Theme"
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS V8.10 Back To WHMCS V8.6
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Requires ionCube Loader V12 Or Later
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 30px;"|✔ Easy [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module Module Upgrade] To [https://www.modulesgarden.com/products/whmcs/openstack-vps-and-cloud#open-source-version Open Source Version]
 
|}
 
|}
  
 
=Installation and Configuration=
 
=Installation and Configuration=
 
{|
 
{|
|style="padding: 10px 0px 30px 0px;"|'''This tutorial will show you how to successfully install and configure OpenStack VPS For WHMCS.''' <br />
+
|style="padding: 10px 0px 30px 0px;"|'''This tutorial will show you how to successfully install and configure [https://www.modulesgarden.com/products/whmcs/openstack-vps-and-cloud OpenStack VPS & 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 OpenStack VPS For WHMCS.'''
+
|style="padding: 10px 0px 20px 15px;"|'''1. Log in to our client area and download the module.'''
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:OSV1.png]]
 
|style="padding: 0px 0px 20px 25px;"|[[File:OSV1.png]]
 
|}
 
|}
 +
<!--
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''2. Upload and extract the module into the main WHMCS directory.'''
+
|style="padding: 0px 0px 15px 15px;"|'''2. In the downloaded file you might find one or two packages that support different PHP versions.'''<br/>
 +
In the most recent versions of the module, you will find only one package that supports PHP 7.2 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 25px;"|[[File:OSV2.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PHP73_81.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''3. When you install OpenStack VPS for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''Previous updates of the module may contain two packages dedicated to various PHP versions.'''<br/>
File is located in '' 'modules/servers/OpenStackVPS/license_RENAME.php' ''. Rename it from '' 'license_RENAME.php' '' to '' 'license.php' ''.
+
The first one that supports PHP 5.6 up to PHP 7.1, and the second one addressed to PHP 7.2 up to PHP 7.4.<br/>
 +
'''''Note:''' Keep in mind that PHP versions 5.6 up to 7.1 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 20px 25px;"|[[File:OSV3.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PHP56_74.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''4. In order to configure your license key, you have to edit a previously renamed '' 'license.php' '' file.'''<br />
+
|style="padding: 0px 0px 10px 15px;"|  '' '''Important''': This situation does not affect [https://www.modulesgarden.com/products/whmcs/openstack-vps-and-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;"|'''2. Extract the package and upload its content into the main WHMCS directory.
 +
The content of the package to upload should look like this.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:hjghjh.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''3. When you install OpenStack VPS & Cloud For WHMCS for the first time you have to rename the '' 'license_RENAME.php' '' file.'''<br />
 +
The file is located in '' 'modules/servers/OpenStackVpsCloud/license_RENAME.php' ''. Rename it from '' 'license_RENAME.php' '' to '' 'license.php' ''.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC3.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''4. In order to configure your license key, you have to edit the 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 at your client area → '' 'My Products' ''.
+
You can find your license key in our client area → '' 'My Products' ''.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV4.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC4.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|'''5. Next step is setting up a cron job (each 5 minutes suggested).'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''5. In the next step, set up the  '' 'storage' '' folder as recursively writable.'''<br />
Use cron job below but switch '' 'your_whmcs' '' with your root WHMCS path.<br />
+
This folder is available at '' 'your_whmcs/modules/servers/OpenStackVpsCloud' ''.
php -q /your_whmcs/modules/servers/OpenStackVPS/cron/cron.php
+
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC4_0.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|'''6. The last step is setting up a cron job (each 5 minutes suggested).'''<br />
 +
Use cron job below but switch the '' 'your_whmcs' '' with your root WHMCS path.<br />
 +
php -q /yourWHMCS/modules/servers/OpenStackVpsCloud/cron/cron.php queue
 +
|}
 +
 
==Configuration of Server==
 
==Configuration of Server==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''6. Now, we will show you how to configure a new product.'''<br />
+
|style="padding: 10px 0px 15px 15px;"|'''7. Now, we will show you how to configure a new product.'''<br />
Go to the '' 'Setup' '' → '' 'Products/Services' '' → '' 'Servers' '' and press '' 'Add New Server' ''.
+
Go to the '' 'Setup' '' → '' 'Products/Services' '' → '' 'Servers' '' and press '' 'Add New Server' ''.<br/>
 +
 
 +
'' '''Note:''' If you have WHMCS V7.8.X or later, we recommend using ''' 'previous experience' ''' of server configuration instead of the new wizard tool.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV5.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC5.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''7. Next, enter your server name, IP address/hostname, username, password and admin tenant ID.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''8. Next, enter your server name and connection details.<br/>
Choose '' 'OpenStackVPS' '' from a dropdown menu and press '' 'Save Changes' ''.'''
+
*Provide your Openstack 'IP address/hostname'
 +
 
 +
*In the next field, enter the '' 'endpoint identity path' '' if it is used. You can find its name in the OpenStack '' 'API Access' '' section, based on the '' 'Service Endpoint' '' address. <br/>Its path name is between the hostname/IP address and port/API version paths. You can leave this field empty if it is not used.<br/> '' '''Note:''' If you are using module  version prior to 1.8.1, provide the OpenStack address together with the endpoint in the hostname field - e.g. '10.10.10.253/identity' ''
 +
 
 +
*Do not also forget to select which API version you want to use ('' 'Default', 'V2' '' or '' 'V3' '').<br>'' '''Important''' - if this dropdown is '''empty''', please validate whether you provided correct data into the 'IP/Hostname', 'Identity Endpoint Path', 'Secure' or 'Port' overwrite fields.''
 +
 
 +
*Next, specify the details of your server. Choose '' 'OpenStack VPS Cloud' '' from the ''Type'' dropdown menu and provide the '' 'Username', 'Password' '' and admin '' 'Tenant ID.' ''<br />'' '''Note:''' To find your ''' 'Tenant ID' ''', log in to your OpenStack panel and go to the 'Identity' → 'Projects' menu. <br />Now you will need to identify the row which corresponds to your project. The 'Tenant ID' will be located in the 'Project ID' column of the identified project.''<br/>
 +
 
 +
*''Project Name'' - you may declare your project name to which this server is related ''(leave empty if not related to the OpenStack version you are using)''
 +
 
 +
*''Certificate Path'' - you can also provide a full certificate path to verify permissions ''(leave empty if not related to the OpenStack version you are using)''
 +
 
 +
*Optionally, enter your OpenStack custom ''Domain'' or leave this field as '' 'Default' ''.<br/>
 +
 
 +
*If your OpenStack uses https or any custom port, you can additionally provide the relevant configuration in '' 'Secure' '' and '' 'Port' '' fields.<br/>
 +
 
 +
Finally, press '' 'Save Changes' ''.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV6.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC6.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''8. After you configure your server correctly, you can check connection with OpenStack server.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''9. After you have configured your server correctly, you can check the connection with the OpenStack server.'''<br />
Simply edit previously created server and press '' 'Test Connection' '' as shown on the screen below.<br />
+
Simply, edit the previously created server and press '' 'Test Connection' '' as shown on the screen below.<br />
During test, connection with all required endpoints will be checked. For more information about connections, go to [http://www.docs.modulesgarden.com/OpenStack_VPS_For_WHMCS#Common_Problems Common Problems] section.
+
During the test, the connection with all related endpoints will be checked.<br/>
 +
Additionally you can change the endpoint addresses to make sure that all services have been connected successfully or select '' 'Don't use' '' if no endpoint is applicable to your OpenStack.<br/>
 +
'' '''Note:''' Any chosen endpoint address will be automatically saved after its selection so there is no need to save it manually after each change introduced.''
 +
<br/>
 +
 
 +
For more information about connections, visit the [[#Common Problems|Common Problems]] and [[#Tips|Tips]] sections.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV7.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC7.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''9. It is time to create a server group. To do so, click on '' 'Create Server Group' ''.'''
+
|style="padding: 0px 0px 20px 15px;"|'''10. It is time to create a server group. To do so, click on '' 'Create New Group'. '' '''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV8.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC8.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''10. Enter name, click on your previously created server, press '' 'Add' '' and afterwards '' 'Save Changes' ''.'''
+
|style="padding: 0px 0px 20px 15px;"|'''11. Enter a name, click on your previously created server, press '' 'Add' '' and afterward '' 'Save Changes'. '' '''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:OSV9.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC9.png]]
 
|}
 
|}
  
 
==Configuration of Product==
 
==Configuration of Product==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''11. In order to create and configure a product, go to the '' 'Setup' '' → '' 'Products/Services' '' → '' 'Products/Services' ''.'''<br />
+
|style="padding: 10px 0px 15px 15px;"|'''12. 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' ''.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV10.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC10.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''12. Enter product group name and press '' 'Save Changes' ''.'''
+
|style="padding: 0px 0px 20px 15px;"|'''13. Enter a product group name and press '' 'Save Changes'.'''''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV11.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC11.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''13. When you have a product group, you can create your product.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''14. When you have a product group, you can 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:OSV12.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC12.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''14. Afterwards, choose your product group and type from dropdown menus, enter your product name and press '' 'Continue'. '' '''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''15. Afterward, choose your product group and type from the dropdown menus, enter your product name and press '' 'Continue'. '' '''<br />
'' 'Product Type' '' should be set to '' 'Hosting Account'. ''
+
'' 'Product Type' '' should be set to '' 'Shared Hosting'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV13.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC13.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''15. Now, go to the '' 'Module Settings' '' section, choose both '' 'OpenStackVPS' '' and your previously created server group from dropdown menus.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''16. Now, go to the '' 'Module Settings' '' section, choose both '' 'OpenStack VPS Cloud' '' and your previously created server group from the dropdown menus.'''<br />
Next, click on '' 'Save Changes' ''.'''
+
The module should automatically save and reload settings. If not, click on '' 'Save Changes' '' manually.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV14.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC14.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''16. Start from selecting '' 'Default Tenant' ''.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''17. Start from defining '' 'Project Settings' ''<br />
'' 'Check access' '' will return '' 'OK' '' if you set up permissions correctly.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV15.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC15.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''17. Afterwards, set up a network. Choose '' 'Fixed Network' '', '' 'Floating Network' '' and '' 'Default Number Of IP Addresses' ''.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''18. Afterward, set up a network. Choose '' 'Fixed Network' '', '' 'Floating Network' '' and '' 'Default Number Of IP Addresses'.'' '''<br />
You can set up network in two ways. You can find more information about the configuration [http://www.docs.modulesgarden.com/OpenStack_VPS_For_WHMCS#Network_Configuration_Cases here].<br />
+
You can set up a network in two ways. You can find more information about the configuration [[#Network Configuration Cases|here]].<br />
We will set up a network without floating IP address as presented on the following screen.<br />
+
We will create the network without a floating IP address as presented on the following screen.<br />
Additionally, choose quantity of IP addresses assigned to product by typing it into '' 'Default Number Of IP Addresses' ''.
+
Additionally, choose a quantity of IP addresses assigned to a product by typing it into '' 'Default Number Of IP Addresses'.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV16.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC16.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''18. At this step you can set up backups.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''19. At this step you can configure the backup and snapshot settings.'''<br />
Mark '' 'Backups Routing' '' checkbox if you want to replace oldest backup with newest one when backups file limit is reached.<br />
+
*'''Backups'''<br/>
Afterwards, enter limit of backup files into '' 'Default Backups Files Limit' ''.
+
Enable '' 'Backups Rotation' '' if you want to allow replacing the oldest backup with a new one when the backup files limit has been reached.<br/>Afterward, enter a number of allowed backups that can be created into the '' 'Default Backups Files Limit' '' field. Enter '' '-1' '' for unlimited.<br/>
 +
 
 +
You may also let your clients define the backups tasks, they will be then created automatically according to the defined time interval.<br/> Select the '' 'Scheduled Backups' '' option and then set the minimum time interval which your clients will have to obey when defining their task schedule at  '' 'Backups Time Interval'. '' <br/> '' 'Client Scheduled Backups' '' - if enabled client may manually add tasks to the scheduled tasks.<br/>
 +
'''''Note:''' The number of backups created manually and those scheduled and created automatically is counted together and their overall sum cannot be higher than the defined limit.''
 +
 
 +
*'''Snapshots'''<br/>
 +
Define a default number of allowed snapshots. Enter '' '-1' '' to set it to '' 'Unlimited'.''  <br/>
 +
'''''Important:''' The option '''Use Volumes''' must be enabled under the 'Virtual Machines Settings' in order to let clients create snapshots.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV17.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC17.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''19. Mark security group from '' 'Use Security Groups' ''.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''20. Define the virtual machine settings.'''
If you wish to use SSH keys, leave '' 'Inject SSH Key' '' marked (virtualization has to support '' 'Inject File' '' feature).<br />
+
*Mark a security group from '' 'Use Security Groups' '' and select '' 'Console Type'. ''<br /> Apart from the selected here groups you may also apply custom rules to the VM. You can learn more about them at [[#Custom Security Group|Custom Security Group]] section.
In order to use passwords for your VM, leave '' 'Password Management' '' marked (virtualization has to support '' 'Set Admin Pass' '' feature).<br />
+
 
Please make sure, that virtualization used by you supports mentioned actions.<br />
+
*If you wish to use SSH keys, leave '' 'Generate SSH Key' '' marked (virtualization has to support the '' 'Inject File' '' feature).<br />
Full list of supported  features can be found [https://wiki.openstack.org/wiki/HypervisorSupportMatrix here].<br />
+
*In order to use passwords for your VM, leave '' 'Password Management' '' marked (virtualization has to support the '' 'Set Admin Pass' '' feature).<br />Please make sure that virtualization used by you supports mentioned actions.<br />Full list of supported  features can be found [https://wiki.openstack.org/wiki/HypervisorSupportMatrix here].<br />
'''Important:''' It is recommended to leave '' 'Delete SSH Private Key' '' marked.
+
'' '''Important:''' It is recommended to leave '' 'Delete SSH Private Key' '' marked.''<br/>
 +
 
 +
*The following types of console can be chosen: '' 'VNC', 'RDP', 'SPICE' '' and '' 'Serial'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV17_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC17_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''20. Finish through selecting features available at the client area.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''21. You can also take advantage of the dedicated Volume and set it as the location of your Virtual Machine Disk''',
Mark checkbox next to feature in order to enable it. Press '' 'Save Changes' '' when you are done.
+
To do so, make sure to tick the '' 'Use Volumes' '' checkbox and enter the desired number into the '' 'Default Volume Size' '' field.<br />
 +
Once this option is enabled, your clients will no longer have access to the '' 'Backup' '' and '' 'Rescue' '' functions, so you may as well leave the respective fields empty.<br/>
 +
'''''Note:''' Scheduled backups cannot be generated when volumes are in use; only manual backups are available.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:OSV18.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC17_2.png]]
 
|}
 
|}
 
==VPS With Predefined Resources==
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Our module allows you to offer OpenStack VPS to your clients in two ways, with predefined resources and configurable resources.<br />
+
|style="padding: 0px 0px 15px 15px;"|'''22. In the next step you may define the firewall rules settings.'''<br/>
 +
Enter the firewall inbound, outbound and total rules limits. When the limit is reached, the client will not be able to create a new rule until one of the existing rules has been removed.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC17_0.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''23. Next, select features available at the client area.'''<br />
 +
You can also decide which images used to rebuild the server will be available to your customers.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC18.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|'''24. Finally, enable features available for the administrator on the service page.'''<br />
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC18_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''25. In addition, you can also choose whether you want to send a welcome email after the VM has been successfully created by cron.'''<br />
 +
This feature can prove useful if you want clients to receive the notification once their VM is ready rather than immediately after product activation.<br/>If you decide on this option, we suggest that you also set the standard WHMCS configuration of the 'Welcome Email' to 'None' in the '' 'Details' '' tab of a product.<br/>Otherwise, the customer will receive both emails - after the product has been activated and after the VM has been successfully created on OpenStack.<br/>
 +
Press '' 'Save Changes' '' when you are done.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC18_2.png]]
 +
|}
 +
===VPS With Predefined Resources===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Our module allows you to offer OpenStack VPS & Cloud to your clients in two ways, with either predefined or configurable resources.<br />
 
In this section we will show you configuration of VPS with predefined resources.<br />
 
In this section we will show you configuration of VPS with predefined resources.<br />
Detailed information about configuration of VPS with resources chosen by client can be found [http://www.docs.modulesgarden.com/OpenStack_VPS_For_WHMCS#VPS_With_Configurable_Resources here].
+
Detailed information about configuration of VPS with resources chosen by a client can be found [[#VPS With Configurable Resources|here]].
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''21. Select '' 'Default Flavor' '' and '' 'Default VM Image' ''.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''26. Select a '' 'Default Flavor' '' and '' 'Default VM Image' ''.'''<br />
'' 'Default Flavour' '' defined resources assigned to VM while '' 'Default VM Image' '' allows you to choose VM image used to create new VM.
+
'' '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.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV19.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC19.png]]
 
|}
 
|}
 
{|
 
{|
Line 301: Line 675:
 
|}
 
|}
  
==VPS With Configurable Resources==
+
===VPS With Configurable Resources===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''21. Preparing VPS with configurable options consists of pressing '' 'Generate default' '' as shown on the following screen.'''<br />
+
|style="padding: 10px 0px 15px 15px;"|'''27. Preparing VPS with configurable options consists of pressing '' 'Create Configurable Options' '' as shown on the following screen.'''<br />
It will prepare default configurable options which can be afterwards easily edited as described in [http://www.docs.modulesgarden.com/General#How_To_Use_Configurable_Options this article].<br />
+
It will prepare default configurable options which can be afterward easily edited as described in [https://www.docs.modulesgarden.com/General#How_To_Use_Configurable_Options this article].<br />
'''Important''' Configurable option '' 'flavor|Flavor' '' will be overwritten by '' 'disc|Disc' '', '' 'ram|RAM' '' and '' 'vcpus|VCPUs' ''.<br />
+
'''''Important:''' Configurable option '' 'flavor|Flavor' will be overwritten by 'disc|Disc', 'ram|RAM' and 'vcpus|VCPUs'.''<br />
 
Therefore, you can solve this in three ways:
 
Therefore, you can solve this in three ways:
 
*Remove '' 'disc|Disc' '', '' 'ram|RAM' '' and '' 'vcpus|VCPUs' '' configurable option and rely completely on '' 'flavor|Flavor' ''.
 
*Remove '' 'disc|Disc' '', '' 'ram|RAM' '' and '' 'vcpus|VCPUs' '' configurable option and rely completely on '' 'flavor|Flavor' ''.
*Remove '' 'disc|Disc' '' and '' 'vcpus|VCPUs' '', and allow '' 'flavor|Flavor' '' being overwrited by '' 'ram|RAM' '' (multiple combinations allowed here).
+
*Remove '' 'disc|Disc' '' and '' 'vcpus|VCPUs' '', and allow '' 'flavor|Flavor' '' being overwritten by '' 'ram|RAM' '' (multiple combinations are allowed here).
 
*Remove '' 'flavor|Flavor' '' and rely completely on '' 'disc|Disc' '', '' 'ram|RAM' '' and '' 'vcpus|VCPUs' ''.
 
*Remove '' 'flavor|Flavor' '' and rely completely on '' 'disc|Disc' '', '' 'ram|RAM' '' and '' 'vcpus|VCPUs' ''.
''Note: The second and the third options causes a new flavor being made on your server each time a new order is made.''
+
''Note: The second and the third options results in the creation of a new flavor on your server each time a new order is made.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV20.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC20.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|'''Congratulations! You have just finished the installation and configuration of the module with configurable resources.'''
+
|style="padding: 10px 0px 15px 15px;"| You can now decide which options should be included in configurable options.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC20_1.png]]
 +
|}
 +
 
 +
===Custom Flavor Specification And Metadata===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|'''28. You may also use a customized '' 'Flavor Specification' '' and '' Metadata' '' as key and pair properties of your product configuration.'''<br/>
 +
Supported '' 'Custom Flavor Specification' '' format:
 +
key1=value1
 +
key2=value2
 +
 
 +
for example:
 +
hw:cpu_sockets = 3
 +
CIM_PASD_ProcessorArchitecture=x86
 +
 
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC21_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Supported '' 'Metadata' '' format that can be added:
 +
key1=value1
 +
key2=value2
 +
 
 +
for example:
 +
sw_database_cassandra_admin = cassandra
 +
sw_webserver_apache_http_port = 80
 +
admin_password = custom_password
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC21_2.png]]
 +
|}
 +
 
 +
===Custom Security Group===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|'''29. Optionally, you may create a custom security group with customized rules that will be added while creating the virtual machine.'''<br/>
 +
Select '' 'Apply Custom Rules' '' option at Virtual Machine Settings and enable '' 'Firewall' '' option in the client area.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC20_3.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Edit the ''additionalRules.json_sample'' file content located at ''modules/servers/OpenStackVpsCloud/app/Config/additionalRules.json_sample'' directory.<br/> Start with renaming it from ''additionalRules.json_sample'' to ''additionalRules.json''.<br/>
 +
That is what a default content of the ''additionalRules.json'' file looks like:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSV20_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Customize the rules according to your needs by providing:
 +
*'''direction''' - '' "egress" '' or '' "ingress" ''
 +
 
 +
*'''ethertype''' - '' "IPv4" '' or '' "IPv6" ''
 +
 
 +
*'''description''' - '' "your rule description" '' - visible in the panel only
 +
 
 +
*'''remote_ip_prefix''' - IP address, format bound to the ethertype field, e.g.: '' "::/0" ''
 +
 
 +
*'''port_range_min''' - value between 1 and 63535, eg: '' "101" ''
 +
 
 +
*'''port_range_max''' - value between 1 and 63535, e.g.: '' "200" ''<br/> In case you enter the same value in the '' 'port_range_min' '' and '' 'port_range_max','' then one port will be set, not a range of ports.
 +
 
 +
*'''protocol''' - enter one of the following: '' "tcp", "udp", "icmp", "custom" ''<br/> '''''Important:''' 'Protocol' must be provided if 'port_range' has been defined.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|Now, that your file is ready, a new security group will be created in your OpenStack panel and visible in the product's Module Settings under '' 'Use Security Groups' '' on the product creation.<br/> The rules are visible for the client in the '' 'Firewall' '' section. If you terminate the product, this group will be deleted as well.<br/>
 +
 
 +
'''''Important:''' When you are updating your module, and you do not want to overwrite your personalized ''additionalRules.json'' file you do not have to do anything.<br/> The file in the newest version of the module is named: '''additionalRules.json_sample''' and it will not overwrite the file in your system.''
 +
|}
 +
 
 +
===Custom Config Scripts===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|'''30. In this area, you can write a custom script using [https://raymii.org/s/tutorials/Automating_Openstack_with_Cloud_init_run_a_script_on_VMs_first_boot.html Cloud-Init] and arrange it to be executed on newly created VMs.'''<br />
 +
This way you can automate your work instead of making all kinds of specific images for specific tasks manually. <br /><br />
 +
'''Important notes:'''
 +
*Scripts can be written in standards like '''Bash''' or '''[https://yaml.org/about.html YAML]'''.
 +
*You can find examplary clout-init config scripts [https://cloudinit.readthedocs.io/en/latest/topics/examples.html here].
 +
*Initial scripts have to be supported by VPS operating system to be executed properly.
 +
*Scripts should be used only by advanced users. The incorrect usage of the scripts may damage your system!
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC44.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|On the example below, we will show an exemplary script responsible for setting the password to '' 'newpass01' '' for the Ubuntu root user.<br />
 +
You can achieve it by writing:
 +
 
 +
#cloud-config
 +
debug: True
 +
ssh_pwauth: True
 +
disable_root: false
 +
chpasswd:
 +
    list: |
 +
        root:{$password}
 +
expire: false
 +
runcmd:
 +
    - sed -i'.orig' -e's/without-password/yes/' /etc/ssh/sshd_config
 +
    - service sshd restart
 +
 
 +
 
 +
<!--
 +
chpasswd:
 +
  list: |
 +
  ubuntu:newpass01
 +
  expire:False-->
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC45.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|You can configure scripts in the same format, but for clients' individual choice when ordering the product.<br />
 +
All you need to do is add a new configurable option and assign it to the OpenStack VPS & Cloud product.<br />
 +
'''''Note:''' These scripts are executed regardless of the script specified in the module settings.''<br />
 +
The easiest way is through the edition of existing 'Configurable options for the OpenStack VPS & Cloud' group, and adding the new configurable option there.<br />
 +
For example, if you want to offer the pre-installed PHP version depending on a client's choice, you can add a new option named '''script_PHP|PHP version''' and then define multiple options, like on the screenshot below:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC46.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Afterward, your clients can choose during the ordering process:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSV47.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 15px;"|
 +
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.<br /><br />
 +
The general rule is that configurable option names should begin with '''script_prefix''' to be recognized as containing a custom script.<br />
 +
Then, choices under the option have their own names which are matched with a name of existing file with the corresponding script under the
 +
'''yourWHMCS/modules/servers/OpenStackVpsCloud/scripts''' path.<br />
 +
Note that files with scripts have to have '''exactly''' extension corresponding to the given entries in the configurable options.<br /><br />
 +
In the example above, there are two options: '''php5.yml''' and '''php7.yml''', therefore it makes the module read corresponding files:<br />
 +
*modules/servers/OpenStackVpsCloud/scripts/php5.yml
 +
or
 +
*modules/servers/OpenStackVpsCloud/scripts/php7.yml
 +
You can add many scripts in the exact way.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''From the version 1.9.0 you can also use the WHMCS variables of ordered products in your scripts.''' <br />
 +
 
 +
These variables can be managed in the same way as [https://docs.whmcs.com/Email_Templates#Merge_Fields merge fields] in email templates.<br/>
 +
 
 +
The exemplary execution of the clout-init test script is presented below:
 +
 
 +
<pre>
 +
#cloud-config
 +
 
 +
runcmd:
 +
    - sudo echo "account id: {$accountid}" >> /tmp/whmcs_info.txt
 +
    - sudo echo "service id: {$serviceid}" >> /root/whmcs_info.txt
 +
    - sudo echo "addon id: {$addonId}" >> /var/log/whmcs_info.txt
 +
    - sudo echo "user id: {$userid}" >> ~/whmcs_info.txt
 +
</pre>
 +
 
 +
You will save IDs of the WHMCS '' 'account', 'service', 'addon' '' and '' 'client' '' into the '' 'whmcs_info.txt' '' files in various directories on the created instance. <br/>Of course, you can use the variables in any custom script according to your needs.<br/>
 +
 
 +
'''''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}'. <br/>Otherwise, errors will occur.''<br/>
 +
 
 +
Below you can find a complete list of supported variables that can be managed in your custom scripts:
 +
|}
 +
 
 +
{| class="wikitable" style="margin-left: 15px; margin-bottom: 30px; margin-top: 0px;"
 +
! Variable
 +
! Variable
 +
! Variable
 +
! Variable
 +
! Variable
 +
|-
 +
| {$accountid}
 +
| {$configoption12}
 +
| {$server}
 +
| {$clientsdetails['password']}
 +
| {$clientsdetails['allowSingleSignOn']}
 +
|-
 +
| {$serviceid}
 +
| {$configoption13}
 +
| {$serverip}
 +
| {$clientsdetails['statecode']}
 +
| {$clientsdetails['language']}
 +
|-
 +
| {$addonId}
 +
| {$configoption14}
 +
| {$serverhostname}
 +
| {$clientsdetails['countryname']}
 +
| {$clientsdetails['isOptedInToMarketingEmails']}
 +
|-
 +
| {$userid}
 +
| {$configoption15}
 +
| {$serverusername}
 +
| {$clientsdetails['phonecc']}
 +
| {$clientsdetails['lastlogin']}
 +
|-
 +
| {$domain}
 +
| {$configoption16}
 +
| {$serverpassword}
 +
| {$clientsdetails['phonenumberformatted']}
 +
| {$clientsdetails['authmodule']}
 +
|-
 +
| {$username}
 +
| {$configoption17}
 +
| {$serveraccesshash}
 +
| {$clientsdetails['telephoneNumber']}
 +
| {$clientsdetails['authdata']}
 +
|-
 +
| {$password}
 +
| {$configoption18}
 +
| {$serversecure}
 +
| {$clientsdetails['billingcid']}
 +
| {$clientsdetails['datecreated']}
 +
|-
 +
| {$sld}
 +
| {$configoption19}
 +
| {$serverhttpprefix}
 +
| {$clientsdetails['notes']}
 +
| {$clientsdetails['cardtype']}
 +
|-
 +
| {$tld}
 +
| {$configoption20}
 +
| {$serverport}
 +
| {$clientsdetails['twofaenabled']}
 +
| {$clientsdetails['cardlastfour']}
 +
|-
 +
| {$packageid}
 +
| {$configoption21}
 +
| {$clientsdetails['userid']}
 +
| {$clientsdetails['currency']}
 +
| {$clientsdetails['cardnum']}
 +
|-
 +
| {$pid}
 +
| {$configoption22}
 +
| {$clientsdetails['id']}
 +
| {$clientsdetails['defaultgateway']}
 +
| {$clientsdetails['startdate']}
 +
|-
 +
| {$serverid}
 +
| {$configoption23}
 +
| {$clientsdetails['uuid']}
 +
| {$clientsdetails['cctype']}
 +
| {$clientsdetails['expdate']}
 +
|-
 +
| {$status}
 +
| {$configoption24}
 +
| {$clientsdetails['firstname']}
 +
| {$clientsdetails['cclastfour']}
 +
| {$clientsdetails['issuenumber']}
 +
|-
 +
| {$type}
 +
| {$customfields['vmID']}
 +
| {$clientsdetails['lastname']}
 +
| {$clientsdetails['gatewayid']}
 +
| {$clientsdetails['bankname']}
 +
|-
 +
| {$producttype}
 +
| {$customfields['privateFlavor']}
 +
| {$clientsdetails['fullname']}
 +
| {$clientsdetails['securityqid']}
 +
| {$clientsdetails['banktype']}
 +
|-
 +
| {$moduletype}
 +
| {$configoptions['flavor']}
 +
| {$clientsdetails['companyname']}
 +
| {$clientsdetails['securityqans']}
 +
| {$clientsdetails['bankcode']}
 +
|-
 +
| {$configoption1}
 +
| {$configoptions['isoImage']}
 +
| {$clientsdetails['email']}
 +
| {$clientsdetails['groupid']}
 +
| {$clientsdetails['bankacct']}
 +
|-
 +
| {$configoption2}
 +
| {$configoptions['ipAddresses']}
 +
| {$clientsdetails['address1']}
 +
| {$clientsdetails['status']}
 +
| {$clientsdetails['ip']}
 +
|-
 +
| {$configoption3}
 +
| {$configoptions['backupsFilesLimit']}
 +
| {$clientsdetails['address2']}
 +
| {$clientsdetails['credit']}
 +
| {$clientsdetails['host']}
 +
|-
 +
| {$configoption4}
 +
| {$configoptions['disk']}
 +
| {$clientsdetails['city']}
 +
| {$clientsdetails['taxexempt']}
 +
| {$clientsdetails['pwresetkey']}
 +
|-
 +
| {$configoption5}
 +
| {$configoptions['ram']}
 +
| {$clientsdetails['fullstate']}
 +
| {$clientsdetails['latefeeoveride']}
 +
| {$clientsdetails['allow_sso']}
 +
|-
 +
| {$configoption6}
 +
| {$configoptions['vcpus']}
 +
| {$clientsdetails['state']}
 +
| {$clientsdetails['overideduenotices']}
 +
| {$clientsdetails['email_verified']}
 +
|-
 +
| {$configoption7}
 +
| {$configoptions['totalRulesLimit']}
 +
| {$clientsdetails['postcode']}
 +
| {$clientsdetails['separateinvoices']}
 +
| {$clientsdetails['created_at']}
 +
|-
 +
| {$configoption8}
 +
| {$configoptions['inboundRulesLimit']}
 +
| {$clientsdetails['countrycode']}
 +
| {$clientsdetails['disableautocc']}
 +
| {$clientsdetails['updated_at']}
 +
|-
 +
| {$configoption9}
 +
| {$configoptions['outboundRulesLimit']}
 +
| {$clientsdetails['country']}
 +
| {$clientsdetails['emailoptout']}
 +
| {$clientsdetails['pwresetexpiry']}
 +
|-
 +
| {$configoption10}
 +
| {$configoptions['region']}
 +
| {$clientsdetails['phonenumber']}
 +
| {$clientsdetails['marketing_emails_opt_in']}
 +
|
 +
|-
 +
| {$configoption11}
 +
| {$configoptions['script_test']}
 +
| {$clientsdetails['tax_id']}
 +
| {$clientsdetails['overrideautoclose']}
 +
|
 
|}
 
|}
  
 
=Management=
 
=Management=
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|''' OpenStack VPS For WHMCS allows your customers to manage their OpenStack VPS via client area in your WHMCS system.'''<br />
+
|style="padding: 10px 0px 15px 15px;"|''' OpenStack VPS & Cloud For WHMCS allows your customers to manage their servers via the client area in your WHMCS system.'''<br />
 
You can monitor and manage each product from your WHMCS admin area.<br />
 
You can monitor and manage each product from your WHMCS admin area.<br />
1. Configurable options which enables you to view current VPS resources and change VPS specifications through changing configurable options and pressing '' 'Change Package' ''.<br />
+
1. Module commands (Create, Suspend/Unsuspend, Change Package)<br />
2. Module commands enables you to manage VPS status.<br />
+
2. Service actions (Stop VM, Pause VM, Soft/Hard Reboot, Reset Network, Rescue, Change Protection)<br />  
3. Here you can find VPS details and refresh them through pressing '' 'Refresh Details' '' icon.<br />
+
3. Instance details along with
4. Scheduled tasks status can be found in this table.<br />
+
*Interfaces,
5. In marked custom fields you can find IDs of VM and private flavor.
+
*Volumes (you will see the '' 'Volumes' '' section if you enabled the '' 'Use Volumes' '' feature),
 +
*Rebuild Virtual Machine
 +
*Firewall: ''add/delete rule''
 +
*Backups: ''create, restore, manage, delete''
 +
*Schedule Tasks: ''run, delete''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:OSV24.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC24.png]]
 
|}
 
|}
 +
 
==Ordering==
 
==Ordering==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Owing to configurable options, you are able to offer product which your clients can tailor according to their needs.<br />
+
|style="padding: 10px 0px 15px 15px;"|Owing to configurable options, you are able to offer a product which your clients can tailor according to their needs.<br />
 
Additionally, you are able to set up pricing for each configurable option, which make your offer even more competitive.<br />
 
Additionally, you are able to set up pricing for each configurable option, which make your offer even more competitive.<br />
 
'''Important: VPS is not created immediately after ordering '' 'Create' ''. Therefore, it is wise to inform your clients about the delay.'''
 
'''Important: VPS is not created immediately after ordering '' 'Create' ''. Therefore, it is wise to inform your clients about the delay.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:OSV25.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC25.png]]
 +
|}
 +
===Importing Existing Instance===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|In this section, you can find short instruction on how to connect one of your clients to your already existing instance in the OpenStack panel. <br/> Take the following steps to make sure that the process will be carried out properly. <br/>
 +
1. Firstly, manually create an order for your customer in WHMCS. Choose a client and in the summary, view click on the '' ' Add New Order' '' button. Next, select a '' 'Product/Service' '' and press '' 'Submit Order' ''. <br/> '''What is important, do not perform the '' 'Create' '' action.''' The status has to remain as '' 'Pending' ''. <br/> More info about placing orders can be found [https://docs.whmcs.com/Order_Management#Placing_an_Order here]<br/>
 +
2. Proceed to the newly created product's card in your admin area. Find the following empty fields:
 +
*'''VM ID'''
 +
The above-mentioned information has to be consistent with the data from your OpenStack panel. Now, complete these fields as presented below. <br/> '''Important!''' Remember to make sure that the format of the provided data is compatible with the format supported by the module. You can preview it for another product of the module you have already created and enter it in a similar way. <br/> If you completed the required data, now change the status from '' 'Pending' '' to '' 'Active' '' and '' 'Save Changes' ''.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OpenStackVC_import.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|3. If the completed data is correct, after refreshing the page, you will see the attached instance from OpenStack. <br/> '''Important!'''  Remember to manually add other missing parameters of the instance such as domains, credentials, IP Addresses, configurable options, SSH Key, billing cycle, etc.  so they match the parameters of the attached instance from OpenStack.
 
|}
 
|}
  
 
==Client Area==
 
==Client Area==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Client area interface of OpenStack VPS should look like the one on the screen below. As you can see, control panel contains useful options needed for managing VPS.<br />
+
|style="padding: 10px 0px 15px 15px;"|Client area interface of OpenStack VPS & Cloud should look like the one on the screen below. As you can see, the control panel contains useful options needed for managing a virtual machine.<br />
Module allows your customers to easily start/stop, pause/unpause, resume, soft reboot, hard reboot and reset network of their servers through pressing specified button.<br />
+
The module allows your customers to easily start/stop, pause/unpause, resume, soft reboot, hard reboot, and reset network of their servers by pressing the specific button.<br />
Clients can also rebuild the server, access noVNC console, create a backup and view scheduled tasks.<br />
+
Clients can also rebuild the server, access the VNC console, create a backup, manage firewalls, and view scheduled tasks.<br />
At '' 'Tasks' '' your customers can view all requested tasks that was not yet completed.<br />
+
At '' 'Scheduled Tasks' '' your customers can view all requested tasks that were not yet completed.<br />
Each task has additional information bounded to them, like type of task, attempts to perform tasks or last returned response.
+
Each task has additional information bounded to them, like a type of task, attempts to perform tasks, or a last returned response.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:OSV26.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC26.png]]
 
|}
 
|}
===Rebuild===
+
===Volumes===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Rebuild feature allows your clients to change server image.<br />
+
|style="padding: 10px 0px 15px 15px;"|In case your OpenStack VPS & Cloud is running with the '' 'Use Volumes' '' option, the client area may look a bit different. It will now include an additional section named ''Volumes''.
Press '' 'Rebuild' '' button as shown on the following screen in order to move to the rebuild page.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV27.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC26_1.png]]
 
|}
 
|}
 +
 +
===Rebuild===
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|To reinstall your server, choose an image and confirm through clicking on '' 'Rebuild' '' button.
+
|style="padding: 10px 0px 15px 15px;"|The rebuild feature allows your clients to change a server image.<br />
 +
To reinstall your server, choose an image and confirm through pressing the '' 'Rebuild' '' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:OSV28.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC28.png]]
 
|}
 
|}
  
===noVNC Console===
+
===Rescue Mode===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|One of the most interesting functionality is a noVNC console where your clients can remotely manage server.<br />  
+
|style="padding: 10px 0px 15px 15px;"|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. <br />
To access it, simply press on the '' 'Console' '' button.
+
The rescue VM will be launched to permit the user to fix their VM.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV29.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC48.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|noVNC is a browser based VNC client. It was implemented using HTML5 Canvas and WebSockets.
+
|style="padding: 0px 0px 15px 15px;"|
 +
Before you continue, please note that the rescue VM will be set up with the same network configuration as the real VM. <br />
 +
Moreover, a new root password will be generated and the VM status will change to 'RESCUE'.<br />
 +
The new VM will also have a rescue image as the primary filesystem and the secondary filesystem would be the original VM's primary file system.'' <br />
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:OSV30.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC49.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|When you want to disable the rescue mode, click the 'Unrescue' button. The VM status will then also return to 'ACTIVE'.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC50.png]]
 
|}
 
|}
  
 
===Backups===
 
===Backups===
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|Your customers can also create a backup of VPS. To do so, press '' 'Backups' '' button.
+
|style="padding: 10px 0px 15px 15px;"|Your customers can also create backups of their resources. To do so, press the '' 'Create Backup' '' button.<br/>
 +
In this section, you will find three different categories related to backups and their management. <br/>
 +
At the very top, you will find a current list of existing and available backups with details on their status, creation date, pinned information and action buttons.<br/>
 +
Underneath, you may create backups manually at any moment you need. From the 1.9.0 module version, volume backups on demand are also supported.<br/>
 +
 
 +
Manual backups can be created on:
 +
* virtual machines '''with volumes'''
 +
* virtual machines '''without volumes'''<br/>
 +
Scheduled backups can be created on:
 +
* virtual machines '''without volumes'''
 +
<br/>
 +
'''''Note:''' If your backup is 'Pinned', then it will not be overwritten by the next scheduled backup. You may pin more than just one backup.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV31.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC31.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Now, choose backup name and press '' 'Backup Now' '' button.
+
|style="padding: 0px 0px 15px 15px;"|Simply, type in a custom name of your backup and press the'' 'Backup Now' '' button.<br/>
 +
 
 +
'''''Note 1:''' Sometimes it may take up to several dozen minutes to finish creating the backup. Please wait until the process is complete.<br/>
 +
'''''Note 2:''' If there has been a limit set on the number of allowed backups and you have just reached that restriction, then a backup with the earliest creation date will be removed to make room for the new on.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV32.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC32.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|To restore VPS from backup, simply press '' 'Restore' '' button next to it.<br />
+
|style="padding: 0px 0px 15px 15px;"|Clients are also given the opportunity to create backups automatically by enabling the option: '' 'Schedule Backups'. ''<br/>
As you may notice on the following screen, presented earlier '' 'OldBackup' '' backup was replaced with '' 'NewBackup' ''.<br />
+
 
It was caused by backup routing feature which was triggered by reaching backups file limit.
+
When enabled, provide a time interval to wait until the next backup will be created to define the tasks routine. The entered time interval must be higher or equal to the limit defined by your administrator.<br/>
 +
'''''Note:''' The number of backups created manually and those scheduled and created automatically is counted together and their overall sum cannot be higher than the defined limit.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:OSV33.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC32_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|To restore a VPS from backup, simply press the '' 'Restore' '' button next to it.<br />
 +
If selected backups are no longer needed, you may easily delete them.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC32_2.png]]
 
|}
 
|}
  
==SSH Keys==
+
===VNC Console===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Due to limitation in WHMCS product create process, OpenStack VPS For WHMCS generates SSH key pair automatically.<br />
+
|style="padding: 10px 0px 15px 15px;"|One of the most interesting functionality is a VNC console where your clients can remotely manage their servers.<br />  
Public SSH key is automatically injected into VM while private key can be downloaded from the client area.<br />
+
To access it, simply click on the '' 'Console' '' button.
In order to download Unix private SSH key press '' 'Download Private Key' ''.<br />
+
You can easily convert your private Unix key(.rsa) to private PuTTY key(.ppk) using '' 'PuTTYgen' ''.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:OSV34.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC29.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Public SSH key in other hand, can be downloaded as many times as your client will need it.<br />
+
|style="padding: 0px 0px 20px 15px;"|VNC is a browser based VNC client. It was implemented using HTML5 Canvas and WebSockets.
Press '' 'Download Public Key' '' as shown on the following screen to save it on your disk.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:OSV35.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:OSV30.png]]
 +
|}
 +
 
 +
===VM Protection===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|In the product configuration page you can enable the '' 'Protect VM After Creation' '' option which prevents the rebuilt of VM.<br/>
 +
The selected status of this protection will be applied to both admin area and client area.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC51.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Moreover, if the '' 'Protect VM' '' option is enabled in the client area, the client will be empowered to toggle the current protection status.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC52.png]]
 +
|}
 +
 
 +
===Firewall===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|The firewall management page allows your customers to view, add or delete existing rules on a security group assigned to the product.<br/>
 +
To add a new firewall rule, use the button marked on the following screen.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC53.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Next, choose the rule type (TCP, UDP, ICMP or Other Protocols), direction (inbound or outbound) and ether type (IPv4 or IPv6).<br/>Depending on the port you choose, you will be able to add a rule for a single port only, a range of ports or all ports at once. You can also select one of the predefined ports or use a custom one.<br/>Finally, provide a single IP address or specify the range of addresses using the CIDR format (e.g. 10.10.10.1/24).<br/>
 +
Press '' 'Add' '' when ready.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC54.png]]
 +
|}
 +
===Snapshots===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Creating snapshots allows customers to quickly restore any changes to a virtual machine in case of any problems. <br/> Clients can create as many snapshots as they are allowed by the admin in the product configuration or chosen in the configurable option.<br/>
 +
Once the shutter has been created, the customer can restore it, change its description or delete it.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:OSVC54_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|After pressing the '' 'Create Snapshot' '' button, the new window will pop up along with your limit number and the possibility to specify the snapshot name.<br/>
 +
Please note that taking a new snapshot may take a while to process.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:OSVC54_2.png]]
 
|}
 
|}
  
 
==Network Configuration Cases==
 
==Network Configuration Cases==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|OpenStack VPS For WHMCS allows you to set up two types of network.<br />
+
|style="padding: 10px 0px 15px 15px;"| OpenStack VPS & Cloud For WHMCS allows you to set up two types of network.<br />
First one is a network without floating IP address.<br />
+
The first one is a network without a floating IP address.<br />
To set up this type of a network, choose '' 'Public' '' as '' 'Fixed Network' '' and '' 'Disabled' '' as '' 'Floating Network' ''.<br />
+
To set up this type of network, choose '' 'Public' '' as '' 'Fixed Network' '' and '' 'Disabled' '' as '' 'Floating Network' ''.<br />
On the following screen you can view exemplary topology of such network.
+
On the following screen you can view an exemplary topology of such a network.
 
|}
 
|}
 
{|
 
{|
Line 434: Line 1,234:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Second type of network is a network with floating IP address.<br />
+
|style="padding: 0px 0px 15px 15px;"|The second type of network is the network with a floating IP address.<br />
 
Select '' 'Shared Network' '' as '' 'Fixed Network' '' and '' 'Public' '' as '' 'Floating Network' ''.
 
Select '' 'Shared Network' '' as '' 'Fixed Network' '' and '' 'Public' '' as '' 'Floating Network' ''.
 
|}
 
|}
Line 443: Line 1,243:
 
==Configurable Options==
 
==Configurable Options==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In case that standard configuration is not fitting your needs, you can adjust it through configurable options.<br />
+
|style="padding: 10px 0px 15px 15px;"|In case that standard configuration does not meet your needs, you can adjust it through configurable options.<br />
To do so, go to '' 'Setup' '' → '' 'Products/Services' '' → '' 'Configurable Option' '' and press edit button next to configurable option used by your product.<br />
+
To do so, go to '' 'Setup' '' → '' 'Products/Services' '' → '' 'Configurable Option' '' and press the edit button next to a configurable option used by your product.<br />
 
Its name is '' 'Configurable options for your_product_name' ''.
 
Its name is '' 'Configurable options for your_product_name' ''.
 
|}
 
|}
Line 453: Line 1,253:
 
|style="padding: 0px 0px 15px 15px;"|Here you can view the products that this configurable option group is assigned to.<br />
 
|style="padding: 0px 0px 15px 15px;"|Here you can view the products that this configurable option group is assigned to.<br />
 
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.<br />
 
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.<br />
To do so, edit '' 'ram|RAM' '' by pressing edit button as shown on the screen below.
+
To do so, edit '' 'ram|RAM' '' by pressing the edit button as shown on the screen below.
 
|}
 
|}
 
{|
 
{|
Line 460: Line 1,260:
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|You will see a popup window, so make sure that your browser will not block it.<br />
 
|style="padding: 0px 0px 15px 15px;"|You will see a popup window, so make sure that your browser will not block it.<br />
To add new option, enter it in a textbox under all other options. If you want to replace it with option you currently have, simply edit its textbox.<br />
+
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.<br />
 
Next, press '' 'Save Changes' ''.
 
Next, press '' 'Save Changes' ''.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:OSV40.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:OSV40.png]]
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Please remember that names of '' 'Options' '' for configurable options such as '' 'Flavor' '', '' 'Network' '' as well as '' 'Image' '' '''should NOT''' be modified in WHMCS. <br/> These names should remain the same as in your OpenStack panel.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:OSV40_1.png]]
 +
|}
 +
 
==Management of Billing==
 
==Management of Billing==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|When you combine OpenStack VPS 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 OpenStack VPS & 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 based on the server resources used by them.
+
Module allows you to charge your customers based on the server resources used by them.<br />
 +
''Note: Advanced Billing currently supports only API prior V3 (OpenStack Ocata). A new compatibility will be added soon.''
 
|}
 
|}
 
{|
 
{|
Line 475: Line 1,283:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|With Advanced Billing module, you can also display your customers the current server resource usage and their cost.
+
|style="padding: 0px 0px 20px 15px;"|With Advanced Billing module, you can also display your customers the current server resource usage, their cost, usage history and charts.
 
|}
 
|}
 
{|
 
{|
Line 484: Line 1,292:
 
{|
 
{|
 
|style="padding: 10px 0px 5px 15px;"|1. Due to some requests may take time to be completed, we implemented '' 'Scheduled Tasks' ''.<br />
 
|style="padding: 10px 0px 5px 15px;"|1. Due to some requests may take time to be completed, we implemented '' 'Scheduled Tasks' ''.<br />
Tasks visible at '' 'Scheduled Tasks' '' are subsequently performed by cron job.<br />
+
Tasks visible at '' 'Scheduled Tasks' '' are subsequently performed by a cron job.<br />
 
Full list of tasks supported by '' 'Scheduled Tasks' '' are: create, terminate, change package, remove IP address and remove backup.
 
Full list of tasks supported by '' 'Scheduled Tasks' '' are: create, terminate, change package, remove IP address and remove backup.
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 5px 15px;"|2. '''Important:''' module has to use admin endpoints instead of public endpoints.<br />
 
|style="padding: 0px 0px 5px 15px;"|2. '''Important:''' module has to use admin endpoints instead of public endpoints.<br />
In properly configured OpenStack server, wget from WHMCS server should be able to get any data from any '''admin''' endpoint.<br />
+
In a properly configured OpenStack server, wget from WHMCS server should be able to get any data from any '''admin''' endpoint.<br />
Sample successfull requests:
+
Sample successful requests:
 
  wget openstack:9292
 
  wget openstack:9292
 
  --2014-03-31 09:35:24-- http://openstack:9292/
 
  --2014-03-31 09:35:24-- http://openstack:9292/
Line 512: Line 1,320:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|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.<br> 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'<br/> or leave it empty in the product's '' 'Module Settings'. ''
+
|style="padding: 0px 0px 5px 15px;"|3. A primary IP address is always assigned by the OpenStack server when a VM is created. Therefore, if you decide to order 2 IP addresses, then 3 addresses will be assigned.<br> 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'<br/> or leave it empty in the product's '' 'Module Settings'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|4. '' 'Scheduled Backups' '' functionality is available also for VPS using volumens since 2.0.0 module version and later.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 5px 15px;"|5. How to set up a password to a VM:<br/>
 +
'''When creating a VM:'''
 +
*set up the password using a custom script, details are described [[#Custom_Config_Scripts|here]]
 +
*the module sends the password entered by a user, however, in order to set this password correctly, injecting passwords option must be enabled.<br/> Read more about [https://docs.openstack.org/nova/xena/admin/admin-password-injection.html password injection].
 +
'''When resetting a VM:'''
 +
*In order to reset a password you must have the '' 'quemu guest agent' '' installed
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|6. How to set up the username based on the used image:
 +
* open file '' 'imageUsernames.yml' '' located at: ''/yourwhmcs/modules/servers/OpenStackVpsCloud/app/Config''
 +
* change the file content according to the pattern:
 +
  image name (use name displayed in the databse): 'newUsername'
 +
For example:
 +
  ca6628a6-f627-480f-8aeb-07fdc372712a: 'cirros'
 +
Take a look at the screen to see how an exemplary, correctly modified file content might look like:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:OSV46_1.png]]
 
|}
 
|}
  
=Common Problems=
+
=Update Instructions=
 
{|
 
{|
|style="padding: 10px 0px 10px 15px;"|'''1. When you have problems with connection, check whether your SELinux or firewall does not block ports.'''
+
|style="padding: 10px 0px 15px 15px;"|An essential guidance through the process of updating the module is offered '''[https://www.docs.modulesgarden.com/How_To_Update_WHMCS_Module here]'''.<br/>
 +
 
 +
When you upgrade the module from the version older than 1.8.1 to '''1.8.1 or newer''', please remember to update the new server's hostname to the new address format, as described in step 8. of the [[#Configuration_of_Server|configuration of server]] guide.<br/><br/>
 +
 
 +
Keep in mind that 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 page and a discounted invoice will be generated automatically.<br/>
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 5px 15px;"|2. '' 'Connection Error: No route to host' '' error.<br />
+
|style="padding: 0px 0px 30px 15px;"| To upgrade '''OpenStack VPS & Cloud''' from '''v1.X.X''' to '''v2.X.X''' correctly, please follow these steps: <br/>
'''Reason:''' WHMCS server can not resolve OpenStack endpoint hostnames.<br />
+
*Firstly, make a backup copy of your server and database.
'''Solution:''' Log in to your OpenStack via SSH and use '' 'keystone endpoint-list' '' command to obtain list of needed endpoints.
+
*When you successfully performed a backup, now stop cron tasks that are running.
 +
*Delete these folders:
 +
<pre>yourWHMCS/includes/OpenStack </pre>
 +
<pre>yourWHMCS/modules/servers/OpenStackVPS </pre>
 +
*Delete these two files '''openstackvps.js''' and  '''openstackvps.php''' that are placed in this folder:
 +
<pre>yourWHMCS/includes/hooks</pre>
 +
*Now, upload new files to your '''main WHMCS directory'''. <br/>
 +
'''Important!''' Please remember to reissue the license in the client area after uploading new files to the main WHMCS directory.<br/>
 +
If you do not do this, you will get a notification about the wrong license, and the upgrade process will not succeed.<br/>
 +
Please follow our [[#Installation|documentation]] to make sure that you reissue the license properly.
 +
*Run the migration cron job:
 +
<pre>php -q /yourWHMCS/modules/servers/OpenStackVpsCloud/cron/cron.php migration:v1_v2 </pre>
 +
*Set the cron task once again:
 +
<pre>php -q /yourWHMCS/modules/servers/OpenStackVpsCloud/cron/cron.php queue </pre>
 +
*Finally, proceed to the configuration of your server and check if the module type is changed to OpenStack VPS Cloud <br/> and the 'Module Name' to OpenStack VPS Cloud in the 'Module Settings' tab of your product configuration.
 
|}
 
|}
 +
=Upgrade Guide=
 
{|
 
{|
|style="padding: 0px 0px 10px 25px;"|[[File:OSV_41.png]]
+
|style="padding: 10px 0px 30px 15px;"|Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability?<br/> 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.<br/>
 +
 
 +
Opt for the [https://www.modulesgarden.com/products/whmcs/openstack-vps-and-cloud#open-source-version Open Source version] of your OpenStack VPS & Cloud For WHMCS module to unlock these benefits.<br/> Simply click on either the '''Get Source Code''' or '''Upgrade To Lifetime''' button found on the product's page in our client area to complete the one-step upgrade process, with a '''dedicated discount''' already applied.<br/>
 +
 
 +
Follow a [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module 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=
 
{|
 
{|
|style="padding: 0px 0px 10px 15px;"|Afterwards, check each URL from '' 'adminurl' '' column using '' 'ping' '' command at your WHMCS server.<br />
+
|style="padding: 10px 0px 20px 15px;"|'''1. When you have problems with connection, check whether your SELinux or firewall does not block ports.'''
All URLs which are not reachable have to be added to '' 'hosts' '' file on a server with your WHMCS.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|3. In case of persisting connection problems, please make sure you have the following ports open:
+
|style="padding: 0px 0px 10px 15px;"|2. In case of persisting connection problems, please make sure you have the following ports open:
 
  8774, 35357, 9292, 5000, 8777, 9696, 8776
 
  8774, 35357, 9292, 5000, 8777, 9696, 8776
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|3. If you come across an error with downloading endpoints during the server configuration process, please save the incomplete configuration, refresh a page and then try to finish your server configuration again.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|4. In case you encounter any issues with the cloud-int script or it seems not to be working please follow the below steps:
 +
* Log in to virtual machine via FTP or noVNC
 +
* Check content of the directory: ''/var/lib/cloud/instance/user-data.txt''
 +
* If content is the same as you have defined it in the module, it means that the problem is not connected with the module itself
 +
* In order to verify if the script includes any errors, please run the below command from the console and analyze the results searching for any errors:
 +
  cloud-init --debug init
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|5. If you come across the "This flavor - flavor_name_or_id - is not available in the region region_name." error when creating a VM, you should refresh the server configuration page and update Configurable Options.<br/> If this error is still occurring, please make sure that you have the same flavor names set for all regions.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|6. If you encounter a connection error in the module settings: <br/>
 +
'' 'Error:Connection Error: No route to host (Action: GET https://compute-api.svc.vstoragedomain.:8784/v2.1/5dcda23cb9bd4718b32610bbe18a1382/os-availability-zone). Check WHMCS module log for more information' ''<br/>
 +
 +
Please make sure the API IP address is public or there is a domain setup. For more details please refer to the official Virtuozzo Hybrid Infrastructure  [https://docs.virtuozzo.com/virtuozzo_hybrid_infrastructure_5_4_admins_guide/index.html#setting-dns-name-for-the-compute-api.html documentation].
 
|}
 
|}

Latest revision as of 13:57, 26 April 2024

Contents

[edit] About OpenStack VPS & Cloud For WHMCS

OpenStack VPS & Cloud 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.
Additionally, it allows you to conveniently overview and control all the customers' servers.

  • Admin Area Features:
✔ Create/Suspend/Unsuspend/Terminate Server
✔ Change Package - Supports Configurable Options And Volume Resizing
✔ Change Password
✔ Start/Stop/Pause/Unpause/Resume Server
✔ Soft/Hard Reboot Server
✔ Reset Network
✔ Rescue/Unrescue Server
✔ Toggle VM Protection From WHMCS Termination And Rebuilding
✔ Access RDP, Serial, SPICE, Or VNC Console
✔ View Instance Status And Details
✔ View Interfaces Details
✔ View Volumes Information
✔ Rebuild Virtual Machine From Image
✔ View/Add/Delete Custom Firewall Rules
✔ Create/Restore/Delete Backups
✔ View And Run Scheduled Tasks
✔ Provide Product Configurations:
✔ Project Settings:
✔ Choose Default VM Image/Flavor/Region
✔ Provide Random Domain Prefix
✔ Set Availability Zone
✔ Toggle Debug Mode
✔ Network Settings:
✔ Choose Fixed/Floating Networks
✔ Define Default Number Of IP Addresses
✔ Backup Settings:
✔ Enable Backups Rotation
✔ Enable Scheduled Backups
✔ Define Backups Quantity Limit
✔ Define Backups Minimum Time Interval
✔ Snapshot Settings (For Volumes Only)
✔ Define Default Snapshot Files Limit
✔ Virtual Machines Settings:
✔ Enable Auto-generation SSH Key
✔ Define Default Volume Size And Type
✔ Set Security Groups
✔ Enable Password Management
✔ Choose RDP/Serial/SPICE/VNC Console Type
✔ Select Rescue Image
✔ Toggle VM Protection After Creation
✔ Toggle SSH Private Key Deletion Once Displayed
✔ Firewall Settings:
✔ Apply Custom Rules
✔ Define Inbound/Outbound/Total Firewall Rules Limits
✔ Console Settings:
✔ Open Console In New Window
✔ Configure Client Area Features Per Product
✔ Configure Admin Area Features Per Product
✔ Define Custom Flavor Specification
✔ Define Metadata
✔ Execute Custom Scripts On Boot
✔ Choose Welcome Email For VM Creation
✔ Generate Configurable Options
  • Client Area Features:
✔ View Server Status And Details
✔ Start/Stop/Pause/Unpause/Resume Server
✔ Soft/Hard Reboot Server
✔ Reset Network
✔ Rescue/Unrescue Server
✔ Change Server Protection Status
✔ Toggle VM Protection From WHMCS Termination And Rebuilding
✔ Change Password
✔ Create/Restore/Delete Backups
✔ Pin Backups For Overwriting Protection
✔ Toggle Scheduled Backups And Define Time Interval
✔ Access RDP, Serial, SPICE, Or VNC Console
✔ View/Add/Delete Custom Firewall Rules:
✔ TCP
✔ UDP
✔ ICMP
✔ Other Protocols
✔ Rebuild Virtual Machine From Image
✔ Create/Restore/Delete Volume Snapshots
✔ Download Public & Private SSH Keys
✔ View Volumes Information
✔ View List Of Scheduled Tasks
✔ Receive Email Notification After VM Creation
  • Configurable Options:
✔ Flavor
✔ VM Image
✔ IP Addresses
✔ Volume Size
✔ Backups Files Limit
✔ Snapshots Files Limit
✔ Volume Type
✔ Disk
✔ RAM
✔ VCPUs
✔ Total Firewall Rules Limit
✔ Inbound Firewall Rules Limit
✔ Outbound Firewall Rules Limit
✔ Region
✔ Custom Script Files
✔ Availability Zone
  • Supported Providers:
✔ Binero Public Cloud
✔ Bluvalt
✔ China Unicom Cloud
✔ City Cloud
✔ CT Cloud Platform
✔ DS Public
✔ ELASTX OpenStack
✔ INAP Bare Metal
✔ INAP Cloud
✔ Limestone Networks
✔ Linaro Developer Cloud
✔ NIPA - Enterprise Public Cloud
✔ Open Telekom Cloud
✔ ORockCloud
✔ OVH Public Cloud
✔ Rackspace Public Cloud
✔ ScaleUp Cloud
✔ STC Cloud
✔ UOS Cloud
✔ VEXXHOST Public Cloud
✔ vScaler Public Cloud
✔ warescale Public Cloud
  • Required Components:
✔ Keystone
✔ Glance
✔ Nova
✔ Neutron
✔ Gnocchi (Required For Billing)
  • General Info:
✔ Automated Generation Of SSH Keys - Public SSH Key Is Injected To VM Automatically
✔ Integrated With Advanced Billing For WHMCS - Actual Server Resource Usage Billing
✔ Integrated With Server Allocator For WHMCS - Automatic Assignment Of Most Suitable Servers To Products
✔ Multi-Language Support
✔ Supports Cloud-Init Scripts With WHMCS Variables
✔ Supports Latest Stable OpenStack and Previous
✔ Supports OpenStack Gnocchi
✔ Supports Virtuozzo Hybrid Infrastructure (VHI)
✔ Supports Limestone Networks Cloud Hosting Solutions
✔ Supports PHP 8.1 Back To PHP 7.4
✔ Supports WHMCS Themes "Six", "Twenty-One" And "Lagom WHMCS Client Theme"
✔ Supports WHMCS V8.10 Back To WHMCS V8.6
✔ Requires ionCube Loader V12 Or Later
✔ Easy Module Upgrade To Open Source Version

[edit] Installation and Configuration

This tutorial will show you how to successfully install and configure OpenStack VPS & 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.
OSV1.png
2. Extract the package and upload its content into the main WHMCS directory.

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

Hjghjh.png
3. When you install OpenStack VPS & Cloud For WHMCS for the first time you have to rename the 'license_RENAME.php' file.

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

OSVC3.png
4. 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.
You can find your license key in our client area → 'My Products' .

OSVC4.png
5. In the next step, set up the 'storage' folder as recursively writable.

This folder is available at 'your_whmcs/modules/servers/OpenStackVpsCloud' .

OSVC4 0.png
6. The last step is setting up a cron job (each 5 minutes suggested).

Use cron job below but switch the 'your_whmcs' with your root WHMCS path.

php -q /yourWHMCS/modules/servers/OpenStackVpsCloud/cron/cron.php queue 

[edit] 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' .

Note: If you have WHMCS V7.8.X or later, we recommend using 'previous experience' of server configuration instead of the new wizard tool.

OSVC5.png
8. Next, enter your server name and connection details.
  • Provide your Openstack 'IP address/hostname'
  • In the next field, enter the 'endpoint identity path' if it is used. You can find its name in the OpenStack 'API Access' section, based on the 'Service Endpoint' address.
    Its path name is between the hostname/IP address and port/API version paths. You can leave this field empty if it is not used.
    Note: If you are using module version prior to 1.8.1, provide the OpenStack address together with the endpoint in the hostname field - e.g. '10.10.10.253/identity'
  • Do not also forget to select which API version you want to use ( 'Default', 'V2' or 'V3' ).
    Important - if this dropdown is empty, please validate whether you provided correct data into the 'IP/Hostname', 'Identity Endpoint Path', 'Secure' or 'Port' overwrite fields.
  • Next, specify the details of your server. Choose 'OpenStack VPS Cloud' from the Type dropdown menu and provide the 'Username', 'Password' and admin 'Tenant ID.'
    Note: To find your 'Tenant ID' , log in to your OpenStack panel and go to the 'Identity' → 'Projects' menu.
    Now you will need to identify the row which corresponds to your project. The 'Tenant ID' will be located in the 'Project ID' column of the identified project.

  • Project Name - you may declare your project name to which this server is related (leave empty if not related to the OpenStack version you are using)
  • Certificate Path - you can also provide a full certificate path to verify permissions (leave empty if not related to the OpenStack version you are using)
  • Optionally, enter your OpenStack custom Domain or leave this field as 'Default' .
  • If your OpenStack uses https or any custom port, you can additionally provide the relevant configuration in 'Secure' and 'Port' fields.

Finally, press 'Save Changes' .

OSVC6.png
9. After you have configured 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.
During the test, the connection with all related endpoints will be checked.
Additionally you can change the endpoint addresses to make sure that all services have been connected successfully or select 'Don't use' if no endpoint is applicable to your OpenStack.
Note: Any chosen endpoint address will be automatically saved after its selection so there is no need to save it manually after each change introduced.

For more information about connections, visit the Common Problems and Tips sections.

OSVC7.png
10. It is time to create a server group. To do so, click on 'Create New Group'.
OSVC8.png
11. Enter a name, click on your previously created server, press 'Add' and afterward 'Save Changes'.
OSVC9.png

[edit] Configuration of Product

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

Click on 'Create a New Group' .

OSVC10.png
13. Enter a product group name and press 'Save Changes'.
OSVC11.png
14. When you have a product group, you can create your product.

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

OSVC12.png
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 'Shared Hosting'.

OSVC13.png
16. Now, go to the 'Module Settings' section, choose both 'OpenStack VPS Cloud' and your previously created server group from the dropdown menus.

The module should automatically save and reload settings. If not, click on 'Save Changes' manually.

OSVC14.png
17. Start from defining 'Project Settings'
OSVC15.png
18. Afterward, set up a network. Choose 'Fixed Network' , 'Floating Network' and 'Default Number Of IP Addresses'.

You can set up a network in two ways. You can find more information about the configuration here.
We will create the network without a floating IP address as presented on the following screen.
Additionally, choose a quantity of IP addresses assigned to a product by typing it into 'Default Number Of IP Addresses'.

OSVC16.png
19. At this step you can configure the backup and snapshot settings.
  • Backups

Enable 'Backups Rotation' if you want to allow replacing the oldest backup with a new one when the backup files limit has been reached.
Afterward, enter a number of allowed backups that can be created into the 'Default Backups Files Limit' field. Enter '-1' for unlimited.

You may also let your clients define the backups tasks, they will be then created automatically according to the defined time interval.
Select the 'Scheduled Backups' option and then set the minimum time interval which your clients will have to obey when defining their task schedule at 'Backups Time Interval'.
'Client Scheduled Backups' - if enabled client may manually add tasks to the scheduled tasks.
Note: The number of backups created manually and those scheduled and created automatically is counted together and their overall sum cannot be higher than the defined limit.

  • Snapshots

Define a default number of allowed snapshots. Enter '-1' to set it to 'Unlimited'.
Important: The option Use Volumes must be enabled under the 'Virtual Machines Settings' in order to let clients create snapshots.

OSVC17.png
20. Define the virtual machine settings.
  • Mark a security group from 'Use Security Groups' and select 'Console Type'.
    Apart from the selected here groups you may also apply custom rules to the VM. You can learn more about them at Custom Security Group section.
  • If you wish to use SSH keys, leave 'Generate SSH Key' marked (virtualization has to support the 'Inject File' feature).
  • In order to use passwords for your VM, leave 'Password Management' marked (virtualization has to support the 'Set Admin Pass' feature).
    Please make sure that virtualization used by you supports mentioned actions.
    Full list of supported features can be found here.

Important: It is recommended to leave 'Delete SSH Private Key' marked.

  • The following types of console can be chosen: 'VNC', 'RDP', 'SPICE' and 'Serial'.
OSVC17 1.png
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.
Once this option is enabled, your clients will no longer have access to the 'Backup' and 'Rescue' functions, so you may as well leave the respective fields empty.
Note: Scheduled backups cannot be generated when volumes are in use; only manual backups are available.

OSVC17 2.png
22. In the next step you may define the firewall rules settings.

Enter the firewall inbound, outbound and total rules limits. When the limit is reached, the client will not be able to create a new rule until one of the existing rules has been removed.

OSVC17 0.png
23. Next, select features available at the client area.

You can also decide which images used to rebuild the server will be available to your customers.

OSVC18.png
24. Finally, enable features available for the administrator on the service page.
OSVC18 1.png
25. In addition, you can also choose whether you want to send a welcome email after the VM has been successfully created by cron.

This feature can prove useful if you want clients to receive the notification once their VM is ready rather than immediately after product activation.
If you decide on this option, we suggest that you also set the standard WHMCS configuration of the 'Welcome Email' to 'None' in the 'Details' tab of a product.
Otherwise, the customer will receive both emails - after the product has been activated and after the VM has been successfully created on OpenStack.
Press 'Save Changes' when you are done.

OSVC18 2.png

[edit] VPS With Predefined Resources

Our module allows you to offer OpenStack VPS & Cloud 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.
Detailed information about configuration of VPS with resources chosen by a client can be found here.

26. 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.

OSVC19.png
Congratulations! You have just finished the installation and configuration of the module with predefined resources.

[edit] VPS With Configurable Resources

27. Preparing VPS with configurable options consists of pressing 'Create Configurable Options' as shown on the following screen.

It will prepare default configurable options which can be afterward easily edited as described in this article.
Important: Configurable option 'flavor|Flavor' will be overwritten by 'disc|Disc', 'ram|RAM' and 'vcpus|VCPUs'.
Therefore, you can solve this in three ways:

  • Remove 'disc|Disc' , 'ram|RAM' and 'vcpus|VCPUs' configurable option and rely completely on 'flavor|Flavor' .
  • Remove 'disc|Disc' and 'vcpus|VCPUs' , and allow 'flavor|Flavor' being overwritten by 'ram|RAM' (multiple combinations are allowed here).
  • Remove 'flavor|Flavor' and rely completely on 'disc|Disc' , 'ram|RAM' and 'vcpus|VCPUs' .

Note: The second and the third options results in the creation of a new flavor on your server each time a new order is made.

OSVC20.png
You can now decide which options should be included in configurable options.
OSVC20 1.png

[edit] Custom Flavor Specification And Metadata

28. You may also use a customized 'Flavor Specification' and Metadata' as key and pair properties of your product configuration.

Supported 'Custom Flavor Specification' format:

key1=value1
key2=value2

for example:

hw:cpu_sockets = 3
CIM_PASD_ProcessorArchitecture=x86
OSVC21 1.png
Supported 'Metadata' format that can be added:
key1=value1
key2=value2

for example:

sw_database_cassandra_admin = cassandra
sw_webserver_apache_http_port = 80
admin_password = custom_password
OSVC21 2.png

[edit] Custom Security Group

29. Optionally, you may create a custom security group with customized rules that will be added while creating the virtual machine.

Select 'Apply Custom Rules' option at Virtual Machine Settings and enable 'Firewall' option in the client area.

OSVC20 3.png
Edit the additionalRules.json_sample file content located at modules/servers/OpenStackVpsCloud/app/Config/additionalRules.json_sample directory.
Start with renaming it from additionalRules.json_sample to additionalRules.json.

That is what a default content of the additionalRules.json file looks like:

OSV20 2.png
Customize the rules according to your needs by providing:
  • direction - "egress" or "ingress"
  • ethertype - "IPv4" or "IPv6"
  • description - "your rule description" - visible in the panel only
  • remote_ip_prefix - IP address, format bound to the ethertype field, e.g.: "::/0"
  • port_range_min - value between 1 and 63535, eg: "101"
  • port_range_max - value between 1 and 63535, e.g.: "200"
    In case you enter the same value in the 'port_range_min' and 'port_range_max', then one port will be set, not a range of ports.
  • protocol - enter one of the following: "tcp", "udp", "icmp", "custom"
    Important: 'Protocol' must be provided if 'port_range' has been defined.
Now, that your file is ready, a new security group will be created in your OpenStack panel and visible in the product's Module Settings under 'Use Security Groups' on the product creation.
The rules are visible for the client in the 'Firewall' section. If you terminate the product, this group will be deleted as well.

Important: When you are updating your module, and you do not want to overwrite your personalized additionalRules.json file you do not have to do anything.
The file in the newest version of the module is named: additionalRules.json_sample and it will not overwrite the file in your system.

[edit] Custom Config Scripts

30. 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.

Important notes:

  • Scripts can be written in standards like Bash or YAML.
  • You can find examplary clout-init config scripts here.
  • Initial scripts have to be supported by VPS operating system to be executed properly.
  • Scripts should be used only by advanced users. The incorrect usage of the scripts may damage your system!
OSVC44.png
On the example below, we will show an exemplary script responsible for setting the password to 'newpass01' for the Ubuntu root user.

You can achieve it by writing:

#cloud-config
debug: True
ssh_pwauth: True
disable_root: false
chpasswd:
   list: |
       root:{$password}
expire: false
runcmd:
   - sed -i'.orig' -e's/without-password/yes/' /etc/ssh/sshd_config
   - service sshd restart


OSVC45.png
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 & Cloud product.
Note: These scripts are executed regardless of the script specified in the module settings.
The easiest way is through the edition of existing 'Configurable options for the OpenStack VPS & Cloud' group, and adding the new configurable option there.
For example, if you want to offer the pre-installed PHP version depending on a client's choice, you can add a new option named script_PHP|PHP version and then define multiple options, like on the screenshot below:

OSVC46.png
Afterward, your clients can choose during the ordering process:
OSV47.png

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.

The general rule is that configurable option names should begin with script_prefix to be recognized as containing a custom script.
Then, choices under the option have their own names which are matched with a name of existing file with the corresponding script under the yourWHMCS/modules/servers/OpenStackVpsCloud/scripts path.
Note that files with scripts have to have exactly extension corresponding to the given entries in the configurable options.

In the example above, there are two options: php5.yml and php7.yml, therefore it makes the module read corresponding files:

  • modules/servers/OpenStackVpsCloud/scripts/php5.yml

or

  • modules/servers/OpenStackVpsCloud/scripts/php7.yml

You can add many scripts in the exact way.

From the version 1.9.0 you can also use the WHMCS variables of ordered products in your scripts.

These variables can be managed in the same way as merge fields in email templates.

The exemplary execution of the clout-init test script is presented below:

#cloud-config

runcmd:
    - sudo echo "account id: {$accountid}" >> /tmp/whmcs_info.txt
    - sudo echo "service id: {$serviceid}" >> /root/whmcs_info.txt
    - sudo echo "addon id: {$addonId}" >> /var/log/whmcs_info.txt
    - sudo echo "user id: {$userid}" >> ~/whmcs_info.txt

You will save IDs of the WHMCS 'account', 'service', 'addon' and 'client' into the 'whmcs_info.txt' files in various directories on the created instance.
Of course, you can use the variables in any custom script according to your needs.

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}'.
Otherwise, errors will occur.

Below you can find a complete list of supported variables that can be managed in your custom scripts:

Variable Variable Variable Variable Variable
{$accountid} {$configoption12} {$server} {$clientsdetails['password']} {$clientsdetails['allowSingleSignOn']}
{$serviceid} {$configoption13} {$serverip} {$clientsdetails['statecode']} {$clientsdetails['language']}
{$addonId} {$configoption14} {$serverhostname} {$clientsdetails['countryname']} {$clientsdetails['isOptedInToMarketingEmails']}
{$userid} {$configoption15} {$serverusername} {$clientsdetails['phonecc']} {$clientsdetails['lastlogin']}
{$domain} {$configoption16} {$serverpassword} {$clientsdetails['phonenumberformatted']} {$clientsdetails['authmodule']}
{$username} {$configoption17} {$serveraccesshash} {$clientsdetails['telephoneNumber']} {$clientsdetails['authdata']}
{$password} {$configoption18} {$serversecure} {$clientsdetails['billingcid']} {$clientsdetails['datecreated']}
{$sld} {$configoption19} {$serverhttpprefix} {$clientsdetails['notes']} {$clientsdetails['cardtype']}
{$tld} {$configoption20} {$serverport} {$clientsdetails['twofaenabled']} {$clientsdetails['cardlastfour']}
{$packageid} {$configoption21} {$clientsdetails['userid']} {$clientsdetails['currency']} {$clientsdetails['cardnum']}
{$pid} {$configoption22} {$clientsdetails['id']} {$clientsdetails['defaultgateway']} {$clientsdetails['startdate']}
{$serverid} {$configoption23} {$clientsdetails['uuid']} {$clientsdetails['cctype']} {$clientsdetails['expdate']}
{$status} {$configoption24} {$clientsdetails['firstname']} {$clientsdetails['cclastfour']} {$clientsdetails['issuenumber']}
{$type} {$customfields['vmID']} {$clientsdetails['lastname']} {$clientsdetails['gatewayid']} {$clientsdetails['bankname']}
{$producttype} {$customfields['privateFlavor']} {$clientsdetails['fullname']} {$clientsdetails['securityqid']} {$clientsdetails['banktype']}
{$moduletype} {$configoptions['flavor']} {$clientsdetails['companyname']} {$clientsdetails['securityqans']} {$clientsdetails['bankcode']}
{$configoption1} {$configoptions['isoImage']} {$clientsdetails['email']} {$clientsdetails['groupid']} {$clientsdetails['bankacct']}
{$configoption2} {$configoptions['ipAddresses']} {$clientsdetails['address1']} {$clientsdetails['status']} {$clientsdetails['ip']}
{$configoption3} {$configoptions['backupsFilesLimit']} {$clientsdetails['address2']} {$clientsdetails['credit']} {$clientsdetails['host']}
{$configoption4} {$configoptions['disk']} {$clientsdetails['city']} {$clientsdetails['taxexempt']} {$clientsdetails['pwresetkey']}
{$configoption5} {$configoptions['ram']} {$clientsdetails['fullstate']} {$clientsdetails['latefeeoveride']} {$clientsdetails['allow_sso']}
{$configoption6} {$configoptions['vcpus']} {$clientsdetails['state']} {$clientsdetails['overideduenotices']} {$clientsdetails['email_verified']}
{$configoption7} {$configoptions['totalRulesLimit']} {$clientsdetails['postcode']} {$clientsdetails['separateinvoices']} {$clientsdetails['created_at']}
{$configoption8} {$configoptions['inboundRulesLimit']} {$clientsdetails['countrycode']} {$clientsdetails['disableautocc']} {$clientsdetails['updated_at']}
{$configoption9} {$configoptions['outboundRulesLimit']} {$clientsdetails['country']} {$clientsdetails['emailoptout']} {$clientsdetails['pwresetexpiry']}
{$configoption10} {$configoptions['region']} {$clientsdetails['phonenumber']} {$clientsdetails['marketing_emails_opt_in']}
{$configoption11} {$configoptions['script_test']} {$clientsdetails['tax_id']} {$clientsdetails['overrideautoclose']}

[edit] Management

OpenStack VPS & Cloud For WHMCS allows your customers to manage their servers via the client area in your WHMCS system.

You can monitor and manage each product from your WHMCS admin area.
1. Module commands (Create, Suspend/Unsuspend, Change Package)
2. Service actions (Stop VM, Pause VM, Soft/Hard Reboot, Reset Network, Rescue, Change Protection)
3. Instance details along with

  • Interfaces,
  • Volumes (you will see the 'Volumes' section if you enabled the 'Use Volumes' feature),
  • Rebuild Virtual Machine
  • Firewall: add/delete rule
  • Backups: create, restore, manage, delete
  • Schedule Tasks: run, delete
OSVC24.png

[edit] 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.
Important: VPS is not created immediately after ordering 'Create' . Therefore, it is wise to inform your clients about the delay.

OSVC25.png

[edit] Importing Existing Instance

In this section, you can find short instruction on how to connect one of your clients to your already existing instance in the OpenStack panel.
Take the following steps to make sure that the process will be carried out properly.

1. Firstly, manually create an order for your customer in WHMCS. Choose a client and in the summary, view click on the ' Add New Order' button. Next, select a 'Product/Service' and press 'Submit Order' .
What is important, do not perform the 'Create' action. The status has to remain as 'Pending' .
More info about placing orders can be found here
2. Proceed to the newly created product's card in your admin area. Find the following empty fields:

  • VM ID

The above-mentioned information has to be consistent with the data from your OpenStack panel. Now, complete these fields as presented below.
Important! Remember to make sure that the format of the provided data is compatible with the format supported by the module. You can preview it for another product of the module you have already created and enter it in a similar way.
If you completed the required data, now change the status from 'Pending' to 'Active' and 'Save Changes' .

OpenStackVC import.png
3. If the completed data is correct, after refreshing the page, you will see the attached instance from OpenStack.
Important! Remember to manually add other missing parameters of the instance such as domains, credentials, IP Addresses, configurable options, SSH Key, billing cycle, etc. so they match the parameters of the attached instance from OpenStack.

[edit] Client Area

Client area interface of OpenStack VPS & Cloud should look like the one on the screen below. As you can see, the control panel contains useful options needed for managing a virtual machine.

The module allows your customers to easily start/stop, pause/unpause, resume, soft reboot, hard reboot, and reset network of their servers by pressing the specific button.
Clients can also rebuild the server, access the VNC console, create a backup, manage firewalls, and view scheduled tasks.
At 'Scheduled Tasks' your customers can view all requested tasks that were not yet completed.
Each task has additional information bounded to them, like a type of task, attempts to perform tasks, or a last returned response.

OSVC26.png

[edit] Volumes

In case your OpenStack VPS & Cloud is running with the 'Use Volumes' option, the client area may look a bit different. It will now include an additional section named Volumes.
OSVC26 1.png

[edit] Rebuild

The rebuild feature allows your clients to change a server image.

To reinstall your server, choose an image and confirm through pressing the 'Rebuild' button.

OSVC28.png

[edit] 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.

OSVC48.png

Before you continue, please note that the rescue VM will be set up with the same network configuration as the real VM.
Moreover, a new root password will be generated and the VM status will change to 'RESCUE'.
The new VM will also have a rescue image as the primary filesystem and the secondary filesystem would be the original VM's primary file system.

OSVC49.png
When you want to disable the rescue mode, click the 'Unrescue' button. The VM status will then also return to 'ACTIVE'.
OSVC50.png

[edit] Backups

Your customers can also create backups of their resources. To do so, press the 'Create Backup' button.

In this section, you will find three different categories related to backups and their management.
At the very top, you will find a current list of existing and available backups with details on their status, creation date, pinned information and action buttons.
Underneath, you may create backups manually at any moment you need. From the 1.9.0 module version, volume backups on demand are also supported.

Manual backups can be created on:

  • virtual machines with volumes
  • virtual machines without volumes

Scheduled backups can be created on:

  • virtual machines without volumes


Note: If your backup is 'Pinned', then it will not be overwritten by the next scheduled backup. You may pin more than just one backup.

OSVC31.png
Simply, type in a custom name of your backup and press the 'Backup Now' button.

Note 1: Sometimes it may take up to several dozen minutes to finish creating the backup. Please wait until the process is complete.
Note 2: If there has been a limit set on the number of allowed backups and you have just reached that restriction, then a backup with the earliest creation date will be removed to make room for the new on.

OSVC32.png
Clients are also given the opportunity to create backups automatically by enabling the option: 'Schedule Backups'.

When enabled, provide a time interval to wait until the next backup will be created to define the tasks routine. The entered time interval must be higher or equal to the limit defined by your administrator.
Note: The number of backups created manually and those scheduled and created automatically is counted together and their overall sum cannot be higher than the defined limit.

OSVC32 1.png
To restore a VPS from backup, simply press the 'Restore' button next to it.

If selected backups are no longer needed, you may easily delete them.

OSVC32 2.png

[edit] VNC Console

One of the most interesting functionality is a VNC console where your clients can remotely manage their servers.

To access it, simply click on the 'Console' button.

OSVC29.png
VNC is a browser based VNC client. It was implemented using HTML5 Canvas and WebSockets.
OSV30.png

[edit] VM Protection

In the product configuration page you can enable the 'Protect VM After Creation' option which prevents the rebuilt of VM.

The selected status of this protection will be applied to both admin area and client area.

OSVC51.png
Moreover, if the 'Protect VM' option is enabled in the client area, the client will be empowered to toggle the current protection status.
OSVC52.png

[edit] Firewall

The firewall management page allows your customers to view, add or delete existing rules on a security group assigned to the product.

To add a new firewall rule, use the button marked on the following screen.

OSVC53.png
Next, choose the rule type (TCP, UDP, ICMP or Other Protocols), direction (inbound or outbound) and ether type (IPv4 or IPv6).
Depending on the port you choose, you will be able to add a rule for a single port only, a range of ports or all ports at once. You can also select one of the predefined ports or use a custom one.
Finally, provide a single IP address or specify the range of addresses using the CIDR format (e.g. 10.10.10.1/24).

Press 'Add' when ready.

OSVC54.png

[edit] Snapshots

Creating snapshots allows customers to quickly restore any changes to a virtual machine in case of any problems.
Clients can create as many snapshots as they are allowed by the admin in the product configuration or chosen in the configurable option.

Once the shutter has been created, the customer can restore it, change its description or delete it.

OSVC54 1.png
After pressing the 'Create Snapshot' button, the new window will pop up along with your limit number and the possibility to specify the snapshot name.

Please note that taking a new snapshot may take a while to process.

OSVC54 2.png

[edit] Network Configuration Cases

OpenStack VPS & Cloud For WHMCS allows you to set up two types of network.

The first one is a network without a floating IP address.
To set up this type of network, choose 'Public' as 'Fixed Network' and 'Disabled' as 'Floating Network' .
On the following screen you can view an exemplary topology of such a network.

OSV36.png
The second type of network is the network with a floating IP address.

Select 'Shared Network' as 'Fixed Network' and 'Public' as 'Floating Network' .

OSV37.png

[edit] Configurable Options

In case that standard configuration does not meet 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.
Its name is 'Configurable options for your_product_name' .

OSV38.png
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.
To do so, edit 'ram|RAM' by pressing the edit button as shown on the screen below.

OSV39.png
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.
Next, press 'Save Changes' .

OSV40.png
Please remember that names of 'Options' for configurable options such as 'Flavor' , 'Network' as well as 'Image' should NOT be modified in WHMCS.
These names should remain the same as in your OpenStack panel.
OSV40 1.png

[edit] Management of Billing

When you combine OpenStack VPS & 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 based on the server resources used by them.
Note: Advanced Billing currently supports only API prior V3 (OpenStack Ocata). A new compatibility will be added soon.

OSV42.png
With Advanced Billing module, you can also display your customers the current server resource usage, their cost, usage history and charts.
OSV43.png

[edit] 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.
Full list of tasks supported by 'Scheduled Tasks' are: create, terminate, change package, remove IP address and remove backup.

2. Important: module has to use admin endpoints instead of public endpoints.

In a properly configured OpenStack server, wget from WHMCS server should be able to get any data from any admin endpoint.
Sample successful requests:

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 the 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'.
4. 'Scheduled Backups' functionality is available also for VPS using volumens since 2.0.0 module version and later.
5. How to set up a password to a VM:

When creating a VM:

  • set up the password using a custom script, details are described here
  • the module sends the password entered by a user, however, in order to set this password correctly, injecting passwords option must be enabled.
    Read more about password injection.

When resetting a VM:

  • In order to reset a password you must have the 'quemu guest agent' installed
6. How to set up the username based on the used image:
  • open file 'imageUsernames.yml' located at: /yourwhmcs/modules/servers/OpenStackVpsCloud/app/Config
  • change the file content according to the pattern:
 image name (use name displayed in the databse): 'newUsername'

For example:

 ca6628a6-f627-480f-8aeb-07fdc372712a: 'cirros'

Take a look at the screen to see how an exemplary, correctly modified file content might look like:

OSV46 1.png

[edit] Update Instructions

An essential guidance through the process of updating the module is offered here.

When you upgrade the module from the version older than 1.8.1 to 1.8.1 or newer, please remember to update the new server's hostname to the new address format, as described in step 8. of the configuration of server guide.

Keep in mind that 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 page and a discounted invoice will be generated automatically.

To upgrade OpenStack VPS & Cloud from v1.X.X to v2.X.X correctly, please follow these steps:
  • Firstly, make a backup copy of your server and database.
  • When you successfully performed a backup, now stop cron tasks that are running.
  • Delete these folders:
yourWHMCS/includes/OpenStack 
yourWHMCS/modules/servers/OpenStackVPS 
  • Delete these two files openstackvps.js and openstackvps.php that are placed in this folder:
yourWHMCS/includes/hooks
  • Now, upload new files to your main WHMCS directory.

Important! Please remember to reissue the license in the client area after uploading new files to the main WHMCS directory.
If you do not do this, you will get a notification about the wrong license, and the upgrade process will not succeed.
Please follow our documentation to make sure that you reissue the license properly.

  • Run the migration cron job:
php -q /yourWHMCS/modules/servers/OpenStackVpsCloud/cron/cron.php migration:v1_v2 
  • Set the cron task once again:
php -q /yourWHMCS/modules/servers/OpenStackVpsCloud/cron/cron.php queue 
  • Finally, proceed to the configuration of your server and check if the module type is changed to OpenStack VPS Cloud
    and the 'Module Name' to OpenStack VPS Cloud in the 'Module Settings' tab of your product configuration.

[edit] 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 OpenStack VPS & Cloud For WHMCS module to unlock these benefits.
Simply click on either the Get Source Code or Upgrade To Lifetime button found on the product's page in our client area to complete the one-step upgrade process, with a dedicated discount already applied.

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.

[edit] 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
3. If you come across an error with downloading endpoints during the server configuration process, please save the incomplete configuration, refresh a page and then try to finish your server configuration again.
4. In case you encounter any issues with the cloud-int script or it seems not to be working please follow the below steps:
  • Log in to virtual machine via FTP or noVNC
  • Check content of the directory: /var/lib/cloud/instance/user-data.txt
  • If content is the same as you have defined it in the module, it means that the problem is not connected with the module itself
  • In order to verify if the script includes any errors, please run the below command from the console and analyze the results searching for any errors:
 cloud-init --debug init
5. If you come across the "This flavor - flavor_name_or_id - is not available in the region region_name." error when creating a VM, you should refresh the server configuration page and update Configurable Options.
If this error is still occurring, please make sure that you have the same flavor names set for all regions.
6. If you encounter a connection error in the module settings:

'Error:Connection Error: No route to host (Action: GET https://compute-api.svc.vstoragedomain.:8784/v2.1/5dcda23cb9bd4718b32610bbe18a1382/os-availability-zone). Check WHMCS module log for more information'

Please make sure the API IP address is public or there is a domain setup. For more details please refer to the official Virtuozzo Hybrid Infrastructure documentation.

Navigation
WHMCS Modules
WHMCS Widgets
Translations
cPanel Modules
General
FAQ
Community
OpenStack VPS And Cloud For WHMCS