Installing Eucalyptus on CentOS 5.3

Eucalyptus can be installed on CentOS 5.3 from source, or by using binary RPM packages. This document details the steps required to install Eucalyptus from RPMs.

Download RPMs

Eucalyptus binary installation is broken up into several packages: the cloud controller (-cloud package), the cluster controller (-cc package), and the node controller (-nc package). To simplify installation, everything is bundled into a single "tarball" for convenience, wherein we include copies of third-party packages that Eucalyptus depends on (Rampart, Axis2C, many Java libraries).

Download the appropriate tarball from http://open.eucalyptus.com/downloads

  • For 32-bit machines, get eucalyptus-1.5.2-centos-i386.tar.gz
  • For 64-bit machines, get eucalyptus-1.5.2-centos-x86_64.tar.gz

Untar the bundle in a temporary location:

tar zxvf eucalyptus-1.5.2-*.tar.gz
cd eucalyptus-1.5.2-*

All others dependencies are present in the standard repositories.

Prerequisites

If you start with a standard CentOS installation, you will satisfy all Eucalyptus prerequsites with the following steps:

  1. Front-end, node and client machine system clocks are synchronized (i.e. using NTP).
    yum install -y ntp
    ntpdate pool.ntp.org
  1. Node has a fully installed and configured installation of Xen that allows controlling the hypervisor via HTTP from localhost.
    yum install -y xen
    sed --in-place 's/#(xend-http-server no)/(xend-http-server yes)/' /etc/xen/xend-config.sxp
    sed --in-place 's/#(xend-address localhost)/(xend-address localhost)/' /etc/xen/xend-config.sxp
    /etc/init.d/xend restart

You will also need a kernel with xen support enabled.

  1. Front-end has Java, Apache ant, and a DHCP server (not necessarily configured properly as Eucalyptus will invoke the binary with a proper configuration)
    yum install -y java-1.6.0-openjdk ant ant-nodeps dhcp bridge-utils
  2. Firewall rules must permit the Eucalyptus components to communicate with one another, and clients to communicate with Eucalyptus. On the front-end, ports 8443, 8773, 8774 must be open; on the node, port 8775 must be open. If you are planning on using Elastic IPs and/or Security Groups, you may want to consider disabling the firewall and use Eucalyptus facilities for enabling custom firewall rules (see Network configuration for more information). On both the front-end and the nodes:

For example, from a text console:

  • run system-config-securitylevel
  • select Security Level: Disabled
  • select OK

From an X terminal:

  • run system-config-security-level
  • select 'Disabled' for 'Firewall'
  • select the 'SELinux' tab
  • select either 'Permissive' or 'Disabled' for SELinux Setting

Install RPMs on the front end

In the examples below we use x86_64, which should be replaced with i386 or i586 on 32-bit architectures.

Install the third-party dependency RPMs on the front end:

cd eucalyptus-1.5.2-rpm-deps-x86_64
rpm -Uvh aoetools-21-1.el4.x86_64.rpm \
euca-axis2c-1.5.0-2.x86_64.rpm \
euca-rampartc-1.2.0-1.x86_64.rpm \
vblade-14-1mdv2008.1.x86_64.rpm
cd ..

Install the -cloud and -cc RPMs on the front end:

rpm -Uvh eucalyptus-1.5.2-1.x86_64.rpm \
eucalyptus-cloud-1.5.2-1.x86_64.rpm \
eucalyptus-gl-1.5.2-1.x86_64.rpm \
eucalyptus-cc-1.5.2-1.x86_64.rpm
Install RPMs on the nodes

Install the dependency packages on each compute node:

cd eucalyptus-1.5.2-rpm-deps-x86_64
rpm -Uvh aoetools-21-1.el4.x86_64.rpm \
euca-axis2c-1.5.0-2.x86_64.rpm \
euca-rampartc-1.2.0-1.x86_64.rpm \
euca-libvirt-1.5-1.x86_64.rpm \
vblade-14-1mdv2008.1.x86_64.rpm
cd ..

Install the node controller RPM with dependencies on each compute node:

rpm -Uvh eucalyptus-1.5.2-1.x86_64.rpm \
eucalyptus-gl-1.5.2-1.x86_64.rpm \
eucalyptus-nc-1.5.2-1.x86_64.rpm
Post-Install Steps

The last step in the installation is to make sure that the user 'eucalyptus', which is created at RPM installation time, is configured to interact with the hypervisor through libvirt on all of your compute nodes. The easiest way to check this is to run the following command on each node:

su eucalyptus -c "virsh list"

The output of that command may include error messages (failed to connect to xend), but as long as it includes a listing of all domains (at least Domain-0), the configuration is in order.

Start up your Eucalyptus services as follow:

On the front-end:

/etc/init.d/eucalyptus-cloud start
/etc/init.d/eucalyptus-cc start

On the node:

/etc/init.d/eucalyptus-nc start

At this point you should be ready to go through the first-time configuration, as described in configuration section.

Other Configuration Dependencies

If you are planning on compiling Eucalyptus, or running Eucalyptus with Elastic IPs, Security Groups and/or using Eucalyptus' ability to isolate VM networks using VLAN tagging, you'll have to install some extra dependencies. The complete list follows:

yum install -y java-1.6.0-openjdk-devel ant ant-nodeps libvirt-devel curl-devel httpd httpd-devel apr-devel openssl-devel dhcp