2012年3月31日 星期六

Opennebula 3.3.0 in Ubuntu 11.10 安裝

看不習慣的話可以到google doc看 http://goo.gl/sLoq7

這邊的安裝步驟主要是參考
http://www.qyjohn.net/?p=1581製作出來的
  1. [管理端] 安裝基本作業系統,這邊是採用Ubuntu 11.10

安裝光碟可以到 http://ftp.twaren.net/ubuntu-cd/ 這邊下載


  1. 安裝完作業系統,重開機就會出現登入的畫面
  2. 先使用自己的帳號登入,準備開始安裝Opennebula的套件,這邊是採用tarball的方式安裝
  3. 開始創建Opennebula所需要的目錄以及使用者跟群組

sudo mkdir -p /srv/cloud/
sudo groupadd -g 10000 cloud
sudo useradd -u 10000 -g cloud -m oneadmin -d /srv/cloud/one -s /bin/bash
sudo passwd oneadmin
sudo chown -R oneadmin:cloud /srv/cloud/
su -l oneadmin
ssh-keygen
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
echo “StrictHostKeyChecking no” > ~/.ssh/config
exit


  1. 安裝NFS服務,以供之後migration所需 (如果只有單台可跳過)

sudo apt-get install nfs-kernel-server
sudo pico /etc/exports


  1. 編輯 /etc/exports

加入此行

/srv/cloud *(rw,fsid=0,nohide,sync,root_squash,no_subtree_check)


  1. 啟動NFS服務

sudo /etc/init.d/nfs-kernel-server start


  1. 安裝Opennebula 需要使用到的套件

sudo apt-get install libsqlite3-dev libxmlrpc-c3-dev g++ ruby libopenssl-ruby libssl-dev ruby-dev
sudo apt-get install libxml2-dev libmysqlclient-dev libmysql++-dev libsqlite3-ruby libexpat1-dev
sudo apt-get install rake rubygems libxml-parser-ruby1.8 libxslt1-dev genisoimage scons
sudo apt-get install mysql-server
sudo gem install nokogiri
sudo gem install rake
sudo gem install xmlparser

  1. 建立MySQL資料庫,提供Opennebula使用

mysql -u root -p
CREATE USER ‘oneadmin’@'localhost’ IDENTIFIED BY ‘oneadmin’;
CREATE DATABASE opennebula;
GRANT ALL PRIVILEGES ON opennebula.* TO ‘oneadmin’ IDENTIFIED BY ‘oneadmin’;
quit;


  1. 以下更換成oneadmin使用者,下載並安裝opennebula

su -l oneadmin
wget http://dev.opennebula.org/attachments/download/478/opennebula-3.0.0.tar.gz
tar -zxvf opennebula-3.0.0.tar.gz
cd opennebula-3.0.0
scons sqlite=no mysql=yes
./install.sh -u oneadmin -g cloud -d /srv/cloud/one


  1. 編輯 ~/.bash_profile 新增變量,使之後的指令可以順利執行

export ONE_LOCATION=/srv/cloud/one
export ONE_AUTH=$ONE_LOCATION/.one/one_auth
export ONE_XMLRPC=http://localhost:2633/RPC2
export PATH=$ONE_LOCATION/bin:/usr/local/bin:/var/lib/gems/1.8/bin/:$PATH

source ~/.bash_profile


  1. 編輯 ~/.one/oneauth 設置之後要用的用戶名稱及密碼

mkdir ~/.one
echo “oneadmin:YOUR_PASSWORD” > ~/.one/one_auth
chmod 640 ~/.one/one_auth


  1. 編輯 ~/etc/oned.conf 更改使用MySQL資料庫

# DB = [ backend = "sqlite" ]


# Sample configuration for MySQL

DB = [ backend = "mysql",

server = "localhost",

port = 0,

user = "oneadmin",

passwd = "oneadmin",

db_name = "opennebula" ]


  1. 到這邊 Opennebula的管理節點就全部設定完畢,如果你只有一台(管理與計算節點一起),請繼續在這台執行以下的動作
  2. [計算端] 安裝計算節點的作業系統並登入
  3. 安裝虛擬化需使用的套件

sudo apt-get install qemu-kvm libvirt-bin bridge-utils ubuntu-vm-builder ruby


  1. 安裝NFS客戶端 (若只有一台可跳過)

sudo apt-get install nfs-common

  1. 編輯 /etc/fstab (在這邊我們假設剛剛的NFS伺服器在192.168.1.1)

192.168.1.1:/srv/cloud /srv/cloud nfs defaults 0 0


  1. 建立NFS目錄以及掛載遠端目錄

sudo mkdir -p /srv/cloud
sudo mount /srv/cloud


  1. 創建Opennebula要使用的使用者及群組 (單台可跳過此步驟)

sudo groupadd -g 10000 cloud
sudo useradd -u 10000 -g cloud -m oneadmin -s /bin/bash
sudo usermod -d /srv/cloud/one oneadmin
sudo passwd oneadmin
sudo chown oneadmin:cloud /srv/cloud/


  1. 編輯 /etc/libvirt/libvirtd.conf

unix_sock_group = “cloud”


  1. 編輯 /etc/libvirt/qemu.conf

vnc_listen = “0.0.0.0″


  1. 重新啟動libvirt

sudo service libvirt-bin restart
sudo chown :cloud /var/run/libvirt/libvirt-sock


  1. 編輯 /etc/network/interface,此處需視自己的網路狀況設定

auto eth1

iface eth1 inet manual


auto br1

iface br1 inet static

address 192.168.1.2

netmask 255.255.255.0

network 192.168.1.0

broadcast 192.168.1.255

bridge_ports eth1

bridge_stp off

bridge_fd 0

bridge_maxwait 0


  1. [管理端] 再來要把可以執行虛擬機器的節點添加進來,請注意,如果只有一台的話也要把自己添加進來
  2. 加入計算端

onehost create 192.168.1.2 im_kvm vmm_kvm tm_shared

onehost list

成功的話應該會看到機器已經加進來,狀態(STAT)需要是on


  1. 加入完之後,下載一個已經配置好的虛擬機器做測試

mkdir ~/one-templates
cd ~/one-templates
wget http://dev.opennebula.org/attachments/download/170/ttylinux.tar.gz
tar xzf ttylinux.tar.gz


  1. 編輯 ~/one-templates/small_network.txt

NAME = “Small Network”

TYPE = FIXED


BRIDGE = br1

LEASES = [ IP="192.168.1.5"]

LEASES = [ IP="192.168.1.6"]

LEASES = [ IP="192.168.1.7"]

LEASES = [ IP="192.168.1.8"]

LEASES = [ IP="192.168.1.9"]

LEASES = [ IP="192.168.1.10"]

LEASES = [ IP="192.168.1.11"]

LEASES = [ IP="192.168.1.12"]

LEASES = [ IP="192.168.1.13"]

LEASES = [ IP="192.168.1.14"]

LEASES = [ IP="192.168.1.15"]


  1. 加入網路定義到Opennebula

onevnet create small_network.net


  1. 編輯 ttylinux.one

NAME = ttylinux

CPU = 0.1

MEMORY = 64


DISK = [

source = "/srv/cloud/one/one-templates/ttylinux.img",

target = "hda",

readonly = "no" ]


NIC = [ NETWORK_ID = 0]


GRAPHICS = [ TYPE = "VNC"]


FEATURES=[ acpi="no" ]


  1. 開始創建虛擬機器

onevm create ttylinux.one


  1. 可以用這個指令看虛擬機

onevm list


  1. 詳細資料可以用這個指令看,0是上面list裡面你自己的虛擬機器ID

onevm show 0


  1. 用 onevm list 找到虛擬機的VNC port (本例為5900),即可以用vncviewer開啟虛擬機畫面


PS. 若遇到ruby的問題(invalid date format in specification: "2011-08-25 00:00:00.000000000Z"

),可以先試試看更新ruby

gem update --system (Ubunt不可用,需要使用apt-get update在執行以下指令)
gem install rubygems-update
update_rubygems
資料來源: http://stackoverflow.com/questions/7290575/invalid-date-format-specification-in-gemspec

1 則留言: