Eucalyptus 3.2 is becoming ready. It is going to be out soon. But if you think, it’s too hard for you to wait till GA, there are two solutions for you to try out. You can check out nightly builds or go for source installation, which is *fairly* easy.
For this installation I am using two CentOS 6.3 boxes, one as Frontend (CLC/Walrus/CC/SC) and another for backend (NC).
Download the source code from Github,
# git clone git://github.com/eucalyptus/eucalyptus --recursive
Configure repositories,
# yum --nogpg install http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm -y
[walrus host only]
# yum --nogpg install http://elrepo.org/linux/elrepo/el6/x86_64/RPMS/elrepo-release-6-4.el6.elrepo.noarch.rpm -y
Create a eucadeps.repo file for eucalyptus dependencies,
[euca-deps]name=euca-deps baseurl= http://downloads.eucalyptus.com/software/eucalyptus/build-deps/3.1/rhel/$releasever/$basearch gpgcheck=0 enabled=1 [euca-runtime] name=euca-deps baseurl= http://downloads.eucalyptus.com/software/eucalyptus/runtime-deps/3.1/rhel/$releasever/$basearch gpgcheck=0 enabled=1 [euca2ools] name=euca2ools baseurl= http://downloads.eucalyptus.com/software/euca2ools/2.1/centos/$releasever/$basearch gpgcheck=0 enabled=1
Install the required dependencies,
# yum install gcc make ant ant-nodeps axis2-adb-codegen axis2-codegen axis2c-devel jpackage-utils libvirt-devel libxml2-devel libxslt-devel python-devel python-setuptools rampartc-devel swig velocity xalan-j2-xsltc gawk java-devel java-devel openssl-devel curl-devel axis2c dhcp41 dhcp41-common postgresql91 postgresql91-server python-boto rampartc iscsi-initiator-utils perl-Crypt-OpenSSL-RSA perl-Crypt-OpenSSL-Random sudo which jpackage-utils java lvm2 velocity drbd83 drbd83-kmod drbd83-utils drbd euca2ools bitstream-vera-fonts dejavu-serif-fonts bridge-utils iptables vtun device-mapper coreutils e2fsprogs file parted util-linux rsync PyGreSQL libcurl curl httpd libvirt scsi-target-utils vconfig wget kvm patch
Download euca-WSDL2C.sh and save it to /opt on both machines,
# wget https://raw.github.com/eucalyptus/eucalyptus-rpmspec/master/euca-WSDL2C.sh -O /opt/euca-WSDL2C.sh
Download and save eucalyptus-nc-libvirt.pkla to /var/lib/polkit-1/localauthority/10-vendor.d/
# wget https://raw.github.com/eucalyptus/eucalyptus/master/tools/eucalyptus-nc-libvirt.pkla -O /var/lib/polkit-1/localauthority/10-vendor.d/eucalyptus-nc-libvirt.pkla
Add user “eucalyptus” on frontend,
# adduser eucalyptus
On NC,
# useradd -G kvm eucalyptus
Lets build Eucalyptus source now.
Set the following paths on both machines,
# export EUCALYPTUS="/"
Now start compiling Eucalyptus on both machines. Go to the eucalyptus directory and run the following,
# ./configure '--with-axis2=/usr/share/axis2-*' --with-axis2c=/usr/lib64/axis2c --prefix=$EUCALYPTUS --with-apache2-module-dir=/usr/lib64/httpd/modules --with-db-home=/usr/pgsql-9.1 --with-wsdl2c-sh=/opt/euca-WSDL2C.sh
# make clean ; make ; make install
Add the following in /etc/sysconfig/network,
NOZEROCONF=yes
On NC run the following,
# modprobe kvm_intel # modprobe vhost_net
Configure eucalyptus.conf on both machines.
Run the following on both machines to set permission properly,
# su -c "euca_conf --setup"
On Frontend, initialize database and start eucalyptus-cloud service, which will start Cloud Controller, Walrus, Storage Controller, as we have put all in one box. And then start the Cluster Controller. Finally, start Node controller.
# euca_conf --initialize # service eucalyptus-cloud start # service eucalyptus-cc start # service eucalyptus-nc start
Register Eucalyptus components,
# euca_conf --register-walrus --partition walrus --host 10.104.1.179 --component W00 # euca_conf --register-cluster --partition cluster01 --host 10.104.1.179 --component CC00 # euca_conf --register-sc --partition cluster01 --host 10.104.1.179 --component SC00
From 3.2.0, it is a must to set storage manager,
# euca-modify-property -p cluster01.storage.blockstoragemanager=overlay
Register node,
# euca_conf --register-nodes 10.105.1.180
Good Luck!
You really should not have to specify JAVA and JAVA_HOME. If it doesn’t autodetect those, file a bug.
Andy, thanks for the heads up. I will check.
I compiled without setting the JAVA and JAVA_HOME, it works without problem.
Great blog post, following the steps, I found that we can ask the user to switch the directory to the eucalyptus source code, and then start the configure ? Hope that helps.
Updated.
Thanks Deependra.
su -c “euca_conf –setup”
Cannot find not_configured/usr/lib/eucalyptus/euca_rootwrap or not executable
Should we be setting the EUCALYPTUS variable in eucalyptus.conf to / ?
Exactly, you are right. At this point we have to configure eucalyptus.conf files on both hosts.
Those are written in detail in the official Eucalyptus documentation.
Thanks, let me know if you find any improvement needed.
Shaon sir, would you please make a post on how to understand Source code of Eucalyptus ??