A Eucalyptus cloud setup consists of five types of components. The cloud controller (CLC) and "Walrus" are top-level components, with one of each in a cloud installation. The cloud controller is a Java program that offers EC2-compatible SOAP and "Query" interfaces, as well as a Web interface to the outside world. In addition to handling incoming requests, the cloud controller performs high-level resource scheduling and system accounting. Walrus, also written in Java, implements bucket-based storage, which is available outside and inside a cloud through S3-compatible SOAP and REST interfaces.
Top-level components can aggregate resources from multiple clusters (i.e., collections of nodes sharing a LAN segment, possibly residing behind a firewall). Each cluster needs a cluster controller (CC) for cluster-level scheduling and network control and a "storage controller" (SC) for EBS-style block-based storage. The two cluster-level components would typically be deployed on the head-node of a cluster. Finally, every node with a hypervisor will need a node controller (NC) for controlling the hypervisor. CC and NC are written in C and deployed as Web services inside Apache; the SC is written in Java. Communication among these components takes place over SOAP with WS-security.
Many instructions in this guide refer to a single-cluster installation, in which all components except NC are co-located on one machine, which we refer to as front-end. All other machines, running only NCs, will be referred to as nodes. In more advanced configurations, such as those with multiple CCs or with Walrus deployed separately, the front-end will refer to just the machine running the CLC.
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 is easier but will only work on the distributions that we support. As of 1.6 they are:
If you are upgrading from a previous version of Eucalyptus, please follow the instructions in the Upgrade Document.
If you run into any problems, be sure to check the troubleshooting guide for solutions to commonly encountered problems.
What follows is a comprehensive list of dependencies that must be satisfied before building Eucalyptus or running it. While we provide distribution-specific installation instructions that help satisfy these dependencies, this list should be useful if you are installing or building Eucalyptus on an unsupported distribution. NOTE - If you are upgrading from a Eucalyptus 1.6.1 or older installation, please consult the Upgrade Documentation for instructions that will explain how to preserve user account information, images, volumes and snapshots.
There are a few different Eucalyptus components that run on either the 'front-end or 'node'. There are different run-time dependencies for 'front-end' and 'node' components. One physical machine can play the role of the front-end and the node.
Front-end run-time dependencies
Node run-time dependencies
All Eucalyptus components
Attention CentOS users: The version of OpenJDK that is bundled with CentOS-5 cannot compile the version of GWT that comes with Eucalyptus as a dependency. You will need to install JDK 1.6.0 "manually". We use Sun's JDK, which can be found at http://java.sun.com/javase/downloads/index.jsp. Be sure to set your JAVA_HOME and PATH properly before running the Eucalyptus 'configure' script.
What follows is a superset of all packages necessary for building and running Eucalyptus on each supported distribution:
yast2 -i bzr python-paramiko make gcc ant apache2 apache2-devel\ java-1_6_0-openjdk java-1_6_0-openjdk-devel libvirt-devel libcurl-devel\ vlan dhcp-server bridge-utils ant-contrib ant-nodeps curl libvirt
apt-get install bzr gcc make apache2-threaded-dev ant openjdk-6-jdk\ libvirt-dev libcurl4-openssl-dev dhcp3-server vblade apache2 unzip curl vlan\ bridge-utils libvirt-bin kvm vtun
yum install -y java-1.6.0-openjdk-devel ant ant-nodeps libvirt-devel\ curl-devel httpd httpd-devel apr-devel openssl-devel dhcp
apt-get install gcc make apache2-threaded-dev ant openjdk-6-jdk\ libvirt-dev libcurl4-dev dhcp3-server vblade apache2 unzip curl vlan\ bridge-utils libvirt-bin kvm sudo vtun
Please, consult the distribution-specific pages for detailed installation instructions.
To interact with Eucalyptus, you need to install EC2-compatible command-line tools. The instructions in Eucalyptus documentation rely on the euca2ools command-line tools distributed by the Eucalyptus Team. Many other third-party tools can also be used for some of the tasks, as described on the ecosystem page.
In what follows substitute the desired version (e.g., 1.6.2) for $VERSION either manually or by setting a shell variable.
Download either
or
and for both
All packages can be found on the Eucalyptus Web site:
Unpack the Eucalyptus source:
tar zvxf eucalyptus-$VERSION-src.tar.gz
Now you should have a directory eucalyptus-$VERSION. 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-$VERSION export EUCALYPTUS_SRC=`pwd` export EUCALYPTUS=/opt/eucalyptus
To install Eucalyptus, you need to build packages that Eucalyptus depends on, which we provide in the above-mentioned package eucalyptus-$VERSION-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-$VERSION-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.
cd $EUCALYPTUS/packages tar zxvf $EUCALYPTUS_SRC/eucalyptus-src-deps/axis2-1.4.tgz
To compile Axis2/C, you will need to locate development headers for Apache and for APR. On some distributions (e.g., Ubuntu and Debian) the following values should work:
export APACHE_INCLUDES=/usr/include/apache2 export APR_INCLUDES=/usr/include/apr-1.0
On CentOS 5, the headers should be in the following location:
export APACHE_INCLUDES=/usr/include/httpd/ export APR_INCLUDES=/usr/include/apr-1/
while on OpenSuse 11 you may find them at:
export APACHE_INCLUDES=/usr/include/apache2/ export APR_INCLUDES=/usr/include/apr-1/
With the two environment variables set, you can build and install Axis2/C as follows:
export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.6.0
cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
tar zvxf axis2c-src-1.6.0.tar.gz
cd axis2c-src-1.6.0
CFLAGS="-w" ./configure --prefix=${AXIS2C_HOME} --with-apache2=$APACHE_INCLUDES --with-apr=$APR_INCLUDES --enable-multi-thread=no
make ; make install
export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.6.0
export LD_LIBRARY_PATH=${AXIS2C_HOME}/lib:$LD_LIBRARY_PATH
cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
tar zvxf rampartc-src-1.3.0-0euca1.tar.gz
cd rampartc-src-1.3.0
./configure --prefix=${AXIS2C_HOME} --enable-static=no --with-axis2=${AXIS2C_HOME}/include/axis2-1.6.0
make ; make install
Next, change the following in $AXIS2C_HOME/axis2.xml. In the 'inflow' section, change:
<!--phase name="Security"/-->
to
<phase name="Security"/>
<phase name="Rahas"/>
In the 'outflow' section, change:
<!--phase name="Security"/-->
to
<phase name="Security"/>
Make sure JAVA_HOME is defined.
cd $EUCALYPTUS_SRC ./configure --with-axis2=$EUCALYPTUS/packages/axis2-1.4 --with-axis2c=$EUCALYPTUS/packages/axis2c-1.6.0 --enable-debug --prefix=$EUCALYPTUS make ; make install
a. 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 (although not all software components are required on all nodes, it is simpler to just mirror everything and selectively enable components via start-up scripts). 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/ root@{node-host-1}:$EUCALYPTUS/
rsync -a $EUCALYPTUS/ root@{node-host-1}:$EUCALYPTUS/
...
On installations without a root user, such as Ubuntu, it may be easier to pull the software from each node one at a time:
node1# rsync -a {user}@{front-end}:$EUCALYPTUS/ $EUCALYPTUS/
node2# rsync -a {user}@{front-end}:$EUCALYPTUS/ $EUCALYPTUS/
...
NOTE: Installing Eucalyptus in the same directory on all nodes will make it easier to manage it, so we strongly advise you to do so.
6.) Configure hosts
Eucalyptus will run as regular user on your systems, which you'll need to add before running Eucalyptus (we will use eucalyptus) on all machines. For most distributions, this task is accomplished by running the command:
useradd eucalyptus
For OpenSUSE, use:
groupadd eucalyptus useradd eucalyptus -m -g eucalyptus
Ensure that this user can control your hypervisor through libvirt on all compute nodes. On some distributions, this can be accomplished by adding eucalyptus to group libvirt or libvirtd in file /etc/group. Please, consult the documentation for libvirt on your distribution for instructions. For more detailed information, see Hypervisor Configuration for more information.
Eucalyptus provides several network configuration options from which to choose, depending on your local network setup, capabilities, and the networking features that you wish to take advantage of within Eucalyptus. Most networking options require that, on your node controllers, the primary interface is configured to be a bridge (this is the default configuration with some distribution's Xen hypervisor configuration). See Network Configuration for more information and set-up instructions. Once you have decided which network mode you will be using, you may be required to set up ethernet bridges on Eucalyptus component machines. Example bridge configuration steps can be found here.
On your compute nodes, create a local directory where VM images are to be placed temporarily while VMs are running (images will be cached under the same path, too). It is important that the directory is empty as everything in it will be removed. Be sure to pick a partition with ample disk space as VM images can be large. We use /usr/local/eucalyptus in the example below.
Place the mandatory parameters (including the type of hypervisor you plan to use) into the configuration file and set up the permissions on Eucalyptus files appropriately on all nodes. Both tasks can be accomplished with flags to euca_conf tool:
$EUCALYPTUS/usr/sbin/euca_conf -d $EUCALYPTUS --hypervisor kvm --instances /usr/local/eucalyptus --user eucalyptus --setup
Some linux distributions require that the admin perform a few extra steps before bringing up Eucalyptus. This section details some of these steps:
For Ubuntu 9.04 "Jaunty" and 9.10 "Karmic", apparmor needs to be configured to allow dhcpd3 to write to the filesystem. Add the following lines to '/etc/apparmor.d/usr.sbin.dhcp3':
/opt/eucalyptus/var/run/eucalyptus/net/ r, /opt/eucalyptus/var/run/eucalyptus/net/** r, /opt/eucalyptus/var/run/eucalyptus/net/*.pid lrw, /opt/eucalyptus/var/run/eucalyptus/net/*.leases* lrw, /opt/eucalyptus/var/run/eucalyptus/net/*.trace lrw,
where you substitute '/opt/eucalyptus' with the path to where you have chosen to install Eucalyptus. Then, restart apparmor (NOTE: sometimes changes don't take effect right away - either wait or reboot the system to be sure):
/etc/init.d/apparmor stop /etc/init.d/apparmor start
Also, since Ubuntu DHCP daemon is configured to run as 'dhcpd' and not root, ensure that the following two variables are set as follows in the $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf file on the Cluster head-node:
VNET_DHCPDAEMON="/usr/sbin/dhcpd3" VNET_DHCPUSER="dhcpd"
At this point you should be ready to start Eucalyptus processes on all nodes but before doing so you may want to configure the Eucalyptus network: you can read more about it at Network Configuration.
If you want to have eucalyptus started automatically when your machines are (re)booted, you can add the following symlinks on the appropriate hosts: add eucalyptus-cloud on the Cloud head-node, add eucalyptus-cc on the Cluster head-node(s), and add eucalyptus-nc on the compute node(s)
ln -sf $EUCALYPTUS/etc/init.d/eucalyptus-cloud /etc/init.d/eucalyptus-cloud ln -sf $EUCALYPTUS/etc/init.d/eucalyptus-cc /etc/init.d/eucalyptus-cc ln -sf $EUCALYPTUS/etc/init.d/eucalyptus-nc /etc/init.d/eucalyptus-nc
and then add the symlinks to the distribution's booting process. This process differs from distribution to distribution. For example if you have update-rc.d available you can run:
update-rc.d eucalyptus-cloud defaults
or if you have chkconfig available you can run:
chkconfig eucalyptus-cloud on
Eucalyptus comes with the euca_conf script for configuring Eucalyptus. For some requests it modifies the configuration file located in '$EUCALYPTUS/etc/eucalyptus/eucalyptus.conf' (which can also be edited manually), for other requests it modifies the database maintained by the Cloud Controller (much of that functionality is duplicated in the Web interface, to be described later).
In addition to modifying the configuration, euca_conf attempts to synchronize x509 credentials across the nodes of a Eucalyptus installation by relying on rsync and scp. We highly recommend setting up password-less SSH access for the root user across all nodes of your Eucalyptus installation (otherwise, euca_conf will prompt you for remote system passwords).
As explained in the overview, a Eucalyptus installation consists of five types of components: cloud controller (CLC), Walrus, cluster controller (CC), storage controller (SC), and the node controller(s) (NCs). In following instructions we assume that all components except the NCs are co-located on a machine that we will refer to as the front end and that NCs run on compute nodes.
First, make sure that you have all of the runtime dependencies of Eucalyptus installed, based on your chosen set of configuration parameters. If there is a problem with runtime dependencies (for instance, if Eucalyptus cannot find/interact with them), all errors will be reported in log files located in $EUCALYPTUS/var/log/eucalyptus.
Next, inspect the contents of $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf carefully, on each machine, to make sure that the settings are appropriate for your environment.
Once everything is configured properly, enable the cloud services that you wish to run on your front-end, then use the init-scripts to start each component on the appropriate host. Most likely, on the front-end you would run:
# enable services on the front-end $EUCALYPTUS/usr/sbin/euca_conf --enable cloud --enable walrus --enable sc # start enabled front-end services $EUCALYPTUS/etc/init.d/eucalyptus-cloud start # start the cluster controller $EUCALYPTUS/etc/init.d/eucalyptus-cc start
And on each of the compute nodes you would run:
$EUCALYPTUS/etc/init.d/eucalyptus-nc start
To stop them you call the script with stop instead of start.
NOTE: if you later decide to make changes to $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf that will effect the cluster-controller, make sure to use the 'cleanstart', 'cleanstop', and/or 'cleanrestart' directives to the init scripts (as opposed to start/stop/restart). This will both remove all existing CC state, and will cause it to re-read the configuration file.
Eucalyptus can be installed on CentOS 5 from source or by using binary RPM packages. This document details the steps required to install Eucalyptus from RPMs. In what follows, the value of $VERSION must be substituted accordingly (e.g., as 1.6.1, 1.6.2, etc.) for example we can set the value of 1.6.2 using bash:
export VERSION=1.6.2
Notice: Before you begin, please ensure that you have an up-to-date CentOS installation on your target machine(s). In particular, CentOS 5.4, which was recentely released, carries libvirt 0.6.3 which is required to run Eucalyptus.
If you start with a standard CentOS installation, you will satisfy all prerequisites with the following steps:
yum install -y ntp ntpdate pool.ntp.org
yum install -y java-1.6.0-openjdk ant ant-nodeps dhcp bridge-utils httpd
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
For example, from a text console:
From an X terminal:
Eucalyptus binary installation is broken up into several packages: one for each of the components (CLC, Walrus, CC, etc.), as well as a couple of common packages. There are two options for obtaining the packages:
[euca] name=Eucalyptus baseurl=http://www.eucalyptussoftware.com/downloads/repo/eucalyptus/$VERSION/yum/centos/ enabled=1where $VERSION is either 1.6.1 or 1.6.2. Now install eucalyptus on the front-end,
yum install eucalyptus-cloud.$ARCH eucalyptus-cc.$ARCH eucalyptus-walrus.$ARCH eucalyptus-sc.$ARCH --nogpgcheckor the node
yum install eucalyptus-nc.$ARCH --nogpgcheckwhere $ARCH is the architecture of your host (either 'i386' or 'x86_64').
tar zxvf eucalyptus-$VERSION-*.tar.gz cd eucalyptus-$VERSION-*
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-$VERSION*-rpm-deps-x86_64
rpm -Uvh aoetools-21-1.el4.x86_64.rpm \
euca-axis2c-1.6.0-1.x86_64.rpm \
euca-rampartc-1.3.0-1.x86_64.rpm \
vblade-14-1mdv2008.1.x86_64.rpm \
groovy-1.6.5-1.noarch.rpm \
vtun-3.0.2-1.el5.rf.x86_64.rpm \
lzo2-2.02-3.el5.rf.x86_64.rpm
cd ..
Install the -cloud, -walrus, -cc and -sc RPMs on the front end:
rpm -Uvh eucalyptus-$VERSION-*.x86_64.rpm \
eucalyptus-common-java-$VERSION-*.x86_64.rpm \
eucalyptus-cloud-$VERSION-*.x86_64.rpm \
eucalyptus-walrus-$VERSION-*.x86_64.rpm \
eucalyptus-sc-$VERSION-*.x86_64.rpm \
eucalyptus-cc-$VERSION-*.x86_64.rpm \
eucalyptus-gl-$VERSION-*.x86_64.rpm
Install the dependency packages on each compute node:
cd eucalyptus-$VERSION*-rpm-deps-x86_64
rpm -Uvh aoetools-21-1.el4.x86_64.rpm \
euca-axis2c-1.6.0-1.x86_64.rpm \
euca-rampartc-1.3.0-1.x86_64.rpm
cd ..
Install the node controller RPM with dependencies on each compute node:
rpm -Uvh eucalyptus-$VERSION-*.x86_64.rpm \
eucalyptus-gl-$VERSION-*.x86_64.rpm \
eucalyptus-nc-$VERSION-*.x86_64.rpm
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.
Now start up your Eucalyptus services. 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.
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. In what follows, the value of $VERSION must be substituted accordingly (e.g., as 1.6.1, 1.6.2, etc.) for example we can set the value of 1.6.2 using bash:
export VERSION=1.6.2
If you start with a standard openSUSE installation, you will satisfy all prerequisites with the following steps:
sntp -P no -r pool.ntp.org yast2 -i ntp /etc/init.d/ntp restart
yast2 -i apache2 apache2-prefork java-1_6_0-openjdk java-1_6_0-openjdk-devel libvirt curl vlan dhcp-server bridge-utilsand on the node
yast2 -i xen libvirt vlan apache2
su eucalyptus -c "virsh list"
you may see this error (which could show up in the logs too)
Attempting to obtain authorization for org.libvirt.unix.manage. polkit-grant-helper: given auth type (8 -> yes) is bogus Failed to obtain authorization for org.libvirt.unix.manage.
which is harmless.
Eucalyptus binary installation is broken up into several packages: one for each of the components (CLC, Walrus, CC, etc.), as well as a couple of common packages. There are two options for obtaining the packages:
zypper ar --refresh http://www.eucalyptussoftware.com/downloads/repo/eucalyptus/$VERSION/yum/opensuse Eucalyptusanswer question about trusting packages from this repository then refresh it
zypper refresh Eucalyptusand now install eucalyptus on the front-end
zypper install eucalyptus-cloud eucalyptus-cc eucalyptus-walrus eucalyptus-scor the node
zypper install eucalyptus-nc
tar zxvf eucalyptus-$VERSION-*.tar.gz cd eucalyptus-$VERSION-*
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-$VERSION*-rpm-deps-x86_64
rpm -Uvh aoetools-21-1.el4.x86_64.rpm \
euca-axis2c-1.6.0-1.x86_64.rpm \
euca-rampartc-1.3.0-1.x86_64.rpm \
vblade-14-1mdv2008.1.x86_64.rpm \
groovy-1.6.5-1.noarch.rpm \
vtun-3.0.1-1.x86_64.rpm
cd ..
Install the -cloud, -walrus, -cc and -sc RPMs on the front end:
rpm -Uvh eucalyptus-$VERSION-*.x86_64.rpm \
eucalyptus-common-java-$VERSION-*.x86_64.rpm \
eucalyptus-cloud-$VERSION-*.x86_64.rpm \
eucalyptus-sc-$VERSION-*.x86_64.rpm \
eucalyptus-walrus-$VERSION-*.x86_64.rpm \
eucalyptus-cc-$VERSION-*.x86_64.rpm \
eucalyptus-gl-$VERSION-*.x86_64.rpm
Install the dependency packages on each node:
cd eucalyptus-$VERSION*-rpm-deps-x86_64
rpm -Uvh aoetools-25-2.49.x86_64.rpm \
euca-axis2c-1.6.0-1.x86_64.rpm \
euca-rampartc-1.3.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-$VERSION-*.x86_64.rpm \
eucalyptus-gl-$VERSION-*.x86_64.rpm \
eucalyptus-nc-$VERSION-*.x86_64.rpm
Now start up your Eucalyptus services. 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
Eucalyptus can be installed on Debian squeeze using binary DEB packages. Squeeze has not been released yet, so things can change quickly and without warning.
Eucalyptus binary installation is broken up into several packages: one for each of the components (CLC, Walrus, CC, etc.), as well as a couple of common packages. To install them, along with a significant number of dependencies, add our repository to the list of repositories for your system to use. To do so, add somewhere in /etc/apt/sources.list file the following line:
For 1.6.1:
deb http://eucalyptussoftware.com/downloads/repo/eucalyptus/1.6.1/debian/ squeeze contrib
For 1.6.2 (including release candidates):
deb http://eucalyptussoftware.com/downloads/repo/eucalyptus/1.6.2/debian/ squeeze main
And then run:
apt-get update
After installation you may remove the entry from sources.list if you don't want to update Eucalyptus packages automatically.
If you start with a standard Debian squeeze installation, you will satisfy all Eucalyptus prerequisites with the following steps:
sudo apt-get install libvirt-bin qemu-kvm # set the field user to be: user = "eucalyptus" sudo vi /etc/libvirt/qemu.conf # restart libvirt sudo /etc/init.d/libvirt-bin restart
sudo apt-get install bridge-utils 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, use:
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
Finally, restart the network by either by restarting the network with '/etc/init.d/networking restart' or by rebooting the machine.
On front end, where cloud controller, Walrus, cluster controller, and storage controller will run, install the appropriate DEBs:
aptitude install eucalyptus-common eucalyptus-cloud eucalyptus-walrus eucalyptus-sc eucalyptus-cc
On the compute nodes, install the node-controller DEB:
aptitude install eucalyptus-nc
(You may safely ignore the error adduser: The group 'libvirtd' does not exist.)
Eucalyptus 1.6.1 (no longer the most current stable release) can be installed on Ubuntu Jaunty using binary DEB packages. (Ubuntu Lucid users can install the latest release from the standard Ubuntu supported repository, or users of any Ubuntu release from Jaunty and later can always install Eucalyptus from source.)
Eucalyptus binary installation is broken up into several packages: one for each of the components (CLC, Walrus, CC, etc.), as well as a couple of common packages. To install them, along with a significant number of dependencies, add our repository to the list of repositories for your system to use. To do so, add somewhere in /etc/apt/sources.list file the following line:
deb http://www.eucalyptussoftware.com/downloads/repo/eucalyptus/1.6.1/ubuntu jaunty universe
And run:
apt-get update
After installation you may remove the entry from sources.list if you don't want to update Eucalyptus packages automatically.
If you start with a standard Ubuntu Jaunty installation, you will satisfy all prerequisites with the following steps:
ntpdate-debian -s apt-get install openntpd
sudo apt-get install bridge-utils 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
Finally, restart the network by either by restarting the network with '/etc/init.d/network restart' or by rebooting the machine.
On front end, where cloud controller and cluster controller will run, install the -cloud and -cc DEBs:
aptitude install eucalyptus-cc eucalyptus-cloud eucalyptus-common eucalyptus-walrus eucalyptus-sc
On the compute nodes, install the node controller DEB:
aptitude install eucalyptus-nc eucalyptus-common
(You may safely ignore the error adduser: The group 'libvirt' does not exist.)
These instructions are for those who would like to upgrade to Eucalyptus 1.6.2 from a source-based or package-based 1.6.1 installation. If you're still running 1.5.2, please, follow the instructions for upgrading to 1.6.1 before following these instructions. Instructions below assume that $EUCALYPTUS points to the root of the new Eucalyptus installation and $OLD_EUCA points to the root of the old installation (which can be the same as the new one).
1. Stop and back up your current installation
We highly recommend backing up your installation before performing an upgrade. The general approach to backup is outlined in the first part of the Backup section. Starting from Eucalyptus 1.6, a script called euca_upgrade can be used to perform partial backups by creating copies of the configuration file, database, and keys (it does not back up buckets and volumes because of their potentially large disk space requirements and because they are unlikely to be harmed during an upgrade).
and, afterwards, return here.
$EUCALYPTUS/usr/share/eucalyptus/euca_upgrade --new $EUCALYPTUS --old $OLD_EUCA --conf --keys --db
and to upgrade the nodes run
$EUCALYPTUS/usr/share/eucalyptus/euca_upgrade --new $EUCALYPTUS --old $OLD_EUCA --conf --keys
3. Restart Eucalyptus and verify the upgrade
4. Optionally: Roll back to an earlier installation
These instructions are for those who would like to upgrade to Eucalyptus 1.6.1 from a source-based or package-based 1.5.2 installation. If you're still running 1.4, please, follow the instructions for upgrading to 1.5.2 before following these instructions. Instructions below assume that $EUCALYPTUS points to the root of the new Eucalyptus installation and $EUCA_OLD points to the root of the old installation (which can be the same as the new one).
We highly recommend backing up your installation before performing an upgrade. The general approach to backup is outlined in the first part of the Backup section. Starting from Eucalyptus 1.6, a script called euca_upgrade can be used to perform partial backups by creating copies of the configuration file, database, and keys (it does not back up buckets and volumes because of their potentially large disk space requirements and because they are unlikely to be harmed during an upgrade).
and, afterwards, return here.
$EUCALYPTUS/usr/share/eucalyptus/euca_upgrade --new $EUCALYPTUS --old $OLD_EUCA
and to upgrade the nodes run
$EUCALYPTUS/usr/share/eucalyptus/euca_upgrade --new $EUCALYPTUS --old $OLD_EUCA --conf
$EUCALYPTUS/etc/init.d/eucalyptus-nc start $EUCALYPTUS/etc/init.d/eucalyptus-cc start $EUCALYPTUS/etc/init.d/eucalyptus-cloud start
euca-describe-availability-zones verbose
cp -a $EUCALYPTUS/etc/eucalyptus.conf-1.5 $OLD_EUCA/etc/eucalyptus.conf cp -a $ECUALYPTUS/var/lib/eucalyptus/db/1.5/* $OLD_EUCA/var/lib/eucalyptus/db cp -a $EUCALYPTUS/var/lib/eucalyptus/keys/1.5/* $OLD_EUCA/var/lib/eucalyptus/keys