Corporate Home Open Source Home
Syndicate content
Eucalyptus

Installing Eucalyptus from source (1.4)

NOTE - If you are upgrading from a Eucalyptus 1.3 or older installation, please consult the Upgrade Documentation for instructions that will explain how to preserve user account information and re-import the images. If you are re-installing version 1.4, you may want to delete cached images on all nodes (in INSTANCE_PATH/eucalyptus/cache so they are not wasting disk space).

1. Download Eucalyptus

Download

  • eucalyptus-1.4-src.tar.gz (Eucalyptus source) and
  • eucalyptus-1.4-src-deps.tar.gz

From the Eucalyptus Web site:

Unpack the Eucalyptus source:

tar zvxf eucalyptus-1.4-src.tar.gz

Now you should have a directory eucalyptus-1.4. 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:

cd eucalyptus-1.4
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.4-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.4-src-deps.tar.gz 
mkdir -p $EUCALYPTUS/packages/

Build and install the dependencies as follows:

a. Axis2

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

b. Apache (Httpd)

The Eucalyptus node and cloud controller depend on Apache 2. We rely on running apache as root, therefore we recommend that apache 2 be installed separately from the webserver that might be included as part of your distribution.

cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
tar zvxf httpd-2.2.8.tar.gz
cd httpd-2.2.8
CFLAGS="-DBIG_SECURITY_HOLE" ./configure --prefix=$EUCALYPTUS/packages/httpd-2.2.8 --with-included-apr
make ; make install

c. 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
./configure --with-apache2=$EUCALYPTUS/packages/httpd-2.2.8/include --prefix=${AXIS2C_HOME}
make ; make install

d. 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.

e. Libvirt

cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
tar zvxf libvirt-0.4.6.tar.gz
cd libvirt-0.4.6
./configure --prefix=$EUCALYPTUS/packages/libvirt-0.4.6 --without-storage-disk --without-storage-iscsi --without-storage-fs --without-storage-lvm --without-libvirtd --without-remote --without-lxc --without-kvm --without-qemu --without-sasl --without-openvz
make ; make install

f. Other software

Additionally, the following dependencies need to be met:

  • Java Development Kit (JDK), version 1.6 or above
  • Apache ant, version 1.6 or above
  • GNU C compiler
  • Make

NOTE: The Eucalyptus dependencies may, in turn, depend on libraries or packages not present in your installation: Please, refer to the documentation of the dependent package for help (e.g., see apache.org Web site for help with compiling the httpd server).

Finally, we recommend that you install functioning EC2 command-line tools from Amazon to interact with Eucalyptus. 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 --with-libvirt=$EUCALYPTUS/packages/libvirt-0.4.6/ --prefix=$EUCALYPTUS
make ; make install

4. Eucalyptus on multiple machines

You need now to instruct Eucalyptus on where it is installed. We provide the 'euca_conf' script as a convenience for setting up the configuration file located in '$EUCALYPTUS/etc/eucalyptus/eucalyptus.conf'. (Expert users may edit this file manually instead of using 'euca_conf'.)

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

At this point you're ready to push the software out to the nodes. If you installed Eucalyptus in its own directory, you can just sync the entire package to all hosts using whatever mechanism you typically use to push changes to nodes (rsync, for instance):

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