Cloud Zones - Manage Different Data Centre locations

From openQRM
Revision as of 12:45, 11 November 2020 by Stvsyf (talk | contribs) (→‎Install openQRM on Debian)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This How-To is about how to create and manage multiple openQRM Clouds in multiple datacentre 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 info 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

NOTE

If you have not already installed openQRM in Debian, a detailed How-To is available at Install openQRM on Debian

For this How-To we assume you have successfully completed the Cloud Computing with openQRM on Debian How-To

Decide where to install Cloud Zones

openQRM Enterprise Cloud Zones 'talks' 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 How-To we are going to use the openQRM Cloud setup in the Cloud Computing with openQRM on Debian How-To to also run openQRM Enterprise Cloud Zones.

1. 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
Plugin Manager

Assuming you started with the How-To Cloud Computing with openQRM on Debian, just the cloud-zones and ip-mgmt plugin needs to be enabled and started. The other plugins should be already setup from the previous How-To.

2. Network Pool configuration

Go to Plugins -> Enterprise -> IP Management -> Networks and click on 'Add a new network'

IP Address Manager

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

Enter Network details

Later we are going to assign this network pool to the 'default' Cloud User group.

IP Address Manager

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.

3. Cloud Zones configuration

Go to Plugins -> Enterprise -> Cloud Zones -> Config -> Setup and click on update

Main cloud zones configuration

Configure the following items

  • cloud_zones_admin_email -> your 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
Click confirm

4. Create Cloud Zones User Groups

Go to Plugins -> Enterprise -> Cloud Zones -> Config -> Groups and click on new

New Cloud Zone User Group

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'

Add 'QA' and 'Development'

5. Create Cloud Zones Users

Go to Plugins -> Enterprise -> Cloud Zones -> Config -> Users and click on new

Cloud Zones User Manager

Add a new Cloud Zones User.

NOTE Make sure to use a valid email address for the Cloud Users! root@localhost will not work!

Enter User credentials

The new Cloud Zones User got added successfully.

New User

Please add two more Cloud Zones Users, 'qauser' and 'devuser'. Put each of the Cloud Zones User in a different Cloud Zones User Group.

Add 'qauser' and 'devuser'

6. Create the Cloud Zones

Go to Plugins -> Enterprise -> Cloud Zones -> Zones and click on new

Click 'New'

Create a new 'default' Cloud Zone as shown in the following screenshot

New Cloud Zone

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.

Configure Short Cuts

Here the new 'default' Cloud Zone got added successfully.

Default Cloud Zone

Please add two more Cloud Zones for 'qa' and 'development'.

Add two more

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

Click edit on default Cloud Zone User Group

For the 'default' Cloud Zones User group select all 3 available Cloud Zones.

Select all 3

For the 'qa' and 'dev' Cloud Zones User group select only the specific 'qa' and 'dev' Cloud Zones.

Only select respective Cloud Zones

8. Setup the openQRM Cloud as a Cloud Zones Client

Go to Plugins -> Cloud -> Configuration -> Main Config and click on update

Click 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
Update items

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

Terminal

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.

3 error events should occur

Looking at Plugins -> Cloud -> Users we can see that the Cloud Zones Users got created correctly.

Cloud Zone Users that got created correctly

10. Assign Network pools to Cloud Zones User Groups

Go to Plugins -> Cloud -> Configuration -> Ip-Mgmt and click on 'Update' of the 'default' network pool.

Update the default network pool

For the 'default' network pool select the 'default' Cloud User group.

Select default Cloud User group

Also assign 'qa' and 'dev' network pools to the specific 'qa' and 'dev' Cloud Zones User group.

Assign respective network pools to Cloud Zones

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

Login as Cloud Zone User

openQRM Enterprise Cloud Zones automatically logs into the first available Cloud Zones the Cloud Zones User has permissions on. Here's the 'qa' Cloud Zone.

To switch to the 'default' Cloud Zone simply click on the small Cloud icon with the 'default' name.

Cloud Zone Overview

Here we are in the 'default' Cloud Zone now. A map shows you where your Cloud Zone is located.

Default Cloud Zone

Please click on 'create' in the 'default' Cloud Zone

Click on 'Create'

Set up your Cloud Zones request by configuring the VM requirements. To create the new VM in the 'default' Cloud Zone click on 'submit'

Configure VM requirements

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.

Login through Terminal

An embedded SSH Terminal is also available directly in the Cloud Zones Portal System overview. Please select a system and click on 'login'

Select a system and click on 'login'

Here's screenshot of the Web SSH-Login to the new created Cloud VM.

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

Webserver is up and running

Here's a screenshot of Cloud Zone Users Account details.

Cloud Zone User Account details

A list overview about the available Cloud Zones is available too.

Overview of available Cloud Zones

Here's a screenshot of the transaction list for the Cloud Zone User with detailed information about the billing.

Transaction List

Congratulations!!! You have successfully setup openQRM Enterprise Cloud Zones!

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 high availability 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 Virtualisation 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.