OpenNebula Installation on CentOS 5.5

blareweyrSoftware and s/w Development

Dec 13, 2013 (3 years and 9 months ago)

94 views

OpenNebula Installation on CentOS

5.5

Prerequisites

You need to enable EPEL repo for installing some packages, e.g. rubygems. See
Fedora project
wiki

on how to enable this.

http://www.thegeekstuff.com/2012/06/enable
-
epel
-
repository/

Step 1:
Install required pa
ckages using yum

sudo yum
-
y install glibc glibc
-
common glibc
-
devel cpp glibc
-
headers kernel
-
headers libgomp libstdc++
-
devel nscd gcc
-
c++ rpm
-
build yum
-
utils pkgconfig

sudo yum
-
y install libxml2 libxml2
-
devel expat expat
-
devel libxslt libxslt
-
devel open
ssl openssl
-
devel curl curl
-
devel

sudo yum
-
y install ruby ruby
-
libs ruby
-
devel ruby
-
irb ruby
-
docs ruby
-
rdoc
ruby
-
ri rubygems cmake

Step 2:
Install sqlite db from source

wget http://www.sqlite.org/sqlite
-
amalgamation
-
3.6.17.tar.gz
-
P /tmp

sudo tar xvzf
/tmp/sqlite
-
amalgamation
-
3.6.17.tar.gz
-
C /usr/local/src

pushd /usr/local/src/sqlite
-
3.6.17/

sudo ./configure

sudo make

sudo make install

popd


Now we have to install the ruby bindings for sqlite. Unfortunately SL has poor support for ruby. First
install r
uby
-
rdoc

yum install ruby
-
rdoc

Download and install rubygems, ruby's package management tool from EPEL (Fedora packages ported to
RHEL)

# wget http://download.fedora.redhat.com/pub/epel/5/i386/rubygems
-
1.3.1
-
1.el5.noarch.rpm

# rpm
-
i
rubygems
-
1.3.1
-
1.el5.noarch.rpm

Finally download and install the bindings themselves

# wget http://download.fedora.redhat.com/pub/epel/5/i386/rubygem
-
sqlite3
-
ruby
-
1.2.4
-
1.el5.i386.rpm

# rpm
-
i rubygem
-
sqlite3
-
ruby
-
1.2.4
-
1.el5.i386.rpm


Step 3:
Install xml
rpc

mkdir
-
p /usr/local/src

cd /usr/local/src



wget http://downloads.sourceforge.net/project/xmlrpc
-
c/Xmlrpc
-
c%20Super%20Stable/1.16.35/xmlrpc
-
c
-
1.16.35.tgz

tar xvzf xmlrpc
-
c
-
1.16.35.tgz


cd xmlrpc
-
c
-
1.16.35

./configure

make

make install


wget
-
P /tmp htt
p://centos.karan.org/el5/extras/testing/SRPMS/xmlrpc
-
c
-
1.06.18
-
1.el5.kb.src.rpm

rpmbuild
--
rebuild /tmp/xmlrpc
-
c
-
1.06.18
-
1.el5.kb.src.rpm

sudo yum
-
y
--
nogpgcheck localinstall /usr/src/redhat/RPMS/x86_64/xmlrpc
-
c
-
*.rpm


yum install xmlrpc
-
c
-
devel.

yum
install curl
-
devel gsm
-
devel git yasm subversion gcc gcc
-
c++ automake
autobuild libtool

yum install libxml2
-
devel


Install the rpms

# rpm
-
i xmlrpc
-
c
-
1.06.18
-
1.el5.kb.i386.rpm

Step 4:
Install scons

wget
-
P /tmp http://prdownloads.sourceforge.net/scons/sco
ns
-
2.0.1
-
1.noarch.rpm

sudo yum
-
y
--
nogpgcheck localinstall /tmp/scons
-
2.0.1
-
1.noarch.rpm

Step 5: Install RVM

http://www.betaquest.com/2011/07/how
-
to
-
install
-
rvm
-
ruby
-
version
-
manager
-
and
-
ruby
-
1
-
8
-
7
-
and
-
1
-
9
-
2
-
ree
-
on
-
centos
-
5
-
6
-
64bit/

Step 6: I
nstall gems

sudo gem install nokogiri rake xmlparser

Step 7:
Add oneadmin user

sudo /usr/sbin/useradd
-
u50000 oneadmin


Step 8: User Accounts

Add an
one

user to run
OpenNebula

and note the uid
and the gid

# useradd one

# id one

Passwordless ssh must be set up for
one
. As
one

generate a key pair. Use the default key location and
press enter when asked for a pass phrase.

# su one

$ ssh
-
keygen
-
t rsa

$cp ~/.ssh/id_rsa.pub >>
~/.ssh/authorized_keys


Step 9:
Create OpenNebula install directory

sudo mkdir
-
p /srv/cloud/one

sudo chown
-
R oneadmin:oneadmin /srv/cloud

sudo chown
-
R oneadmin:oneadmin /tmp/opennebula
-
2..0.1

Step 10:
Download and install OpenNebula

wget
-
P /tmp http://
dev.opennebula.org/attachments/download/264/opennebula
-
2.0.1.tar.gz

pushd /tmp

tar xvzf opennebula
-
2.0.1.tar.gz

pushd opennebula
-
2.0.1

scons

./install.sh
-
u oneadmin
-
g oneadmin
-
d /srv/cloud/one

popd

popd

Step 11:
Configure shell environment

Add
following to ~/.bashrc file

cat >> $HOME/.bashrc <<
\
EOF

# User specific aliases and functions

export ONE_LOCATION=/srv/cloud/one

export ONE_AUTH=$HOME/.one_auth

export ONE_XMLRPC=http://localhost:2633/RPC2

export PATH=/srv/cloud/one/bin:$PATH

EOF

source ~
/.bashrc

Step 12:
Add username and password to ONE_AUTH file

We need to create an account using $ONE_AUTH file


specifying username and password
separated by a colon ‘:’. The first account created will run as an administrator account.

echo "oneadmin:secr
etpassword" >> $ONE_AUTH

Step 13:
Start OpenNebula as ‘oneadmin’ system user

one start


Step 14:
Start the
OpenNebula

daemon

$ $ONE_LOCATION/bin/one start

oned and scheduler started

Step 15: Start Up Script

Add the following to
/home/one/.bash_profile


ONE_LOCATION=/usr/local/one/

ONE_XMLRPC=http://localhost:2633/RPC2

PATH=$ONE_LOCATION/bin:$PATH:$HOME/bin


export PATH

export ONE_LOCATION

export ONE_XMLRPC

Create
/etc/init.d/one

with the following

#!/bin/sh
-
e

# chkconfig: 2345 20 80

# description: Starts the OpenNebula service

case "$1" in


start)


su
-

one /usr/local/one/bin/one start


;;


stop)


su
-

one /usr/local/on
e/bin/one stop


;;


restart)


su
-

one /usr/local/one/bin/one stop


su
-

one /usr/local/one/bin/one start


;;


*)


echo "Usage: one {start|stop|restart}" >&2



exit 1


;;


esac

exit 0

Mark
/etc/init.d/one

as an executable

chmod +x /etec/init.d/one

Add to services started at boot

chkconfig
--
add one

Step 16:
Firewall Settings for XMLRPC Acess

Add the following lines to
/etc/sysconf/iptables

to allow remote RPC control

-
A RH
-
Firewall
-
1
-
INPUT
-
p udp
-
m udp
--
dport 2633
-
j ACCEPT

-
A RH
-
Firewall
-
1
-
INPUT
-
p tcp
-
m tcp
--
dport 2633
-
j ACCEPT


Worker Nodes

Software Requirements



ruby >= 1.8.5

Ruby is available via yum.

# yu
m install ruby

Step 17:
User Accounts

Add an
one

user to run
OpenNebula

with the same uid and gid as the head node

# groupadd
-
g 500 one

# useradd
-
g 500
-
u 500 one

Set up password
less ssh by copying over the head node's public key

#su one

$ cd

$ scp root@ugdev05:/home/one/.ssh/id_rsa.pub .

$ cat id_rsa.pub >> .ssh/authorized_keys

$ rm id_rsa.pub

$ chmod 600 .ssh/authorized_keys

The
one

account need sudo access to some of the xen commands. Add the following to
/etc/sudoers


## OpenNebula access to the Xen commands

one ALL=(ALL) NOPASSWD: /usr/sbin/xm *

one ALL=(ALL) NOPASSWD: /usr/sbin/xentop *

Comment out the followi
ng line in
/etc/sudoers


Defaults requiretty

Step 18:
Set Up

On the head node add the worker node to
OpenNebula


$ onehost create ugdev06 im_xen vmm_xen tm_ssh

Create an
$ONE_LOCATION

on the worker node and change it ownership to
one


# mkdir /usr/local/one

# chown one:one /usr/local/one

Step 19:
Xen Setup

This is assuming Xen is not set up on the worker node

Install the Xen kernel

yum install kernel
-
xen

Reboot

# reboo
t

Install the xen package to provide the Xen daemon

yum install xen

Comment out the non xen kernel in /boot/grup/menu.lst

The scheduler counts the memory assigned to dom0 as used when considering whether to run a VM on
a machine. You need to lower the am
ount of memory used by the dom0 with xm mem
-
set 0 256. Do not
set it lower than 256 MB! Besides

Step 20:
Networking

OpenNebula

needs to have some sort of virtual network set up. Thi
s creates machines with IP addresses
in the range 10.0.1.0
-

10.0.1.254 with MAC adresses of the form
00:03:0a:00:01:01
. However the ip
address supplied is not the one which the VM boots with as our VMs use DHCP to acquire a ip address.
Save the following
in
test.net


NAME = "test"

TYPE = RANGED

BRIDGE = xenbr0

NETWORK_SIZE = C

NETWORK_ADDRESS = 10.0.1.0

Create this network with the following command

onevnet create test.net