Manual Cloud Services Installation

This page covers the tasks required to install the StratusLab cloud system. This includes setting-up:

  1. Front-End (cloud management server - OpenNebula)
  2. Node on which the virtual machines will be instantiated.
  3. Web-Monitor application to monitor the infrastructure
  4. Appliance Repository (containing virtual images)

Note: this installation guide was created from a minimal installation of Fedora14.

Prerequisites

The following prerequisites are required for the installation to be successful:

  1. Frontend machine must run Fedora or a compatible Red-Hat distribution
  2. The node machines must run Fedora or a compatible Red-Hat distribution
  3. The root account must be able to SSH into the node machines without password
  4. The default DHCP server must be configured to assign statically IP addresses corresponding to predictable MAC addresses. These IP addresses will require to be publicly visible if the cloud instance are to be accessible from the WAN.

Front-end installation

The front-end includes the OpenNebula system (ONE), which manages the virtualisation layer and the virtual machines.

Install admin tools

To install the StratusLab command-line client for installation, you must install the stratuslab-cli-sysadmin package. StratusLab runs its own YUM repository, so you must add it to your YUM configuration. Drop a file (named say stratuslab-releases.repo) in the /etc/yum.repos.d/ with the following content:

[StratusLab-Releases]
name=StratusLab-Releases
baseurl=http://yum.stratuslab.eu/releases/fedora14
gpgcheck=0
enabled=1

With this in place, you can now install the package:

yum install stratuslab-cli-sysadmin

This package will also install OpenNebula, from a package built by StratusLab, including required patches.

NB: We highly recommend using of Fedora 14+ in the frontend.

If you want to use CentOS 5 systems in the frontend, you should add Extra Packages for Enterprise Linux (EPEL) to your YUM configuration, and install fetch-crl3 package to be able to satisfy dependencies.

Customize configuration file

The StratusLab toolkit (or distribution) is largely composed of third party software. The configuration strategy of StratusLab aims at streamlining the details of the parts composing the distribution proposing a single configuration file from which the entire cloud can be configured.

For this purpose, StratusLab ships with a reference configuration file by default located in /etc/stratuslab/stratuslab.cfg.ref. This file includes all configuration parameters required to configure the underlying software. It also includes comments and description to help understanding the meaning of each parameter. We are trying our best in providing as many reasonable default parameters such that StratusLab installs with minimum fuss. The configuration file is also structured in sections such that finding information is simpler.

The installation command stratus-install uses a configuration file, stratuslab.cfg. To help creating this file from the reference configuration file and manipulating its parameter values, you can use the command stratus-config. To list the content of the configuration, and show the differences between the stratuslab.cfg file and the reference configuration, you can use the -k/-keys option:

stratus-config -k

To change a value, specify the key and the new value. To view a single value, simply specify the key.

Here is an example of the minimum information you will need to configure:

stratus-config frontend_ip 111.222.111.100
stratus-config one_public_network_addr "111.222.111.110 111.222.111.111 111.222.111.112 111.222.111.113"
stratus-config one_public_network_mac "00:11:22:33:44:55 00:11:22:33:44:56 00:11:22:33:44:57 00:11:22:33:44:58"
stratus-config network_addr 111.222.111.0

In this example, the front-end is configured on IP address 111.222.111.100. The operating system of both the front-end and nodes are left to the default fedora. They communicate using the default SSH share strategy. We also define four IP and MAC addresses, which must match the DHCP configuration.

The value parameter in stratus-config doesn't need to be between quotes when containing spaces. This allows using curly brace expansion in Bash shell. For example, you can set a range of IPs with the same result as the above example by using:

stratus-config one_public_network_addr 111.222.111.{110..113}

Persistent disk configuration:

To configure Persistent disk service, define the IP address where it will be installed (for example: the same IP address as the frontend).

stratus-config persistent_disk True
stratus-config persistent_disk_ip ${FRONTEND_IP}

The Persistent disk service and the nodes communicate using a share strategy defined by persistent_disk_share and persistent_disk_storage parameters. Please check persistent-disks section of the configuration file for possible options and explanations.

Network parameters

Three network levels are supported for virtual machines: public, local and private. public and local should be configured using DHCP static IP/MAC assignments. The local network should contain IPs that are local to the site (i.e. not publicly reachable) and NATed if the machines need to communicate with the outside world. private IPs are intended for machines that will be unreachable and will initiate the communication.

Network parameters are described under the one-network configuration section.

Note: we currently only support DHCP configuration for IP and MAC address assignment. We also provide a possibility to install and configure DHCP service on the front-end for the declared public and local ranges. For the latter see dhcp section in the configuration file.

Setup front-end

You can now set-up your cloud by simply issuing the following command:

stratus-install

If errors occur, you can increase the verbosity level by adding -vv.

Additional configuration

Authentication and authorizations

View the dedicated webpage.

Firewall

StratusLab uses its own port (tcp/2634) to provide its remote services. So, the default ONE port (tcp/2633) mustn't be available from outside. The stratus-install command only takes care of the restriction on ONE port by appending appropriated iptables rules. Unfortunately, it can conflict with you current firewall configuration, so don't forget to check it at each run.

Persistent services

Most StratusLab services are not enable at startup by default. If you want to keep them persistent across reboot, you need to do additional configuration:

chkconfig add oned
chkconfig add one-proxy
chkconfig mysqld on

Node(s) installation

To install a node, the front-end root account must be able to ssh to the node without password. You can use the following commands on the front-end to generate ssh keys and copy the public key to the node:

ssh-keygen
ssh-copy-id <node-ip>

Next you run the stratus-install command on the front-end to add each node to the cloud:

stratus-install -n <node-ip>

This will install the virtualisation software defined in your configuration file (by default KVM), install and configure Persistent disk service client software and register the node with the OpenNebula server, running on the front-end.

If a node has already been configured, and you only want to register (or unregister) that node with ONE, you can use the stratus-register-node command.

Web Monitor installation

The Web Monitor application can easily be installed with the stratus-install command:

stratus-install --web-monitor

You should customize the configuration file for the Web Monitor, by default located in /var/www/cgi-bin/conf/stratuslab.cfg. The following parameters are required to access to the front-end information system:

  • one_username (default: oneadmin)
  • frontend_ip (default: 127.0.0.1)
  • proxy_port (default: 2634)
  • proxy_oneadmin_password (default: oneadmin)

If you used the main default values during front-end installation, you should only change the proxy_oneadmin_password. In addition, the Web Monitor assumes that the front-end it monitors is installed on the same machine. If this is not the case, update the frontend_ip parameter value to the hostname or the IP address where your front-end is installed.

A web server should be automatically configured and started during reboot. You can achieve this by running the following command:

chkconfig httpd on 

You should now be able to browse the Web Monitor application from the URL http://<webmonitor-hostname>/cgi-bin/nodelist.py.

If you get an error HTTP Error 500: Error getting data [Errno 13] Permission denied on Monitor web pages, make sure that the SELinux mode is set to Permissive on the Web Monitor machine.

setenforce Permissive

Appliance Repository installation

Claudia installation

  • Bookmark at
  • Bookmark "Manual Cloud Services Installation" at del.icio.us
  • Bookmark "Manual Cloud Services Installation" at Digg
  • Bookmark "Manual Cloud Services Installation" at Reddit
  • Bookmark "Manual Cloud Services Installation" at Google
  • Bookmark "Manual Cloud Services Installation" at StumbleUpon
  • Bookmark "Manual Cloud Services Installation" at Facebook
  • Bookmark "Manual Cloud Services Installation" at Twitter