Try Compass

Compass Appliance - An Illustration of Compass Magic

Introduction

The Compass appliance and its demo environment are built on top of Oracle VirtualBox. The appliance demonstrates an installation process of two hosts, one controller node and one compute node, as shown in the following diagram.

Golden Image

Compass has a web wizard which will lead you to a successful installation step by step. Detailed instructions of each step are shown in the following steps.

System Prerequisites

We provide a pre-configured Compass VM image for you to get a detailed look at what Compass can do. It is packaged as a VirtualBox appliance in OVF. We support MacOS/Ubuntu/Windows at this time. We provide shell/bash scripts to import Compass server and step networks as well as a slave machine.

System requirements are:

  • CPU Architecture: x86_64

  • OSX(tested on Mavericks)/Windows 7 (64-bit)/Ubuntu(tested on 14.04)

  • VirtualBox: VirtualBox is a general-purpose full virtualizer for x86 hardware provided by Oracle. VirtualBox can be downloaded from its official web site at https://www.virtualbox.org/wiki/Downloads

  • VirtualBox Extension Pack, which is also available from https://www.virtualbox.org/wiki/Downloads

  • We have successfully tested this Compass Appliance on the following system:

virtualbox table

When you start the VirtualBox, it should look like this:

Click runme script

**NOTE: if the VirtualBox on your system has pre-existing Compass-related VMs and networks, you may need to clean up before you follow these steps. ** Please refer to Appendix-I if you need guide on how to clean up Compass from VirtualBox.

Download

Download Compass Appliance

Please note that the ZIP file is relatively large (~2.0GB). Its MD5 checksum is 6849f13f21ff369ca303a47dd2f38e6e.

Step 1 - Run Script

Once you have downloaded the Compass appliance zip file, extract the files on your system and open the compass folder and it should look like this:

Click launch script

  • If you are using Windows: run the launch.bat file

  • If you are using Mac or Ubuntu, go to your compass directory, then run

    # ./launch.sh

Note: If you are using Windows, during the execution, the Windows system will ask for administrator’s permission to apply changes to VirtualBox. You cannot run the launch file as administrator, it will cause problem during the following operations.

Run Script

The execution may take up to 5 minutes as it imports the Compass virtual appliance image to VirtualBox depending on your hard disk I/O speed. In addtion, one virtual machine will be created by the batch script for OpenStack installation demo purposes.

Step 2 - Start Compass

After the execution of launch script file has completed, open Oracle VirtualBox. There should be two VMs and two host-only interfaces configured already. Select the VM “compass-server” and start it by clicking the start button on the top tool bar.

start compass server

You will see a pop-up window for “compass-server”, which CentOS6.5 is installed on host “compass-server”.

Normally you do not need to login to compass server for Compass to work. However, if you would like to login, mainly for debugging purposes, the server credentials are listed below:

Username: root
Password: P@ssw0rd

Step 3 - Compass-Web

The booting process for “Compass” may take a few minutes. Once it is ready, open a browser and type in http://33.33.33.20 in the address bar.

If you are unable to get to the page shown below, you may refer to Appendix II for guidance.

Compass welcome page

You may login to Compass using default credentials listed blow:

Email: admin@huawei.com
Password: admin

Once you have successfully logged in, you will see the home-page of Compass. Click on the “New Cluster” button to create a new cluster.

Compass Home

Step 4 - Create a Cluster

A window will pop up when you click on “New Cluster” button. It is asking you for basic information about your cluster. Compass Appliance only supports OpenStack Icehouse on CentOS-6.5 Operating System. Therefore we have already pre-filled the values for you. You may always customize the cluster name.

new_cluster

When you have verified the cluster info, proceed with the “Create” button and you will see this:

wizard begin

You won’t be able to see any servers as this is a brand new Compass environment. To discover servers, click on the “Discover Servers” button on the top-right.

Step 5 - Discover Machines

You will see a block coming up at the left hand side. This block is for you to enter the switch information.

This step allows you to discover hardware information. Enter switch IP addresses and their credentials, Compass will return all the machines that are connected to those switches. Because the Compass appliance does not have a real networking switch in its environment, we mock a switch functinality for demo purposes only: in the Switch IP field, type in “33.33.33.10”. Compass will recognize this particular IP address and return the machine that is previously created by the script file. The default “SNMP version” and “Community” are “v2c” and “public”, respectively.

Add Switch



By clicking “Add”, you will see on the right hand side that “33.33.33.10” has been added:

Discover

Click on “Discover”. It will take no more than 3 seconds to load the default machine information specifically for Compass Appliance.

Server

A machine with a MAC address of “00:01:02:03:04:05” will be added at the bottom of this page. Check the box on its left and click “Next”.

Step 6 - Global Configuration

In this step, you are setting up the global configuration of the server(s) you are going to install OpenStack on. All the required field(except confirm password) have been pre-filled. Most of these values should not be changed unless you change the Compass server’s configuration. For the password field, the default password is ‘huawei’. You may type ‘huawei’ in the password confirm field or override the default password with your own password.

global config

Please proceed with “Next” button once you have confirmed all the global config fields.

Step 7 - Networking

In this step, you can configure your cluster’s network.

You can see in the page below, there are 4 interfaces listed for the host machine by default. You need to cross out “eth2” and “eth3” by clicking on the “x” on top of them. Then click on “Autofill” to automatically add subnets and fill in IP addresses.

Networking

You should be able to see configuration for two interfaces now. Please use “eth0” as Management interface by checking the box of “eth0” under “Is mgmt”. Also please set “eth1” in “promiscuous mode”. The promiscuous mode is for openstack-neutron service to assign floating IPs. So in this case, “eth1” will be your OpenStack external/public network.

subnets

Now click on “Add subnet” to add a subnet for each interface. Please use the config shown below.

add subnets

Click “OK” when you have finished. Now you will see that two subnets have already been created. Please make sure “33.33.33.0/24” is mapped to “eth0” and “192.168.100.0/24” is mapped to “eth1”. You can use the drop-down menu to change the mapping.

Now please fill in IP start values for two interfaces. Compass uses ‘33.33.33.10 and 33.33.33.20’. You may go with other IPs. Please refer to the image below for configuring IP addresses. The drop-down menu next to the IP start field is for IP address auto-fill rules. It provides incremental rules for IP addresses assignment if there are multiple servers. This setting won’t affect our cluster as we only have one all-in-one server.

Also on the left, there is a drop-down menu for assigning hostnames with patterns. We currently provide two patterns.

auto fill subnet

Click on “Fill Values”. You will see the IPs and hostname have been assigned to the server.

ip filled

Proceed with the “Next” button.

**OpenStack Networks: **As you may have noticed, besides “Global”, there are four other tabs:

  • Management: The management network used by OpenStack for various management purposes, such as service endpoint authorization, component communication, etc;

  • Tenant: The OpenStack tenant network. This network enables OpenStack tenants(virtual machines) that are from different physical compute nodes to communicate with each other;

  • External: The external network is a network which OpenStack neutron routes tenant public traffic to. This requires the respective physical interface to be set as promiscuous mode. That is to say, this network needs to be mapped to a unique physical interface which is different from all other networks to avoid networking chaos. (please refer to the screenshot below)

  • Storage: Currently the storage network is not utilized by Compass. Theoretically the storage network will be used by tenants to access storage devices or services such as Swift/Cinder;

Step 8 - Partition

This step allows you to configure the hard disk partition on the server. We have prefilled some values for you. Please DO NOT change the percentage to some crazy number as OpenStack installation may fail due to mount point disk size problems.

partition

Step 9 - Target System Configuration

You are configuring target system on this page. For OpenStack, the configuration is mainly about credentials, including component credentials and keystone user credentials. We have pre-filled these credential values for you. So you can proceed just by clicking on “Next”. You can change some or all of the credentials and you will get a chance to review them on the review page before deployment.

Security

Step 10 - Role Assignment

Roles are what Compass uses to identify what each server does. In OpenStack there are controller, compute, network, storage, etc. These are all roles. When you say some node is a compute node, it means that node is running OpenStack compute services and playing the role as a compute node. We are listing all available roles on the right under “Drag to Assign”. The role list is depending on the flavor you chose when you created the cluster. Different flavors may result in different granularities of roles listed in this section. Compass Appliance uses all-in-one flavor. Therefore we have one available role here called “All in One Compute”.

roles

To manually assign roles, you can just drag the role and drop it at the server under “Roles” column.

Assigned

Click on “Next” to prceed.

Step 11 - Network Mapping

You have already configured physical networks in previous steps, now it’s time to map the OpenStack logical networks to them.

Compass provides four OpenStack networks:

  • Management: The management network used by OpenStack for various management purposes, such as service endpoint authorization, component communication, etc;

  • Tenant: The OpenStack tenant network. This network enables OpenStack tenants(virtual machines) that are from different physical compute nodes to communicate with each other;

  • External: The external network is a network which OpenStack neutron routes tenant public traffic to. This requires the respective physical interface to be set as promiscuous mode. That is to say, this network needs to be mapped to a unique physical interface which is different from all other networks to avoid networking chaos. (please refer to the screenshot below)

  • Storage: The storage network will be used by tenants to access storage devices or services. Also Storage services are using storage network to communicate.

networks

We have already assigned Management network to eth0 and External network to eth1. Note that in this case there are only two network interfaces. Thus Storage and Tenant networks have to be assigned to eth0. As you can see from the image above, eth1 is set as promiscuous mode, so no network other than External network can be assigned to it.

assigned_net

Step 12 - Deploy

review

This step is for a final review before deployment. Please make sure all the configurations are correct. Please take a look at the credentials if you chose to use the pre-filled values. Those values will be used for actual deployment of OpenStack.

Once you have confirmed the cluster configs, proceed with “Deploy” button.

deploy

Step 13 - Viewing OpenStack Deploying Progress

Once the deployment starts, Compass Web-UI updates the cluster progress periodically and shows them as progress bars.

progress

At this point, you will need to go back to the VirtualBox GUI and bring up the server called “allinone”.

upallinone

slave_running

Then wait for a few minutes, you should be able to see progress bar moving, which means Compass is deploying your all-in-one cluster. It will take approximately 15-20 minutes for your all-in-one OpenStack cluster to be deployed. Once the progress bar hits 100% and turns green, your OpenStack is up!

Done

Now open up a new tab on the browser and go to the IP address you set for allinone server. OpenStack dashboard will show up, you can login with the credentials you set up for dashboard. If you chose to use the default values, they are:

username: admin
password: admin

Appendix I - Cleaning Up

If you would like to try out Compass again, you need to remove all the VirtualBox hosts and network configurations. To do so, follow the steps below:

  1. Go back to VirtualBox GUI, multi-select both “compass-server” and “allinone”, then right click on your mouse and select Close -> Power Off.

    cleanup

    cleanup1

  2. Multi-select both servers, then right click on your mouse and select Remove.

    select both

    There will be a pop-up window asking you for actions, click on Delete all Files.

    delete all files

  3. Once you have removed all hosts, remove the host-only interface: go to File -> Preferences.

    preferences

    Then click on the Network tab then the Host-only Networks tab to remove all host-only networks.

    network

    remove

    cleaned_network

If you are using Windows, you will need local admin privilege to perform the removal of network adapters.

clean all

At this point, your Compass environment has been removed and you can start over by executing launch script again.

Appendix II - Frequently Asked Questions

**Q: When I go to the Compass server url, browser does not seem to respond. Why? **

A: There are a few possible reasons:

I. If you are using Wnidows, your VirtualBox HostOnly Network Adapter may be misconfigured

  • Go to Virtualbox UI
  • Check the network adapter setting by File -> Preference

  • Then click on the Network tab and choose the host-only adapter used by compass-servre VM, which is the Adapter 2 of compass-server. For example, in our case, it is Host-only Networks -> VirtualBox Host-Only Ethernet Adapter #2

  • If the IPv4 Address field is not set as 33.33.33.10, you can run the fix_adapter batch file under the compass-server folder. The issue is caused by Windows as it changes network adapter addresses to 169.254 subnet at times.

II. Compass VM powerd off

Go to VirtualBox UI and check if the VM compass-server is powerd on.

III. Compass Apache2 server is not running

  • Open up an ssh session and connect to ssh://33.33.33.20:22, or login in the VM console of compass-server on VirtualBox
  • The default username and password for compass server are: root/P@ssw0rd
  • Check the apache server by running

    # service httpd status

    and see if it’s running

  • If apache server is not running, start it by running

    # service httpd start

Q: If I wanted to retry compass after one successful deployment, would I have to clean up and run the script again?

**A: **Technically yes. But there is a way to work around. You can simply log on to the compass server(33.33.33.20), activate the compass virtual environment by running

# . ~/.virtualenvs/compass-core/bin/activate

and then run

# /opt/compass/bin/refresh.sh

from where you would power off allinone vm, go back to the UI start point and try Compass again.

Q: The deployment is taking forever. Is it unattended? Do I have to wait by my computer during the deployment?

A: Yes it is unattended an no you don’t have to wait (feel free to grab your lunch and come back)

Q: During the installation, the following problem occurs to me. How can I continue?

centos

A: This is not a fatal problem, it may happen to mac, just press “OK” to continue.