[[PageOutline]] = Eucalyptus 安裝 = == 【1.序言】 == * Eucalyptus的安裝主要有兩種方法: 1. __'''''從 Source 安裝'''''__ 2. __'''''從套件安裝'''''__,官方有提供[http://open.eucalyptus.com/downloads RPM 套件]可安裝,或是 OS 為 Ubuntu 9.04 直接可 apt-get install * 本安裝文件想了解 Eucalyptus 的架構,所以選擇從 Source 安裝 * Eucalyptus 太長了 @@,之後文章用 Euc 簡稱 ---- == 【2.安裝步驟】 == * 主要參考 [http://open.eucalyptus.com/wiki/EucalyptusAdministratorGuide_v1.4 Eucalyptus Administrator Guide v1.4]安裝步驟,此文件主要分為5部份:(1)__必要的環境設定__,(2)__安裝__,(3)__配置__,(4)__管理__,(5)__問題排解__ === '''''__『2.1 必要的環境設定』__''''' === * __2.1.1__ 從 Source 安裝所需的套件 -> (1)C compilers (2)Java Developer Kit (SDK) version 1.6 or above (3)Apache ant 1.6.5 or above (4)Curl development package (5)openssl development package * __2.1.2__ 執行 Eucalyptus 需要的套件 (Euc 有分為 front-end 和 node,安裝的 Euc 元件也不同) * Front-end run-time dependencies -> (1) Java6 (2) Apache ant -> cloud controller (3)Java(TM) Cryptography Extension (JCE) (4) Run a server on port 25 & Exim, postfix to send mail (5) Dhcp3-server (6) iptables, vlan(vconfig) (7) 如果從 rpm 安裝的話,必須再安裝 xen-libs RPM * Node run-time dependencies -> (1) xen > 3.0.X: enabule Unix Socket for Euc to contorl Xen -> xend-unix-server yes,Euc 透過 libvirt >0.6.0 與 hypervisior 互動,需確定 libvrt 是正常的來執行 Eucalyptus Node Controller (2) Euc 支援各種網路型式 : vlan (vconfig), bridge-utils, xen-utils * __2.1.3__ 與 Euc 互動的套件 -> 需安裝 EC2 command-line tools: (1)[http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-30349.zip ec2-api-tools-1.3-30349] (2)[http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.3-26357.zip ec2-ami-tools-1.3-26357] === '''''__『2.2 從 source 安裝』__''''' === * __2.2.0__ 安裝前需注意以完成 2.1 的部份,此外 Euc 分為三個元件: (元件間透過 SOAP with WS-security 來溝通,一個 Cluster 只會有一個 Cluster controller 被執行再 head node 和每個 node 都個有一個 Node controller) 1. '''Cloud controller''' -> Java 寫的程式,負責高階的資源排程和系統 accounting,此外也提供 Web services 和網頁介面讓外界使用者可以連接 2. '''Cluster controller(s)''' -> 用 C 撰寫,在 Apache 內當成 Web server 來佈署 3. '''Node controller(s)''' -> 用 C 撰寫,在 Apache 內當成 Web server 來佈署 * __2.2.1__ [http://open.eucalyptus.com/downloads 下載 Eucalyptus] -> 下載兩個檔案 eucalyptus-1.4-src.tar.gz (Eucalyptus source) & eucalyptus-1.4-src-deps.tar.gz {{{ #!sh ### 1.解壓縮 ### $ su $ sudo tar zvxf eucalyptus-1.4-src.tar.gz -C ~ ### 2.設定環境變數 ### $ echo "export EUCALYPTUS_SRC=/root/" >> /root/.bashrc $ echo "export EUCALYPTUS=/opt/eucalyptus" >> /root/.bashrc $ source /root/.bashrc ### 3.安裝 Euc 相依的軟體 ### $ tar zvxf eucalyptus-1.4-src-deps.tar.gz -C $EUCALYPTUS_SRC $ mkdir -p $EUCALYPTUS/packages/ ### 3.1 Axis2 ### $ cd $EUCALYPTUS_SRC/eucalyptus-src-deps/ $ tar zxvf axis2-1.4.tgz -C $EUCALYPTUS/packages/ ### 3.2 Apache(httpd) ### $ tar zvxf httpd-2.2.8.tar.gz $ cd httpd-2.2.8 $ CFLAGS="-DBIG_SECURITY_HOLE" ./configure --prefix=$EUCALYPTUS/packages/httpd-2.2.8 --with-included-apr $ make ; make install ### 3.3 Axis2/C ### $ cd $EUCALYPTUS_SRC/eucalyptus-src-deps/ $ export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.5.0 $ tar zvxf axis2c-src-1.5.0.tar.gz $ cd axis2c-src-1.5.0 $ ./configure --with-apache2=$EUCALYPTUS/packages/httpd-2.2.8/include --prefix=${AXIS2C_HOME} $ make ; make install ### 3.4 Rampart/C ### $ cd $EUCALYPTUS_SRC/eucalyptus-src-deps/ $ export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.5.0 $ export LD_LIBRARY_PATH=${AXIS2C_HOME}/lib:$LD_LIBRARY_PATH $ tar zvxf rampartc-src-1.2.0.tar.gz $ cd rampartc-src-1.2.0 $ ./configure --prefix=${AXIS2C_HOME} --enable-static=no --with-axis2=${AXIS2C_HOME}/include/axis2-1.5.0 $ make ; make install $ vim $AXIS2C_HOME/axis2.xml ### 3.5 Libvirt ### $ cd $EUCALYPTUS_SRC/eucalyptus-src-deps/ $ tar zvxf libvirt-0.4.6.tar.gz $ cd libvirt-0.4.6 $ ./configure --prefix=$EUCALYPTUS/packages/libvirt-0.4.6 --without-storage-disk --without-storage-iscsi --without-storage-fs --without-storage-lvm --without-libvirtd --without-remote --without-lxc --without-kvm --without-qemu --without-sasl --without-openvz $ make ; make install ### 3.6 Other software ### * Java Development Kit (JDK), version 1.6 or above * Apache ant, version 1.6 or above * GNU C compiler * Make }}} * __2.2.2__ Building Eucalyptus {{{ $ cd $EUCALYPTUS_SRC $ ./configure --with-axis2=$EUCALYPTUS/packages/axis2-1.4 --with-axis2c=$EUCALYPTUS/packages/axis2c-1.5.0 --with-libvirt=$EUCALYPTUS/packages/libvirt-0.4.6/ --prefix=$EUCALYPTUS $ make ; make install }}} * __2.2.3__ Eucalyptus on multiple machines {{{ ### 設定 Euc 設定檔的位置 ### $ $EUCALYPTUS/usr/sbin/euca_conf -d $EUCALYPTUS $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf ### 將 $EUCALYPTUS/ 同步複製到其他 nodes ### $ rsync -a $EUCALYPTUS/ hostname1:$EUCALYPTUS/ $ rsync -a $EUCALYPTUS/ hostname2:$EUCALYPTUS/ $ ... }}} === '''''__『2.3 配置』__''''' === * __2.3.1__ 系統配置 * __2.3.2__ 網路配置 ---- == 【Think】 == * ---- == 【Reference】 == * [http://open.eucalyptus.com/wiki/EucalyptusAdministratorGuide_v1.4 Eucalyptus Administrator Guide v1.4]