Ubuntu 9.04環境で、Eucalyptusを使ったプライベートクラウドを作成する手順を整理しました。
今回は以下のような環境を想定
NotePC --- Front-end | +----- Node1 | +----- Node2
※ NotePCは確認用(通常のWindowsPC)
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に焼いておきます。
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
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への記載も行う。
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