Difference between revisions of "Cloud Zones - Manage Different Data Centre locations"

From openQRM
Line 3: Line 3:
 
[[Category:Management]]
 
[[Category:Management]]
 
[[Category:Data Centre]]
 
[[Category:Data Centre]]
 +
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 <nowiki>http://www.openqrm-enterprise.com/products/edition-comparison.html</nowiki>
 +
 +
=== 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:
 +
 +
<code>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</code>
 +
 +
<code>cd /usr/share/openqrm/plugins/cloud/bin</code>
 +
 +
<code>./openqrm-cloud-manager enable-ssl</code>
 +
 +
<code>mv /usr/share/openqrm/plugins/cloud/etc/ssl/cerst /usr/share/openqrm/plugins/cloud/etc/ssl/certs</code>
 +
 +
<code>/etc/init.d/apache2 restart</code>
 +
 +
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 - <nowiki>http://www.openqrm.com/</nowiki>
 +
* openQRM Project at sourceforge - <nowiki>http://sourceforge.net/projects/openqrm/</nowiki>
 +
* openQRM Enterprise - <nowiki>http://www.openqrm-enterprise.com/</nowiki>
 +
* openQRM at Twitter - <nowiki>https://twitter.com/openQRM</nowiki>
 +
* openQRM at Facebook - <nowiki>https://www.facebook.com/openQRM</nowiki>
 +
* Another openQRM Howto sponsored by openQRM Enterprise

Revision as of 09:14, 2 November 2020

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