Installing Eucalyptus on openSUSE 11

Eucalyptus can be installed on openSUSE 11 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-opensuse-i386.tar.gz
  • For 64-bit machines, get eucalyptus-1.5.2-opensuse-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 openSUSE installation, you will satisfy all Eucalyptus prerequsites with the following steps:

  1. Front-end, node and client machine system clocks are syncronized (i.e. using NTP).
    sntp -P no -r pool.ntp.org
    yast2 -i ntp
    /etc/init.d/ntp restart
  1. Install all dependency packages that are required for Eucalyptus to run:
    # On the front-end:
    yast2 -i ant apache2 apache2-devel java-1_6_0-openjdk java-1_6_0-openjdk-devel libvirt libvirt-devel curl libcurl-devel vlan dhcp-server bridge-utils ant-contrib ant-nodeps

    # On the node:
    yast2 -i xen libvirt libcurl-devel vlan apache2

  1. Node has a fully installed and configured installation of Xen.
    • RECOMMENDED: verify your Xen installation by manually bringing up a VM and testing that it has network connectivity using bridged networking.
    • To set up bridged networking on your node, use the 'yast2' command and go through the following steps:
      • Network Devices
      • Network Settings
      • Select 'OK' to get past information box
      • Traditional Method with ifup
      • Overview
      • Add
      • Device Type: Bridge
      • Next
      • Bridged Devices: select eth0 (or the name of your primary interface)
      • Next
      • Continue
      • Ok
    • make sure that the libvirt daemon (libvirtd) is running and configured properly
      • /etc/init.d/libvirtd start
      • virsh list
  1. Firewall rules must permit the Eucalyptus components to communicate with one another, and clients to communicate with Eucalyptus.
    • NOTE: 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).
      • yast2 firewall startup manual
      • /etc/init.d/SuSEfirewall2_init stop
      • reboot

Install RPMs on the front end

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

Install the third-party dependency RPMs:

cd eucalyptus-1.5.2-rpm-deps-x86_64
rpm -Uvh aoetools-25-2.49.x86_64.rpm \
euca-axis2c-1.5.0-2.x86_64.rpm \
euca-rampartc-1.2.0-1.x86_64.rpm \
vblade-15-2.49.x86_64.rpm
cd ..

On front end, where cloud controller and cluster controller will run, install the -cloud and -cc RPMs:

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 node:

cd eucalyptus-1.5.2-rpm-deps-x86_64
rpm -Uvh aoetools-25-2.49.x86_64.rpm \
euca-axis2c-1.5.0-2.x86_64.rpm \
euca-rampartc-1.2.0-1.x86_64.rpm \
vblade-15-2.49.x86_64.rpm
cd ..

On the compute nodes, install the node controller RPM with dependencies:

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, has rights to interact with the hypervisor through libvirt on all of your nodes. The easiest way to set this up is to run the following command on each node:

su eucalyptus -c '(sleep 1; echo foobar; echo always) | virsh list'

where you substitute your root password for 'foobar'. Alternatively, you can manually log in to each node, become the user 'eucalyptus' using 'su', run 'virsh list', enter your root password and finally enter 'always'.

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

yast2 -i bzr python-paramiko make gcc ant apache2 apache2-devel java-1_6_0-openjdk java-1_6_0-openjdk-devel libvirt libvirt-devel curl libcurl-devel vlan dhcp-server bridge-utils ant-contrib ant-nodeps