openQRM Enterprise Cloud Zones with openQRM
This HowTo is about how to create and manage multiple openQRM Clouds in multiple datacenter locations on Debian with openQRM.
openQRM-Enterprise Cloud Zones is a logical layer on top of openQRM Cloud. It is the central point for the openQRM private Cloud self-service (IAAS) and interfaces with all integrated openQRM Clouds via the well defined openQRM Cloud SOAP API. Cloud Zones supports to split one or more openQRM Cloud into multiple logical zones. For each Cloud Zone the Administrator can define fine grained permissions, dedicated hardware- and network-pools which can be assigned to Cloud User groups. Also Cloud Zones is the central point of billing for all IT-Services including a generic billing-system for external cost allocation which can be easily integrated to existing billing-system such as Quickbooks or SAP.
Those features of openQRM Enterprise Cloud Zones allowing to map an existing business topology 1:1 to a global accessible private Cloud infrastructure.
Please notice that openQRM Enterprise Cloud Zones is an openQRM Enterprise feature which is only available in the openQRM Enterprise Edition. For more infos please check the Edition Comparison at http://www.openqrm-enterprise.com/products/edition-comparison.html
Requirements
- One (or more) physical Server
- at least 1 GB of Memory
- at least 100 GB of Diskspace
- VT (Virtualization Technology) enabled in the Systems BIOS so that the openQRM Server can run Virtual Machines later
Install openQRM on Debian
Install a minimal Debian on a physical Server.
Install and initialize openQRM
Please notice!
A detailed Howto about the above initial starting point is available at Install openQRM on Debian, Virtualization with KVM and openQRM on Debian and Cloud Computing with openQRM on Debian
For this howto we assume you have successfully made it through Cloud Computing with openQRM on Debian.
Decide where to install Cloud Zones
openQRM Enterprise Cloud Zones 'talk' to all integrated openQRM Clouds via the openQRM Cloud SOAP API. That means Cloud Zones is completely independent from an existing openQRM Cloud installation and can be run on a dedicated system. For this howto we are going to use the openQRM Cloud setup in the previous howto to also run openQRM Enterprise Cloud Zones.
Enabling Plugins
Hint: You can use the filter in the plugin list to find plugins by their type easily!
In the openQRM Plugin Manager please make sure to enable and start the following plugins in the sequence below:
- dns plugin - type Networking
- dhcpd plugin - type Networking
- tftpd plugin - type Networking
- network-manager plugin - type Networking
- local-server plugin - type Misc
- device-manager plugin - type Management
- novnc plugin - type Management
- sshterm plugin - type Management
- linuxcoe plugin - type Deployment
- puppet plugin - type Deployment
- kvm plugin - type Virtualization
- cloud plugin - type Cloud
- ip-mgmt plugin - type Enterprise
- cloud-zones plugin - type Enterprise
Assuming you started with the howto about 'Cloud Computing with openQRM 5.1 on Debian Wheezy' just the cloud-zones and ip-mgmt plugin needs to be enabled and started. The other plugins should be already setup from the previous howto.
Network Pool configuration
Go to Plugins -> Enterprise -> IP Management -> Networks and click on 'Add a new network'
Fill in the network pool details. Here we create a part of the class C network 192.168.88.0 (from 192.168.88.180 to 192.168.88.190) as a logical IP address pool with the name 'default'.
Later we are going to assign this network pool to the 'default' Cloud User group.
Feel free to create more network pools according to the Cloud User groups you plan. Here we are adding two more network pools to assign them for the QA and Development Cloud User group later.
Cloud Zones configuration
Go to Plugins -> Enterprise -> Cloud Zones -> Config -> Setup and click on update
Configure the following items
- cloud_zones_admin_email -> you mail address (default root@localhost on the openQRM server)
- cloud_zones_external_url -> the external accessible URL for the Cloud Zones Portal. We are using the IP of the openQRM Server here
- cloud_zones_user_hostnames -> If true Cloud Users are able to set their own hostnames, set to false
- cloud_zones_show_portal -> disables/enables the Cloud Zones Portal, set to true
- cloud_zones_show_login -> disables/enables the Cloud Zones Portal login, set to true
- cloud_zones_google_maps -> openQRM Enterprise Cloud Zones shows where your system are located via Google Maps, set to true
- cloud_zones_show_apps -> if to show the Puppet applications for Cloud Zones deployment, set to true
- cloud_zones_show_ips -> if to show the network-pools, set to true
- cloud_zones_auto_ccu -> if to give new Cloud Users automatically some CCUs (Cloud currency), keep the 0
- cloud_zones_max_network -> how many network interfaces to allow for Cloud Zones deployment, keep the 4
Create Cloud Zones User Groups
Go to Plugins -> Enterprise -> Cloud Zones -> Config -> Groups and click on new
A 'default' Cloud User group is automatically created during initialization of the Cloud Zones plugin. Please add two more Cloud Zones User groups, 'qa' and 'development'
Create Cloud Zones Users
Go to Plugins -> Enterprise -> Cloud Zones -> Config -> Users and click on new
Add a new Cloud Zones User.
Please notice!
Make sure to use a valid email address for the Cloud Users! root@localhost will not work!
The new Cloud Zones User got added successfully.
Please add two more Cloud Zones Users, 'qauser' and 'devuser'. Put each of the Cloud Zones User in a different Cloud Zones User Group.
Create the Cloud Zones
Go to Plugins -> Enterprise -> Cloud Zones -> Zones and click on new
Create a new 'default' Cloud Zone as shown in the following screenshot
Please also scroll down the form to configure the short-cuts. The short-cuts are used to e.g. automatically create hostnames according to your configured naming convention.
Here the new 'default' Cloud Zone got added successfully.
Please add two more Cloud Zones for 'qa' and 'development'.
Assign the Cloud Zones to Cloud Zones User Groups
Go to Plugins -> Enterprise -> Cloud Zones -> Config -> Groups and click on 'Edit' of the 'default' Cloud Zones User Group.
For the 'default' Cloud Zones User group select all 3 available Cloud Zones.
For the 'qa' and 'dev' Cloud Zones User group select only the specific 'qa' and 'dev' Cloud Zones.
Setup the openQRM Cloud as a Cloud Zones Client
Go to Plugins -> Cloud -> Configuration -> Main Config and click on update
Update the following items
- cloud_zones_client -> set to true
- cloud_zones_master_ip -> use the openQRM Server IP address
- cloud_external_ip -> use the openQRM Server IP address
Enable SSL/HTTPS
Since openQRM Cloud Zones 'talks' to the integrated openQRM Clouds via SOAP it requires to have the openQRM webserver configured with SSL/https. To do this please open a terminal on the openQRM Server as 'root' and run the following commands:
cat /usr/share/openqrm/plugins/cloud/etc/httpd/openqrm-https.conf | sed
-e "s#@@OPENQRM_SERVER_BASE_DIR@@#/usr/share#g" | sed -e
"s#@@OPENQRM_WEBSERVER_DOCUMENT_ROOT@@#/var/www#g" | sed -e
"s#server.crt#openqrm.crt#g" | sed -e "s#server.key#private.key#g" >
/etc/apache2/conf.d/openqrm-https.conf
cd /usr/share/openqrm/plugins/cloud/bin
./openqrm-cloud-manager enable-ssl
mv /usr/share/openqrm/plugins/cloud/etc/ssl/cerst /usr/share/openqrm/plugins/cloud/etc/ssl/certs
/etc/init.d/apache2 restart
In the moment SSL/https is setup openQRM Cloud Zones starts to sync Cloud Users, Permission, CCUs and other items into the integrated openQRM Cloud. Please notice that there are now 3 error events in the integrated openQRM Cloud Server to notify about the sync process and user creation. Those event are not critical but just notifier and can be removed.
Looking at Plugins -> Cloud -> Users we can see that the Cloud Zones Users got created correctly.
Assign Network pools to Cloud Zones User Groups
Go to Plugins -> Cloud -> Configuration -> Ip-Mgmt and click on 'Update' of the 'default' network pool.
For the 'default' network pool select the 'default' Cloud User group.
Also assign 'qa' and 'dev' network pools to the specific 'qa' and 'dev' Cloud Zones User group.
Create a VM in Cloud Zones
Go to Plugins -> Enterprise -> Cloud Zones -> Portal to login to openQRM Enterprise Cloud Zone as a Cloud Zone User
openQRM Enterprise Cloud Zones automatically logs into the first available Cloud Zones the Cloud Zones User has permissions on. Here the 'qa' Cloud Zone. to switch to the 'default' Cloud Zone simply click on the small Cloud icon with the 'default' name.
Here we are in the 'default' Cloud Zone now. Please notice the Google Maps always telling you 'were you are'.
Please click on 'create' in the 'default' Cloud Zone
Set up your Cloud Zones request by configuring the VM requirements. To create the new VM in the 'default' Cloud Zone click on 'submit'
Short time later Cloud Zones sends out a mail to the user with the ip address, hostname and login credentials. Here we login to the new created Cloud VM through a regular terminal.
An embedded SSH Terminal is also available directly in the Cloud Zones Portal System overview. Please select a system and click on 'login'
Here a screenshot of the Web SSH-Login to the new created Cloud VM.
The selected Webserver application also got automatically deployed and the webserver on the new created system is up + running
Here a screenshot of Cloud Zone Users Account details.
A list overview about the available Cloud Zones is available too.
Here a screenshot of the transaction list for the Cloud Zone User with detailed information about the billing.
Congratulations!!! You have successfully setup openQRM Enterprise Cloud Zones!
Here the Datacenter Dashboard after the Cloud Zones setup
Add more functionalities to your openQRM Setup
To continue and further enhance your openQRM KVM Virtualization Setup there are several things to do:
- Enable the highavailability plugin to automatically gain HA for your server
- Enable the hybrid-cloud plugin to automate your Amazon EC2 and Eucalyptus deployments
- Enable further Virtualization plugins and integrate remote Virtulization hosts for a fully distributed Cloud environment
- Enable further Storage and Deployment plugins to automatically provision your Virtualization Hosts and other physical systems
- ... and more.
Links
- openQRM Community - http://www.openqrm.com/
- openQRM Project at sourceforge - http://sourceforge.net/projects/openqrm/
- openQRM Enterprise - http://www.openqrm-enterprise.com/
- openQRM at Twitter - https://twitter.com/openQRM
- openQRM at Facebook - https://www.facebook.com/openQRM
- Another openQRM Howto sponsored by openQRM Enterprise