Installing Eucalyptus (1.5.1)

Before you proceed with the installation, be sure to take a look at the list of Eucalyptus' prerequisites.

A Eucalyptus cloud setup consists of three components -- the cloud controller, the cluster controller(s) and node controller(s). The cloud controller is a Java program that, in addition to high-level resource scheduling and system accounting, offers a Web services interface and a Web interface to the outside world. Cluster controller and node controller are written in C and deployed as Web services inside Apache.

Communication among these three types of components goes over SOAP with WS-security. There is one cluster controller per cluster, running on the head node; there is one node controller per each compute node. So, if you are installing Eucalyptus on one cluster, then one cloud and one cluster controller should be deployed on the head node and one node controller should be deployed on each compute node.

If you are upgrading from a previous version of Eucalyptus, please follow the instructions in the Upgrade Document.

Eucalyptus can be installed from source or using a set of packages (RPM and DEB). The former method is more general and should work on practically any Linux system, the latter should work on distribution which we support (at the moment Ubuntu 9.04, Debian squeeze/lenny, CentOS 5.3 and openSUSE 11). Furthermore, we have special advice for those using Rocks-based clusters.

If run into any problems, be sure to check the troubleshooting guide for solutions to commonly encountered problems.

Installing Eucalyptus from source (1.5.1)

NOTE - If you are upgrading from a Eucalyptus 1.4 or older installation, please consult the Upgrade Documentation for instructions that will explain how to preserve user account information and re-import the images.

1. Download Eucalyptus

Download either

  • eucalyptus-1.5.1-src.tar.gz (Eucalyptus source with included java libraries)

or

  • eucalyptus-1.5.1-src-online.tar.gz (Eucalyptus source that will download java libraries at build-time)

and for both

  • eucalyptus-1.5.1-src-deps.tar.gz (Eucalyptus C library dependency packages)

All packages can be found on the Eucalyptus Web site:

Unpack the Eucalyptus source:

tar zvxf eucalyptus-1.5.1-src.tar.gz

Now you should have a directory eucalyptus-1.5.1. To simplify the remainder of the installation, define EUCALYPTUS_SRC environment variable to be the top of the source tree of eucalyptus and the variable EUCALYPTUS to be the directory where eucalyptus will be installed (we recommend using /opt/eucalyptus/):

cd eucalyptus-1.5.1
export EUCALYPTUS_SRC=`pwd`
export EUCALYPTUS=/opt/eucalyptus

2. Dependencies

To install Eucalyptus, you need to build packages that Eucalyptus depends on, which we provide in the above-mentioned package eucalyptus-1.5.1-src-deps.tar.gz. For the sake of this discussion, we are going to assume that all packages have been untarred inside "$EUCALYPTUS_SRC/eucalyptus-src-deps/" as above and will be installed in "$EUCALYPTUS/packages".

Unpack the dependencies and create the directory you'll use to install them:

cd $EUCALYPTUS_SRC
tar zvxf ../eucalyptus-1.5.1-src-deps.tar.gz 
mkdir -p $EUCALYPTUS/packages/

Build and install the dependencies. The following instructions work on some Linux distributions, but aren't universal. Please, consult the documentation for the specific packages for help with building them on your distribution.

a. Axis2

cd $EUCALYPTUS/packages
tar zxvf $EUCALYPTUS_SRC/eucalyptus-src-deps/axis2-1.4.tgz

b. Axis2/C

export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.5.0
cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
tar zvxf axis2c-src-1.5.0.tar.gz
cd axis2c-src-1.5.0
CFLAGS="-w" ./configure --prefix=${AXIS2C_HOME} --with-apache2=/usr/include/apache2 --with-apr=/usr/include/apr-1.0
make ; make install

c. Rampart/C

export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.5.0
export LD_LIBRARY_PATH=${AXIS2C_HOME}/lib:$LD_LIBRARY_PATH
cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
tar zvxf rampartc-src-1.2.0.tar.gz
cd rampartc-src-1.2.0
./configure --prefix=${AXIS2C_HOME} --enable-static=no --with-axis2=${AXIS2C_HOME}/include/axis2-1.5.0
make ; make install

Now edit the file $AXIS2C_HOME/axis2.xml: search for "Security" and change

  <!--phase name="Security"/-->

to

  <phase name="Security"/>

and save the file.

d. Other software

Please, consult the prerequisites page for additional software, not included by us, that is required for building Eucalyptus.

Furthermore, you will need functioning EC2 command-line tools from Amazon. The latest version of these tools that we support are ec2-api-tools-1.3-30349 and ec2-ami-tools-1.3-26357.

3. Building Eucalyptus

cd $EUCALYPTUS_SRC
./configure --with-axis2=$EUCALYPTUS/packages/axis2-1.4 --with-axis2c=$EUCALYPTUS/packages/axis2c-1.5.0 --enable-debug --prefix=$EUCALYPTUS
cd clc/; make deps; cd ..
make ; make install

4. Deploying Eucalyptus to multiple machines

To configure Eucalyptus you need to specify where Eucalyptus is installed. Moreover, for security reasons you need to specify the Unix user that Eucalyptus's services will run as. We suggest using eucalyptus as such user.

These and other configuration options are stored in the file called $EUCALYPTUS/etc/eucalyptus/eucalytpus.conf on all nodes. You may edit it manually or you may use the euca_conf script that we provide. For instance, the minimal required configuration that should be the same on all nodes can be recorded as follows:

$EUCALYPTUS/usr/sbin/euca_conf -d $EUCALYPTUS -user eucalyptus $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf

At this point, if you plan to use Eucalyptus on more than one node, you're ready to push the software out to the other nodes. If you installed Eucalyptus in its own directory, you can just sync the entire package to all of the hosts listed above using whatever mechanism you typically use to push changes to nodes (rsync, for instance)

rsync -a $EUCALYPTUS/ hostname1:$EUCALYPTUS/
rsync -a $EUCALYPTUS/ hostname2:$EUCALYPTUS/
...

This would also be a good time to ensure that all of your nodes have the Unix user for running Eucalyptus (e.g., eucalyptus is in /etc/passwd on all nodes).

Installing Eucalyptus (1.5.1) on CentOS 5.3

Eucalyptus can be installed on CentOS 5.3 using binary RPM packages.

Download RPMs

WARNING: Uninstalling an old RPM package (1.4 and earlier) will completely remove the $EUCALYPTUS directory, thus removing all the uploaded buckets and registered users! If you want to keep them you should upgrade instead, as explained below.

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.1-centos-i386.tar.gz
  • For 64-bit machines, get eucalyptus-1.5.1-centos-x86_64.tar.gz

Untar the bundle in a temporary location:

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

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 syncronized (i.e., using NTP).
  2. 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.
  3. 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

Install RPMs on the front end

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

Because of a bug in the packaging of euca-axis2c and euca-httpd in 1.4 you have to use --nopostun flag when upgrading those packages (this option is harmless for a first-time install):

cd eucalyptus-1.5.1-rpm-deps-x86_64
rpm -Uvh --nopostun euca-axis2c-1.5-1.x86_64.rpm \
                    euca-httpd-1.5-1.x86_64.rpm 

The rest of the third-party dependencies can be installed normally:

rpm -Uvh aoetools-21-1.el4.x86_64.rpm \
         vblade-14-1mdv2008.1.x86_64.rpm
cd ..         

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

rpm -Uvh eucalyptus-1.5.1-1.x86_64.rpm \
         eucalyptus-cloud-1.5.1-1.x86_64.rpm \
         eucalyptus-gl-1.5.1-1.x86_64.rpm \
         eucalyptus-cc-1.5.1-1.x86_64.rpm

Install RPMs on the nodes

Again, because of a bug in the packaging of euca-axis2c and euca-httpd in 1.4 you have to use --nopostun flag when upgrading those packages (this option is harmless for a first-time install):

cd eucalyptus-1.5.1-rpm-deps-x86_64
rpm -Uvh --nopostun euca-axis2c-1.5-1.x86_64.rpm \
                    euca-httpd-1.5-1.x86_64.rpm 

The rest of the third-party dependencies can be installed normally:

rpm -Uvh aoetools-21-1.el4.x86_64.rpm \
         euca-libvirt-1.5-1.x86_64.rpm \
         vblade-14-1mdv2008.1.x86_64.rpm
cd ..

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

rpm -Uvh eucalyptus-1.5.1-1.x86_64.rpm \
         eucalyptus-gl-1.5.1-1.x86_64.rpm \
         eucalyptus-nc-1.5.1-1.x86_64.rpm

OPTIONAL: Other Configurations

If you would like to run Eucalyptus as a non-root user, perform the following procedure:

  1. Stop all Eucalyptus services (if you've started them already, as described First-time next)
  2. On both front-end and node(s):
    • add new user 'eucalyptus'
    • change EUCA_USER="eucalyptus"' in /opt/eucalyptus/etc/eucalyptus/eucalyptus.conf
  3. On node(s):
    • enable '(xend-http-server yes)' in /etc/xend/xend-config.sxp
    • restart xend
  4. Start all Eucalyptus services in the following order (order is important!)
    • on node(s): /etc/init.d/eucalyptus-nc start
    • on front-end: /etc/init.d/eucalyptus-cc start
    • on front-end: /etc/init.d/eucalyptus-cloud start

Installing Eucalyptus (1.5.1) on openSUSE 11

Eucalyptus can be installed on openSUSE 11 using binary RPM packages.

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.1-opensuse-i386.tar.gz
  • For 64-bit machines, get eucalyptus-1.5.1-opensuse-x86_64.tar.gz

Untar the bundle in a temporary location:

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

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).
  2. 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.
  3. 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

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.1-rpm-deps-x86_64
rpm -Uvh aoetools-25-2.49.x86_64.rpm \
         euca-axis2c-1.5-1.x86_64.rpm \
         euca-httpd-1.5-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.1-1.x86_64.rpm \
         eucalyptus-cloud-1.5.1-1.x86_64.rpm \
         eucalyptus-gl-1.5.1-1.x86_64.rpm \
         eucalyptus-cc-1.5.1-1.x86_64.rpm

Install RPMs on the nodes

Install the dependency packages on each node:

cd eucalyptus-1.5.1-rpm-deps-x86_64
rpm -Uvh aoetools-25-2.49.x86_64.rpm \
         euca-axis2c-1.5-1.x86_64.rpm \
         euca-httpd-1.5-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.1-1.x86_64.rpm \
         eucalyptus-gl-1.5.1-1.x86_64.rpm \
         eucalyptus-nc-1.5.1-1.x86_64.rpm

OPTIONAL: Other Configurations

If you would like to run Eucalyptus as a non-root user, perform the following procedure:

  1. Stop all Eucalyptus services
  2. On both front-end and node(s):
    • add new user 'eucalyptus'
    • change EUCA_USER="eucalyptus"' in /opt/eucalyptus/etc/eucalyptus/eucalyptus.conf
  3. On node(s):
    • enable '(xend-http-server yes)' in /etc/xend/xend-config.sxp
    • restart xend
  4. Start all Eucalyptus services in the following order (order is important!)
    • on node(s): /etc/init.d/eucalyptus-nc start
    • on front-end: /etc/init.d/eucalyptus-cc start
    • on front-end: /etc/init.d/eucalyptus-cloud start

Installing Eucalyptus (1.5.1) on Debian Lenny (5.0.1)

Eucalyptus can be installed on Debian Lenny using binary DEB packages.

Download DEBs

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, and Java libraries).

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

  • For 32-bit machines, get eucalyptus-1.5.1-debian-i386.tar.gz
  • For 64-bit machines, get eucalyptus-1.5.1-debian-amd64.tar.gz

Untar the bundle in a temporary location and add the directory to your sources.list

tar zxvf eucalyptus-1.5.1-*.tar.gz
cd eucalyptus-1.5.1-*
su
echo deb file://${PWD} ./ >> /etc/apt/sources.list
apt-get update

NOTE: After installation feel free to remove the entry from sources.list

Prerequisites

If you start with a standard Debian Lenny 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).
  2. 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
  3. Ensure that locales are properly configured (use dpkg-reconfigure locales

Node Controllers: eucalyptus-nc

  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.
    • EXAMPLE: /etc/xend/xend-config.sxp
      (xend-http-server yes)
      (xend-unix-server yes)
      (xend-unix-path /var/lib/xend/xend-socket)
      (xend-address localhost)
      (network-script network-bridge)
      (vif-script vif-bridge)
      (dom0-min-mem 196)
      (dom0-cpus 0)
      (vncpasswd '')
      

Cloud Controller: eucalyptus-cloud

  1. Fix cacerts for openjdk-6-jdk (missing from the package).
    • Add non-free to your apt sources file /etc/apt/sources.list, for example:
      su -
      echo deb http://debian.osuosl.org/debian lenny non-free >> /etc/apt/sources.list
      apt-get update
      
    • Install sun-java6-jre and create link for cacerts
      su -
      apt-get install ca-certificates sun-java6-jre
      mkdir -p /etc/ssl/certs/java/
      ln -sf /etc/java-6-sun/security/cacerts /etc/ssl/certs/java/cacerts
      

Install DEBs on the front end

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

aptitude install eucalyptus-cc eucalyptus-cloud

Install DEBs on the nodes

On the compute nodes, install the node controller DEB:

aptitude install eucalyptus-nc

Installing Eucalyptus (1.5.1) on Debian Squeeze (sid)

Eucalyptus can be installed on Debian Squeeze using binary DEB packages.

Download DEBs

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, and Java libraries).

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

  • For 32-bit machines, get eucalyptus-1.5.1-debian-i386.tar.gz
  • For 64-bit machines, get eucalyptus-1.5.1-debian-amd64.tar.gz

Untar the bundle in a temporary location and add the directory to your sources.list

tar zxvf eucalyptus-1.5.1-*.tar.gz
cd eucalyptus-1.5.1-*
su
echo deb file:///${PWD} ./ >> /etc/apt/sources.list
apt-get update

NOTE: After installation feel free to remove the entry from sources.list

Prerequisites

If you start with a standard Debian Squeeze 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).
  2. 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
  3. Ensure that locales are properly configured (use dpkg-reconfigure locales

Node Controllers: eucalyptus-nc

  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.
    • EXAMPLE: /etc/xend/xend-config.sxp
      (xend-http-server yes)
      (xend-unix-server yes)
      (xend-unix-path /var/lib/xend/xend-socket)
      (xend-address localhost)
      (network-script network-bridge)
      (vif-script vif-bridge)
      (dom0-min-mem 196)
      (dom0-cpus 0)
      (vncpasswd '')
      

Install DEBs on the front end

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

aptitude install eucalyptus-cc eucalyptus-cloud

Install DEBs on the nodes

On the compute nodes, install the node controller DEB:

aptitude install eucalyptus-nc

Installing Eucalyptus (1.5.1) on Ubuntu Jaunty (9.04)

Eucalyptus can be installed on Ubuntu Jaunty using binary DEB packages.

Download DEBs

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.

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

  • For 32-bit machines, get eucalyptus-1.5.1-ubuntu-i386.tar.gz
  • For 64-bit machines, get eucalyptus-1.5.1-ubuntu-amd64.tar.gz

Untar the bundle in a temporary location and add the directory to your sources.list

tar zxvf eucalyptus-1.5.1-*.tar.gz
cd eucalyptus-1.5.1-*
sudo -s
echo deb file://${PWD} ./ >> /etc/apt/sources.list
apt-get update

NOTE: After installation feel free to remove the entry from sources.list

Prerequisites

If you start with a standard Ubuntu Jaunty 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).
  2. 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
  3. Your node machine(s) must be configured with a bridge as the primary interface, if running in SYSTEM networking mode (default). You must first uninstall or disable Network Manager (default with Ubuntu Desktop), then follow the procedure below (example):
sudo vi /etc/network/interfaces

Comment out any entry for your existing interfaces (eth0/eth1 etc) and add a bridge entry with your interfaces attached. For example, to have your bridge come up with all physical ethernet devices added to it, and have DHCP assign an address to the bridge:

auto br0
iface br0 inet dhcp
      bridge_ports all

For a static configuration with just eth0 attached (substitute your actual network parameters):

auto br0
iface br0 inet static
      address 192.168.12.20
      netmask 255.255.255.0
      network 192.168.12.0
      broadcast 192.168.12.255
      gateway 192.168.12.1
      dns-nameservers 192.168.12.1
      dns-search foobar foobar.com
      bridge_ports eth0

Install DEBs on the front end

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

aptitude install eucalyptus-cc eucalyptus-cloud

Install DEBs on the nodes

On the compute nodes, install the node controller DEB:

aptitude install eucalyptus-nc

Eucalyptus on a Rocks cluster

If you want to install Eucalyptus on a Rocks cluster, you can now follow the regular CentOS RPM instructions. The Cloud Controller and the Cluster Controller will need to be installed on your Rocks front-end, and the Node Controller will need to be installed on any of your Rocks nodes that have been configured as 'VM Containers'.

Eucalyptus will not run on a Rocks virtual cluster!

If you have previously installed Eucalyptus on your Rocks cluster, you should disable the old Eucalyptus rolls:

rocks disable roll eucalyptus

rebuild the rocks distribution:

cd /home/install
rocks-dist dist

and finally reinstall the nodes as 'VM Containers'. You can then follow the CentOS RPM instructions to install and configure Eucalyptus.

Keep in mind that the java roll in Rocks V (and V.I) includes JDK version 1.5 which is not enough to run Eucalyptus. You have to install the 1.6 JDK. For our testing we used Sun's JDK, which can be found at http://java.sun.com/javase/downloads/index.jsp.

Upgrading to Eucalyptus 1.5.1 from 1.4

These are instructions for those who would like to upgrade to Eucalyptus 1.5 from source-based or RPM-based 1.4 installation. If you're still running 1.3, please, follow the instructions for upgrading to 1.4 before following these instructions.

These upgrade instructions involve making a backup of the key state. The last section of this document explains how to roll back to the previous installation using the backup.

Commands below assume that your $EUCALYPTUS variable points to the root of the (old) 1.4 installation. The typical 1.4 installation is in /opt/eucalyptus. After moving the 1.4 installation away or backing it up, the same location will be re-used for the 1.5 installation. If you want to install 1.5 somewhere else, adjust the commands accordingly.

1. Clean up Eucalyptus running state

  • Write down the value of the "Walrus path" listed under the "Configuration" tab of the Web interface. (That is where all uploaded images and user buckets are located.)
  • Terminate all Eucalyptus instances
    ec2-terminate-instances ...      # (as admin)
    
  • Shut down Eucalyptus on all nodes.
    $EUCALYPTUS/etc/init.d/eucalyptus stop
    
  • Check for errant Eucalyptus processes on all nodes and kill them
    ps aux | grep euca
    kill -9 ...
    

2. Install Eucalyptus 1.5

Both source- and RPM-based installations can be upgraded:

  • Option A: Source-based installation upgrade:
    • Move away or back up the 1.4 installation:
      • Pick a backup location:
        export EUCALYPTUS_OLD=/opt/eucalyptus-1.4
        
      • If your 1.4 installation is in a separate directory, such as /opt/eucalyptus, you can just move it away on the head-node and all compute nodes. E.g.:
        mv $EUCALYPTUS $EUCALYPTUS_OLD
        
      • Else, if you installed 1.4 in a location shared with other software, such as / or /usr/local, you'll have to move away or tar up the following directories and files one-by-one:
        $EUCALYPTUS/etc/init.d/eucalyptus 
        $EUCALYPTUS/etc/eucalyptus 
        $EUCALYPTUS/usr/sbin/euca_* 
        $EUCALYPTUS/usr/share/eucalyptus 
        $EUCALYPTUS/var/eucalyptus/[^b]*      # (everything except the "bukkits" directory)
        
      • Also, if you'd like to clean up, you might want to remove the following two directories:
        $EUCALYPTUS/var/log/eucalyptus
        $EUCALYPTUS/var/run/eucalyptus
        
    • Follow the steps in the Source Code Installation section of the Administrator's Guide and, afterwards, return here.
    • Copy back the old database and keys (note that the location has changed slightly):
      cp $EUCALYPTUS_OLD/var/eucalyptus/db/eucalyptus.* $EUCALYPTUS/var/lib/eucalyptus/db/
      cp $EUCALYPTUS_OLD/var/eucalyptus/db/eucalyptus_volumes.* $EUCALYPTUS/var/lib/eucalyptus/db/
      rm -f $EUCALYPTUS/var/eucalyptus/db/*.lck
      cp $EUCALYPTUS_OLD/var/eucalyptus/keys/* $EUCALYPTUS/var/lib/eucalyptus/keys/
      
    • Since the "Walrus path" ($EUCALYPTUS/var/eucalyptus/bukkits by default) potentially contains a lot of data, we do not recommend copying it. If you were using the default location, just move it back:
      mv $EUCALYPTUS_OLD/var/eucalyptus/bukkits $EUCALYPTUS/var/eucalyptus
      
      (FYI: The official default Walrus path in 1.5 is $EUCALYPTUS/var/lib/eucalyptus. If you want to move the buckets there, for consistency with the official value, be sure to also change the Walrus Path setting under the Configuration tab of the Web interface.)
  • Option B: RPM-based installation upgrade:
    • Follow the steps in the CentOS Installation section of the Administrator's Guide and, afterwards, return here.
    • The upgrade should leave rollback archives in /root which could be used to revert to 1.4.

3. Update the configuration

  • We provide a way to upgrade the configuration file
    $EUCALYPTUS/usr/sbin/euca_conf -upgrade-conf <old_config> <new_config>
    
    after which we strongly advice to go and check the generated configuration file: if you upgraded from an older RPM the above command was executed automatically during the upgrade.
  • Edit $EUCALYPTUS_OLD/etc/eucalyptus/eucalyptus.conf file on head node. We suggest starting with the fresh one created during installation and copying over matching parts from the old one. (If you updated an RPM-based install, the new configuration is in eucalyptus.conf.rpmnew while eucalyptus.conf contains your old one.) Specifically, be sure to carry across the values of the following variables:
    • *_PORT
    • NODES
    • INSTANCE_PATH
    • VNET_*
  • Set HYPERVISOR="xen" since your 1.4 installation was Xen-based. You can later switch to a KVM-based installation.
  • Setting the EUCA_USER variable according to the type of installation that you performed in step 2 above (running as root is easier to configure, but it requires one to use a specially compiled Apache).
  • Network parameters from 1.4 should continue to work. To learn about the new network mode (MANAGED-NOVLAN) see the Network Configuration section of the Administrator's Guide..
  • On each compute node, go over the config file, comparing it with the old one, same as with the head-node file. (Naturally, you are free to create a new config file for compute-nodes and rsync it with all the nodes.)
  • Synchronize node keys
    $EUCALYPTUS/usr/sbin/euca_sync_key -c $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf
    
  • Start NCs, the CC, and the CLC. Each one of those services has its own startup script in 1.5, so perform some combination of these on the appropriate machines:
    $EUCALYPTUS/etc/init.d/eucalyptus-nc start
    $EUCALYPTUS/etc/init.d/eucalyptus-cc start
    $EUCALYPTUS/etc/init.d/eucalyptus-clc start
    
  • In a Web browser, load https://headnode:8443/ and log in as before. Verify that the user accounts and the images are there.
  • Verify that the nodes are back up and that they can run your old instances (if not, see the Troubleshooting section.)
    ec2-describe-availability-zones verbose
    
    

4. Clean up old disk state

Once you are confident that the new installation is working, delete the old state on disk.

rm -rf $EUCALYPTUS_OLD 

If you upgraded using RPM packages, delete on all nodes the backup of old state that was created during the upgrade:

rm /root/eucalyptus-pre-1.5-rollback.tar

The upgrade moved some directories location (in order to comply to FHS) so you may have to remove by hand some directory in particular

rm -rf $EUCALYPTUS/var/eucalyptus

6. Rolling back to an earlier installation

  • Stop Eucalyptus 1.5 processes, if any, on all nodes
  • Option A: Rolling back source-based 1.5 upgrade:
    • Remove any files added during the failed upgrade. For example:
      rm -rf $EUCALYPTUS
      
    • Move back the old installation on all nodes:
      mv $EUCALYPTUS_OLD $EUCALYPTUS
      
  • Option B: Rolling back RPM-based 1.5 upgrade:
    • Remove the failed RPMs on all affected nodes (depending on the failure, you might have to use the --nopreun option)
      rpm -e eucalyptus-cloud eucalyptus-cc euca-httpd euca-axis2c euca-libvirt eucalyptus
      
    • Download and install the 1.4 RPMs on all nodes as discussed in the Administrator's Guide. For example, on the front-end you can use:
      rpm -ivh eucalyptus-1.4-2.i386.rpm eucalyptus-cloud-1.4-2.i386.rpm eucalyptus-cc-1.4-2.i386.rpm eucalyptus-gl-1.4-2.i386.rpm
      
    • Copy the old state saved during the upgrade process:
      cd $EUCALYPTUS
      tar xf /root/eucalyptus-pre-1.5-rollback.tar
      
    • Copy over the old configuration file
      cd $EUCALYPTUS
      cp etc/eucalyptus/eucalyptus.conf.old etc/eucalyptus/eucalyptus.conf
      
  • Start Eucalyptus, as before