This page covers the tasks required to install the StratusLab cloud system. This includes setting-up:
Note: this installation guide was created from a minimal installation of Fedora14.
The following prerequisites are required for the installation to be successful:
The front-end includes the OpenNebula system (ONE), which manages the virtualisation layer and the virtual machines.
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.
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.
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.
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.
View the dedicated webpage.
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.
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
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.
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