Eucalyptus - Ubuntu 9.04 で作るプライベートクラウド環境 †Ubuntu 9.04環境で、Eucalyptusを使ったプライベートクラウドを作成する手順を整理しました。 事前準備 †環境 †今回は以下のような環境を想定 NotePC --- Front-end | +----- Node1 | +----- Node2 ※ NotePCは確認用(通常のWindowsPC) Ubuntu 9.04 Server Edition のダウンロード方法 †http://www.ubuntu.com/getubuntu/ 「Download now」をクリック →「Server Edition」タブをクリック →「Please choose a location」にて 「Japan JAIST」を選択し、 「Ubuntu 9.04 Server」「64bit version」にチェックが入っていることを確認し、「Begin Download」をクリック → ポップアップが表示され、自動的にダウンロードが開始される。 ( 開始されない場合は、「Download URL」をクリック ) ※ ダウンロードした、ISOイメージをCD-Rに焼いておきます。 Ubuntu 9.04 Server Edition のインストール †Front-end, Node1, Node2にUbuntu 9.04をインストールします。 インストール選択: Language: English Time Zone: Asia/Japan Keyboard layout: Japan - OADG 109A user: cls (任意のもの) password: (任意のもの) computer name: front.cloudwhizzy.jp (Front-end) node1.cloudwhizzy.jp (Node1) node2.cloudwhizzy.jp (Node2) Software selection: Virtual Machine hostにチェック Login automaticallyにチェック ネットワーク設定 †IPアドレスは固定にしておく。( 特にFront-end ) メニュー → System → Preferences → Network Connections 【Network Connection Editor】を起動する。 Wired → Auto eth0 → Edit 【Authenticate】のポップアップがでるので、パスワードの入力を求められるので 先に設定したものを入力 IPv4 Setting → Method: を Manualに変更 → Add 設定例 Address: 192.168.0.100 (Front-end) 192.168.0.101 (Node1) 192.168.0.102 (Node2) Netmask: 255.255.255.0 Gateway: 192.168.0.1 DNS Servers: 192.168.0.1 Search Domains: cloudwhizzy.jp Apply → Close デフォルトルートが反映されていないので一旦再起動する。 再起動後、ifconfig, route, pingコマンドを使って ネットワーク設定を確認しておくと良い。 DNSに登録を行わない場合は、 sudo vi /etc/hosts を実施し、 各サーバのホスト名を記述しておく 192.168.0.100 front.cloudwhizzy.jp front 192.168.0.101 node1.cloudwhizzy.jp node1 192.168.0.102 node2.cloudwhizzy.jp node2 Eucalyptusのインストール †クラウドコントローラ(Front-end) †rubyが入っていないためインストールする。 【Amazon EC2 AMI Tools】では、ruby 1.8.2以降が必要 sudo apt-get install ruby ※ E: Couldn't find packageのようなエラーになる場合は、 sudo apt-get updateを実施してみる。 libopenssl-ruby, curlも必要となる。 sudo apt-get install libopenssl-ruby sudo apt-get install curl 【Amazon EC2 API Tools】と【Amazon EC2 AMI Tools】を インストールする。 Ubuntu 9.04では、「sudo apt-get install ec2-api-tools」で インストールすることも可能だが、現在のEucalyptusのバージョンでは、 動作しないため、以下のURLからダウンロードする。 http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-30349.zip http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.3-26357.zip 例 wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-30349.zip wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.3-26357.zip cd /usr/local sudo unzip /home/cls/ec2-ami-tools-1.3-26357.zip sudo unzip /home/cls/ec2-api-tools-1.3-30349.zip unzipコマンドがない場合は、sudo apt-get install unzip でインストールしておきます。 sudo ln -s ec2-ami-tools-1.3-26357 ec2-ami-tools sudo ln -s ec2-api-tools-1.3-30349 ec2-api-tools 各々ディレクトリのbinにPATHを通して置きます。 export PATH=$PATH:/usr/local/ec2-ami-tools/bin:/usr/local/ec2-api-to ols/bin EC2_HOME、EC2_AMI_HOME を設定しておきます。 export EC2_HOME=/usr/local/ec2-ami-tools export EC2_AMI_HOME=/usr/local/ec2-ami-tools export EC2_API_HOME=/usr/local/ec2-api-tools EC2_HOME = api-toolsの解凍ディレクトリ、EC2_AMI_HOME = ami-toolsの解凍ディレクトリとすると、 後述のec2_regiserはうまくいきますが、ec2-bandle-imageはうまくいきません。 一時的にEC2_HOME = ami-toolsの解凍ディレクトリとすればうまくいきますが、 他の指定方法があったと思うので調べておきます。☆ JAVA_HOMEも設定しておきます。 export JAVA_HOME=/usr/lib/jvm/java-6-openjdk openjdkがインストールされていない場合は、sudo apt-get install openjdk-6-jdk でインストールしておきます。 Node1, Node2では、openssh-serverも入れておきましょう sudo apt-get install openssh-server hostnameの設定、 /etc/hostsへの記載も行う。 Eucalyptusインストール †Front-end: sudo apt-get install eucalyptus-cloud eucalyptus-cc sudo euca_conf -addcluster test-cluster localhost ※ test-clusterの部分は任意の名前に ノード追加 sudo euca_conf -addnode node1.cloudwhizzy.jp メッセージのsshキーをnodeで実行する。 NotePCより https://<front-end-ip-address>:8443/ username: admin Password: admin でログイン ログイン後、パスワードの変更を求められるので 任意のものに変更する。 Node1 / Node2: sudo apt-get install eucalyptus-nc sudo /etc/init.d/eucalytpus-nc stop sudo vi /etc/eucalyptus/eucalyptus.conf VNET_BRIDGE="br0" ← xenbr0になっているので修正 /etc/init.d/eucalyptus-nc start イメージの登録 †Front-endにて実施 http://open.eucalyptus.com/downloads より、euca-ttylinux.tgzをダウンロード tar zxvf euca-ttylinux.tgz sudo apt-get -y install openssh-server - これは不要! vmbuilderのインストール sudo apt-get install ubuntu-vm-builder 使い方 https://help.ubuntu.com/8.04/serverguide/C/virtualization.html Credentials → X.509 certificate → Download Certificateから ダウロードする eucarcを実行する ※https://help.ubuntu.com/community/Eucalyptus のとおり実行する。 mkdir kernel ec2-bundle-image -i /boot/vmlinuz-2.6.28-11-generic -d ./kernel --kernel true ec2-upload-bundle -b kernel -m ./kernel/vmlinuz-2.6.28-11-generic.manifest.xml EKI=`ec2-register kernel/vmlinuz-2.6.28-11-generic.manifest.xml | awk '{print $2}'` echo $EKI EucalyptusのWebにアクセス、Imagesでイメージが追加されていることがわかる。 mkdir ramdisk ec2-bundle-image -i /boot/initrd.img-2.6.28-11-generic -d ./ramdisk --ramdisk true ec2-upload-bundle -b ramdisk -m ramdisk/initrd.img-2.6.28-11-generic.manifest.xml ERI=`ec2-register ramdisk/initrd.img-2.6.28-11-generic.manifest.xml | awk '{print $2}'` echo $ERI mkdir image ec2-bundle-image -i ubuntu-xen/root.img -d ./image --kernel $EKI --ramdisk $ERI ec2-upload-bundle -b image -m ./image/root.img.manifest.xml EMI=`ec2-register image/root.img.manifest.xml | awk '{print $2}'` echo $EMI インスタンスの起動 †ec2-add-keypair mykey > ~/.euca/mykey.priv chmod 0600 ~/.euca/mykey.priv ec2-run-instances $EMI -k mykey 参考 † |