Version 6 (modified by jonmills, 8 years ago)


Installing Euca 2.0.3 from RPM on CentOS


Goal of this document is to show site administrators a way to quickly install a Eucalyptus cluster in a fashion that leverages well-known tools such as DHCP, PXE, Kickstart, and Yum, to create a configuration that is robust and highly repeatable -- allowing one to easily scale the cluster by adding new worker nodes with a minimum of hassle.

It should work like this:

  1. Power on machine, and boot into PXE
  2. Wait for DHCP response, which should give it a 'next-server' pointing to the location of your tftpserver, from which it will Kickstart
  3. Kickstart file should be pre-configured with:
    1. Yum repository data, linking to repos containing pertinent packages
    2. Kickstart %packages section contains names of Euca-related packages to install
    3. Kickstart %post section performs some useful initial configuration


  • You know how to use yum repositories
  • You know how to PXE boot and install a linux RPM-based distro via Kickstart
  • You are installing onto CentOS 5.4, 5.5, or 5.6

Duke NEuca Yum Repository

The Euca 2.0.3 (with NEuca patches) RPM files were compiled by Victor Orlikowski at Duke. He has graciously provided a public Yum repository for accessing them. You may want to mirror that repo to your own local site, however.


name=CentOS NEuca Repo (at Duke CS) $releasever - $basearch

With the above file installed in your /etc/yum.repos.d/, a Yum search for 'euca' should produce something like this:

[root@euca ~]# yum search --disablerepo=* --enablerepo=duke-neuca euca
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
========================================================= Matched: euca =========================================================
euca-axis2.noarch : Elastic Utility Computing Architecture - axis2
euca-axis2c.x86_64 : Elastic Utility Computing Architecture - axis2c
euca-rampartc.x86_64 : Elastic Utility Computing Architecture - rampartc
euca2ools.noarch : Elastic Utility Computing Architecture Command-Line Tools
eucalyptus.x86_64 : Elastic Utility Computing Architecture
eucalyptus-cc.x86_64 : Elastic Utility Computing Architecture - cluster controller
eucalyptus-cloud.x86_64 : Elastic Utility Computing Architecture - cloud controller
eucalyptus-common-java.x86_64 : Elastic Utility Computing Architecture - ws java stack
eucalyptus-gl.x86_64 : Elastic Utility Computing Architecture - log service
eucalyptus-nc.x86_64 : Elastic Utility Computing Architecture - node controller
eucalyptus-sc.x86_64 : Elastic Utility Computing Architecture - storage controller
eucalyptus-walrus.x86_64 : Elastic Utility Computing Architecture - walrus
neuca-iniparser.x86_64 : Elastic Utility Computing Architecture - iniparser
  • At the time of this writing, the RPMS seen here install Eucalyptus 2.0.3.
  • Note the presence of the neuca-iniparser...

EPEL Yum Repository

EPEL (Extra Packages for Enterprise Linux) is a yum repo maintained by the Fedora Project. It will provide some useful packages for us, including the euca2ools package that is necessary for a completely functional Euca cluster.

[root@euca ~]# yum search --disablerepo=* --enablerepo=epel euca2ools
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * epel:
================================================================ Matched: euca2ools ================================================================
euca2ools.noarch : Elastic Utility Computing Architecture Command-Line Tools

PXE Boot Configuration

You need to have a functioning PXE environment. Describing a thorough setup of that is beyond the scope of this document. In our example, we ran the default tftp server in CentOS 5, with the tftp root in /tftpboot. (Paths in the file are relative to that location.) Our PXE config lives in /tftpboot/pxelinux.cfg/default and looks like:

label CENTOS56KSVMx64
        menu label CentOS 5.6 (X86_64 Kick Start Euca Worker Node)
        kernel CentOS/CentOS56/x86_64/vmlinuz
        append initrd=CentOS/CentOS56/x86_64/initrd.img noipv6 ramdisk_size=150000 lang=en devfs=nomount pxe \ 
        kssendmac selinux=0 keymap=us ip=dhcp method= \
        ks= ksdevice=eth0

(4th line should contain no line breaks)

Kickstart Configuration