Pre-Installation Tasks
- groupadd --gid 2001 oneadmin
- useradd --uid 201 -g oneadmin -d /var/lib/one -m oneadmin
- elinks http://downloads.opennebula.org/
- Copy /home/marc/git/xen/dist/install/usr/local/lib/xen/boot/pv-grub* on Flibble to /usr/lib/xen-4.1/boot/
Install
- dpkg --install *.deb
- apt-get -f install (to get dependencies)
- /usr/share/opennebula/install_gems
- cd /usr/share/opennebula
- ./install_novnc.sh
Host configuration
- Ensure that /etc/xen/xend-config.sxp has the vnc-listen directive set to 0.0.0.0
- Add opennebula to /etc/hosts
- apt-get install ruby sshfs
- Copy key to /root/.ssh/authorized_keys
- groupadd and useradd commands as above
- usermod -a -G disk oneadmin
- mkdir /etc/xen/auto
- mkdir /etc/xen/vm
- ssh-keygen for oneadmin and add to authorized_keys on opennebula controller
- Add to /etc/sudoers:
oneadmin ALL=(ALL) NOPASSWD: /usr/sbin/xm *
oneadmin ALL=(ALL) NOPASSWD: /usr/sbin/xentop *
oneadmin ALL=(ALL) NOPASSWD: /sbin/lvs *
oneadmin ALL=(ALL) NOPASSWD: /sbin/lvcreate *
oneadmin ALL=(ALL) NOPASSWD: /sbin/lvremove *
oneadmin ALL=(ALL) NOPASSWD: /bin/dd *
- Mount the datastore by adding to /etc/fstab
sshfs#oneadmin@opennebula:/var/lib/one/datastores/1 /var/lib/one/datastores/1 fuse defaults,allow_other,reconnect 0 0
Front end
- mkdir ~/.one
- echo "oneadmin:password" > ~/.one/one_auth
- chmod 600 ~/.one/one_auth
- Change :host: to 0.0.0.0 and :port: to 80 in /etc/one/sunstone-server.conf
- echo "Host *" >> ~/.ssh/config
- echo " StrictHostKeyChecking no" >> ~/.ssh/config
- Authorise self to SSH: cat /var/lib/one/.ssh/id_rsa.pub /var/lib/one/.ssh/authorized_keys
CXM
- cd ~
- git clone git://github.com/nagius/cxm
- cd git/cxm/miscl
- cp -r opennebula/tm opennebula/vmm /var/lib/one/remotes
- cp cxm.conf /etc/
- Change XPATH directive in cxm.conf to read "xpath -e"
- N.B. Not sure what this does. Ignore for now:
Change the post-migration hook in the cxm configuration to use one-migrate script. In /etc/xen/cxm.conf, change:e in /etc/xen/cxm.conf :
POST_MIGRATION_HOOK="/usr/local/sbin/one-migrate"
And update this script to fill the variable ONE_HOST with the hostname of your OpenNebula frontend.
Root OpenNebula Configuration
- Go to /var/lib/one/remotes/vmm/xen/xenrc and uncomment the line:
export XM_CREDITS="sudo $XM_PATH sched-credit"
- Change /etc/one/one.conf to uncomment the following (commenting the KVM lines):
IM_MAD = [
name = "im_xen",
executable = "one_im_ssh",
arguments = "xen" ]
VM_MAD = [
name = "vmm_xen",
executable = "one_vmm_exec",
arguments = "xen",
default = "vmm_exec/vmm_exec_xen.conf",
type = "xen" ]
- Also add cxm to the TM_MAD directive so it reads:
TM_MAD = [
executable = "one_tm",
arguments = "-t 15 -d dummy,lvm,shared,qcow2,ssh,vmware,iscsi,cxm" ]
- Add the cxm driver:
VM_MAD = [
name = "vmm_cxm",
executable = "one_vmm_exec",
arguments = "-t 15 -r 0 cxm",
default = "vmm_exec/vmm_exec_xen.conf",
type = "xen" ]
- Change the default disk driver for phy: in /etc/one/vmm_exec/vmm_exec_xen.conf :
DISK = [ driver = "phy:" ]
- Change the default device prefix
DEFAULT_DEVICE_PREFIX = "xvd"
Hosts
- onehost create cloud1 --im im_xen --vm vmm_cxm --net dummy
- onehost create cloud2 --im im_xen --vm vmm_cxm --net dummy
- onehost enable cloud1
- onehost enable cloud2
Datastores
- Change the default datastore to use cxm by typing onedatastore update 1
TM_MAD="cxm"
NAME="london1cxm"
DS_MAD="fs"
TM_MAD="cxm"
NO_DECOMPRESS="yes"
SYSTEM="yes"
- onecluster adddatastore London1 london1cxm
Clusters
- onecluster create London1
- onecluster addhost London1 cloud1
- onecluster addhost London1 cloud2
- onecluster update 102
SYSTEM_DS="X" where X is the cxm datastore
Templates
CPU="1"
DISK=[
FORMAT="ext3",
IMAGE_ID="XX"
SIZE="1024",
TYPE="fs" ]
DISK=[
SIZE="128",
TYPE="swap" ]
GRAPHICS=[
TYPE="vnc" ]
MEMORY="128"
NAME="Whatever"
OS=[
BOOTLOADER="/usr/lib/xen-4.1/bin/pygrub" ]
RAW=[
TYPE="xen" ]
TEMPLATE_ID="X"
VCPU="1"
Images
- Create debian.one in /images with the following
NAME = "Deb 6 x86 Std"
PATH = "/images/debian-opennebula.tar.gz"
TYPE = OS
DESCRIPTION = "Debian 6 (Squeeze) x86_64 with standard system utilities"
- oneimage create debian.one -d 1