[[PageOutline]]
{{{
#!html
實作五: Eucalyptus 安裝
}}}
= 【前言】 =
 * 小提醒
   0. 確認無任何的 VM 再執行
   1. 確定 pcXXX 和 pcYYY 的 '''/etc/hosts''' 有彼此的資訊
   2. Front-end、Node 和 Client 的時鐘需同步 (可使用 sudo ntpdate time.stdtime.gov.tw 來校正時間)
   3. 防火牆需允許 '''8443、8773、8774(Front-end) 和 8775(Node)''' (若是要讓防火牆外的 administrator/user使用時,可請網管開啟這些 port)
   4. 正確的 locales (可用 dpkg-reconfigure locales 選擇正確的語系)
   5. Eucalyptus 安裝和執行需由 '''root''' 執行 (只有 root 可以控制 Eucalyptus)
   6. 若是提供給外面的使用者註冊,需[http://trac.nchc.org.tw/grid/wiki/Eucalyptus/Install/Exim 設定好管理者的 Mail Agent]
 * '''__軟體清單:__'''
|| OS                   || Debian GNU/Linux 5.0.3 (lenny) ||
|| Kernel (support Xen) || 2.6.26-amd64                      ||
|| Xen                  || 3.2                         ||
|| Eucalyptus           || 1.5.2                         ||
|| NVIDIA_Driver        || Linux x64 (AMD64/EM64T) Ver.190.42 || 
----
= 【Step 0: 流程】 =
 * 本教學方便學員,使用 Eucalyptus 提供的套件來簡化安裝流程
 * pcXXX 作為 Eucalyptus Server,pcYYY作為 Eucalyptus Node
{{{
#!graphviz
digraph finite_state_machine {
 rankdir=LR;
 ranksep=0.3;
 size="11,8";
 node[shape=box,width=3.0];
 
 "3.設定 Eucalyptus Cluster" -> "4.啟動 Eucalyptus";
 "1.從套件庫安裝 Eucalyptus" -> "2.設定 Eucalyptus 的網路架構"; 
}
}}}
----
= 【Step 1:從套件庫安裝 Eucalyptus】 =
 * '''pcXXX''' 和 '''pcYYY''' 安裝 Eucalyptus 相依的套件
{{{
$ sudo su
# echo deb http://debian.osuosl.org/debian lenny non-free >> /etc/apt/sources.list
CTRL + D
$ sudo aptitude update
$ sudo aptitude -y install ca-certificates sun-java6-jre
$ sudo mkdir -p /etc/ssl/certs/java/
$ sudo ln -sf /etc/java-6-sun/security/cacerts /etc/ssl/certs/java/cacerts
}}}
 * [http://open.eucalyptus.com/downloads 下載 Eucalyptus 套件] & 新增 Eucalyptus 套件庫 (因下載套件需要一些時間,已先幫學員加入套件庫了,可省略此步驟)
{{{
$ su root
# cd 
# wget http://eucalyptussoftware.com/downloads/releases/eucalyptus-1.5.2-lenny-amd64.tar.gz
# tar zxvf eucalyptus-1.5.2-lenny-amd64.tar.gz
# cd eucalyptus-1.5.2-lenny-amd64
# echo deb file://${PWD} ./ >> /etc/apt/sources.list
}}}
 * 使用 ''aptitude search'' 指令搜尋 Eucalyptus 有哪些套件
{{{
$ sudo aptitude update
$ sudo aptitude search eucalyptus
p   eucalyptus-cc                  - Elastic Utility Computing Architecture - Cluster controller   
p   eucalyptus-cloud               - Elastic Utility Computing Architecture - Cloud controller     
p   eucalyptus-common              - Elastic Utility Computing Architecture - Common files         
p   eucalyptus-gl                  - Elastic Utility Computing Architecture - Logging service      
p   eucalyptus-javadeps            - Eucalyptus Java libraries dependencies                        
p   eucalyptus-nc                  - Elastic Utility Computing Architecture - Node controller
}}}
 * 想一下我們的架構設計: 
   * '''__pcXXX__''' - 安裝 CLoud Controller 和 Cluster Controller
{{{
$ sudo aptitude update
$ sudo aptitude -y install eucalyptus-cloud eucalyptus-cc dhcp3-server
$ sudo passwd eucalyptus
}}}
   * '''__pcYYY__''' - 安裝 Node Controller
{{{
$ sudo aptitude update
$ sudo aptitude -y install eucalyptus-nc
$ sudo passwd eucalyptus
}}}
----
= 【Step 2:設定 Eucalyptus 的網路架構】 =
 * 設定也分為兩部份 pcXXX 和 pcYYY 的設定 (設定檔的位置接放於 /etc/eucalyptus/eucalyptus.conf)
 * Eucalyptus 目前只支援 Xen 的 Bridge 架構,可分為4種網路架構,本範例使用 SYSTEM MODE (若是對其他網路架構有性可[http://trac.nchc.org.tw/grid/wiki/Eucalyptus/Install/Net 參考此篇])
 * '''__pcXXX'''__
{{{
$ sudo gedit /etc/eucalyptus/eucalyptus.conf
}}}
{{{
#!sh
132 VNET_INTERFACE="eth0"
139 #VNET_BRIDGE="eth0"
181 #VNET_MODE="SYSTEM"
193 VNET_MODE="STATIC"
194 VNET_SUBNET="192.168.168.0"
195 VNET_NETMASK="255.255.255.0"
196 VNET_BROADCAST="192.168.168.255"
197 VNET_ROUTER="192.168.168.254"
198 VNET_DNS="140.110.16.1"
199 VNET_MACMAP="00:16:00:00:00:XX=192.168.168.X 00:16:00:00:00:YY=192.168.168.Y 00:16:00:00:00:ZZ=192.168.168.Z"
}}}
 * '''__pcYYY'''__
{{{
$ sudo gedit /etc/eucalyptus/eucalyptus.conf
}}}
{{{
#!sh
132 VNET_INTERFACE="peth0"
139 VNET_BRIDGE="eth0"
181 #VNET_MODE="SYSTEM"
193 VNET_MODE="STATIC"
}}}
----
= 【Step 3: 設定 Eucalyptus Cluster】 =
 * 在我們作為 Server 的那台新增 Cluster Name
   * '''__euca_conf -addcluster   __'''
{{{
$ sudo euca_conf -addcluster Euca_Cluster pcXXX
}}}
 * 新增 Nodes
   * '''__euca_conf -nodes " ... " __'''
{{{
$ sudo euca_conf -nodes "pcYYY"
$ sudo euca_conf -synckeys
}}}
----
= 【Step 4:啟動 Eucalyptus】 =
 * pcXXX 啟動 CLoud Controller & Cluster Controller (可用 start/restart/stop)
{{{
$ sudo /etc/init.d/eucalyptus-cloud restart
$ sudo /etc/init.d/eucalyptus-cc restart
}}}
 * pcYYY 啟動 Node Controller
{{{
$ sudo /etc/init.d/eucalyptus-nc restart
}}}
 * 測試 CLoud Controller 網頁是否啟動 [https://localhost:8443 https://localhost:8443]
[[Image(login.png)]]
----
= 【討論 & 休息】 =
[[BR]]
[[BR]]