Installing Eucalyptus 2.0.3 on RHEL/CentOS

Need help? Ask on our forums, mailing list, or IRC channel.


Installing Eucalyptus 2.0.3 on CentOS 5.5

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 set to the version of Eucalyptus you wish to install. For example, you can set the value to 2.0.3 using bash:

export VERSION=2.0.3

Notice: Before you begin, please ensure that you have an up-to-date CentOS installation on your target machine(s).

Prerequisites

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

  • Front-end, node(s), and client machine system clocks are synchronized (e.g., using NTP).

    yum install -y ntp
    ntpdate pool.ntp.org
    
  • Front end needs java, command to manipulate a bridge, and the binaries for dhcp server (do not configure or run dhcp server on the CC):

    yum install -y java-1.6.0-openjdk ant ant-nodeps dhcp \
            bridge-utils perl-Convert-ASN1.noarch \
            scsi-target-utils httpd
    
  • 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
    
  • 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 and 9001 must be open; on the node, port 8775 must be open. If you are planning on using Elastic IPs and/or Security Groups, consider disabling the firewall and use Eucalyptus facilities for enabling custom firewall rules (see Network configuration for more information). To do so, on both the front-end and the nodes:

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

Download and Install RPMs

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 downloading and installing the packages:

Yum option

Packages are available from our yum repository. To use this option, create '/etc/yum.repos.d/euca.repo' file with the following four lines:

[euca]
name=Eucalyptus
baseurl=http://www.eucalyptussoftware.com/downloads/repo/eucalyptus/{{VERSION}}/yum/centos/{{BASEARCH}}
gpgcheck=0

Replace {{VERSION}} and {{BASEARCH}} in the baseurl= line above.

Now install Eucalyptus on the front-end:

yum install eucalyptus-cloud eucalyptus-cc eucalyptus-walrus \
        eucalyptus-sc

and on the node:

yum install eucalyptus-nc

Tarball option

Download an archive that includes the Eucalyptus software as well as third party dependencies:

Untar the bundle in a temporary location:

tar zxvf eucalyptus-$VERSION-\*.tar.gz
cd eucalyptus-$VERSION-\*

In the examples below we use x86_64 for the architecture (replace with i386 or i586 if you are installing a 32-bit version) .

Install RPMs on the Front End

Install third-party dependency RPMs:

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 \
     vtun-3.0.2-1.el5.rf.x86_64.rpm \
     lzo2-2.02-3.el5.rf.x86_64.rpm\
     perl-Crypt-OpenSSL-Random-0.04-1.el5.rf.x86_64.rpm\
     perl-Crypt-OpenSSL-RSA-0.25-1.el5.rf.x86_64.rpm\
     perl-Crypt-X509-0.32-1.el5.rf.noarch.rpm\
     python25-2.5.1-bashton1.x86_64.rpm\
     python25-devel-2.5.1-bashton1.x86_64.rpm\
     python25-libs-2.5.1-bashton1.x86_64.rpm
cd ..

then install the Eucalyptus RPMs:

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 RPMs on the Nodes

Install the dependency packages (on each 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\
     perl-Crypt-OpenSSL-Random-0.04-1.el5.rf.x86_64.rpm\
     perl-Crypt-OpenSSL-RSA-0.25-1.el5.rf.x86_64.rpm\
     perl-Crypt-X509-0.32-1.el5.rf.noarch.rpm\
     python25-2.5.1-bashton1.x86_64.rpm\
     python25-devel-2.5.1-bashton1.x86_64.rpm\
     python25-libs-2.5.1-bashton1.x86_64.rpm
cd ..

then install the Eucalyptus RPMs:

rpm -Uvh eucalyptus-$VERSION-\*.x86_64.rpm \
     eucalyptus-gl-$VERSION-\*.x86_64.rpm \
     eucalyptus-nc-$VERSION-\*.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. On each node, access the libvirtd configuration, /etc/libvirt/libvirtd.conf, and confirm that the following lines are uncommented:

unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"

Check that libvirt is configured and interacting properly with the hypervisor (again on each node):

# on XEN
su eucalyptus -c "virsh list"
# on KVM
su eucalyptus -c "virsh qemu:///system 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.

On the front-end:

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

On the node(s):

/etc/init.d/eucalyptus-nc start

At this point you should be ready to proceed with first-time configuration.

Share This Page

Share this Page on Facebook Share this Page on Twitter Email a Friend