ソースからの Eucalyptus のインストール (1.5.2)
注 - 1.5.1 またはそれ以前のバージョンの Eucalyptus からアップグレードする場合は、アップグレードマニュアルを参照し、ユーザーアカウント情報、イメージ、ボリューム、およびスナップショットの保存方法に関する説明を読んでください。
1. Eucalyptus のダウンロード
以下のいずれかをダウンロードします。
- eucalyptus-1.5.2-src.tar.gz (Eucalyptus ソース。java ライブラリ付き)
または
- eucalyptus-1.5.2-src-online.tar.gz (Eucalyptus ソース。java ライブラリは、あとでビルド時にダウンロード)
上のどちらを選んだ場合も、次のものが必要です。
- eucalyptus-1.5.2-src-deps.tar.gz (Eucalyptus C ライブラリ依存パッケージ)
パッケージはすべて次の Eucalyptus Web サイトにあります。
Eucalyptus ソースを展開します。
tar zvxf eucalyptus-1.5.2-src.tar.gz
eucalyptus-1.5.2 というディレクトリができているはずです。以後のインストール作業を簡単にするため、環境変数 EUCALYPTUS_SRC に Eucalyptus ソースツリーのトップを設定し、さらに環境変数 EUCALYPTUS に Eucalyptus がインストールされるディレクトリ (/opt/eucalyptus/ を推奨します) を設定します。
cd eucalyptus-1.5.2 export EUCALYPTUS_SRC=`pwd` export EUCALYPTUS=/opt/eucalyptus
2. 依存関係
Eucalyptus をインストールするには、Eucalyptus が依存するパッケージをビルドする必要があります。これらのパッケージは、上に示した eucalyptus-1.5.2-src-deps.tar.gz というパッケージに含まれています。ここで説明するインストールの手順では、便宜上、すべてのパッケージが "$EUCALYPTUS_SRC/eucalyptus-src-deps/" 内に展開され、"$EUCALYPTUS/packages" にインストールされるものとします。
依存するパッケージを展開し、インストール先のディレクトリを作成します。
cd $EUCALYPTUS_SRC tar zvxf ../eucalyptus-1.5.2-src-deps.tar.gz mkdir -p $EUCALYPTUS/packages/
依存するパッケージのビルドとインストールを行います。以下に示す手順は、一部の Linux ディストリビューションで動作しますが、必ずしもすべてのディストリビューションで動作するわけではありません。使用しているディストリビューションでビルドする方法については、それぞれのパッケージに含まれているドキュメントを参照してください。
a. Axis2
cd $EUCALYPTUS/packages tar zxvf $EUCALYPTUS_SRC/eucalyptus-src-deps/axis2-1.4.tgz
b. Axis2/C
Axis2/C をコンパイルするには、Apache と APR の開発用ヘッダーファイルの場所を指定する必要があります。一部のディストリビューション (Ubuntu、Debian など) では、次のようにすれば OK です。
export APACHE_INCLUDES=/usr/include/apache2 export APR_INCLUDES=/usr/include/apr-1.0
CentOS 5.3 では、次のようにします。
export APACHE_INCLUDES=/usr/include/httpd/ export APR_INCLUDES=/usr/include/apr-1/
OpenSuse 11 では、次のようにします。
export APACHE_INCLUDES=/usr/include/apache2/ export APR_INCLUDES=/usr/include/apr-1/
2 つの環境変数を設定したら、次の要領で Axis2/C をビルドし、インストールします。
export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.5.0
cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
tar zvxf axis2c-src-1.5.0.tar.gz
cd axis2c-src-1.5.0
CFLAGS="-w" ./configure --prefix=${AXIS2C_HOME} --with-apache2=$APACHE_INCLUDES --with-apr=$APR_INCLUDES
make ; make install
c. Rampart/C
export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.5.0
export LD_LIBRARY_PATH=${AXIS2C_HOME}/lib:$LD_LIBRARY_PATH
cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
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
sed --in-place 's/<!--phase name="Security"\/-->/<phase name="Security"\/>/' $AXIS2C_HOME/axis2.xml
d. その他のソフトウェア
Eucalyptus のビルドに必要で、Eucalyptus チームがパッケージとして提供していないその他のソフトウェアについては、必要なものを参照してください。
また、Eucalyptus を操作するためのコマンドライン・ツールも必要です。以下に示す手順の説明では、Eucalyptus チームが配布している euca2ools コマンドライン・ツールを使うことを前提としています。作業によってはほかの多くのサードパーティ製ツールも使用できます。詳細については、エコシステムのページを参照してください。
3. Eucalyptus のビルド
cd $EUCALYPTUS_SRC ./configure --with-axis2=$EUCALYPTUS/packages/axis2-1.4 --with-axis2c=$EUCALYPTUS/packages/axis2c-1.5.0 --enable-debug --prefix=$EUCALYPTUS cd clc/; make deps; cd .. make ; make install
4. Eucalyptus の配置
a. ここまでの手順が済んでいて、複数のノードで Eucalyptus を使用する予定なら、Eucalyptus をほかのノードにプッシュすることができます。Eucalyptus 固有のディレクトリに Eucalyptus をインストールした場合は、ふだん変更内容をほかのノードにプッシュするのに使っている任意の仕組みを利用して、目的のすべてのホストとの間でパッケージ全体を同期化することができます。たとえば、次に示すのは rsync を使用した例です。
rsync -a $EUCALYPTUS/ root@node1:$EUCALYPTUS/ rsync -a $EUCALYPTUS/ root@node2:$EUCALYPTUS/ ...
root ユーザーにならずにインストールした場合には (Ubuntu などの場合) 、各ノードから一度に 1 つずつ Eucalyptus をプルする方が簡単です。
node1# rsync -a user@headnode:$EUCALYPTUS/ $EUCALYPTUS/ node2# rsync -a user@headnode:$EUCALYPTUS/ $EUCALYPTUS/ ...
注: すべてのノードで Eucalyptus を同じディレクトリにインストールすると、Eucalyptus を管理しやすくなるので、どのノードでも同じディレクトリにインストールすることを強く推奨します。
b. 次に、Eucalyptus を実行するユーザー (ここでは eucalyptus を使います) をすべてのノードに追加します。ほとんどのディストリビューションでは、次のようにすることでユーザーを追加できます。
useradd eucalyptus
OpenSUSE の場合は、次のようにします。
groupadd eucalyptus useradd eucalyptus -m -g eucalyptus
c. 次に、追加したユーザーがすべての計算ノード上で libvirt を介してハイパーバイザーを管理できるようにします。一部のディストリビューションでは、eucalyptus ユーザーを /etc/group ファイルの libvirt グループまたは libvirtd グループに追加すれば、ハイパーバイザーを管理できるようになります。使用しているディストリビューションでどのようにすればよいかは、libvirt のドキュメントを参照してください。
d. 最後に、すべてのノードで、必要なパラメータを設定ファイルに書き込み、さらにパーミッションを適切に設定します。これら 2 つの作業は、euca_conf ツールに次のようなフラグを指定することで実行できます。
- -d Eucalyptus インストールのルート ($EUCALYPTUS) を指定します
- -hypervisor ハイパーバイザー ('xen' または 'kvm') を指定します
- -instances 計算ノード上でインスタンスファイルが保存される場所を指定します
- -user Eucalyptus を実行するために作成したユーザーを指定します
- -setup 初回時のセットアップ作業を行います
$EUCALYPTUS/usr/sbin/euca_conf -d $EUCALYPTUS -hypervisor kvm -instances /usr/local/eucalyptus -user eucalyptus -setup
5. ディストリビューション固有のインストール後の作業
Linux のディストリビューションによっては、Eucalyptus を起動する前に、管理者がいくつか作業を行う必要があります。
Ubuntu 9.04 の場合は、dhcpd3 がファイルシステムに書き込めるよう、apparmor を設定する必要があります。具体的には、以下の行を '/etc/apparmor.d/usr.sbin.dhcp3' に追加します。
/opt/eucalyptus/var/run/eucalyptus/net/ r, /opt/eucalyptus/var/run/eucalyptus/net/** r, /opt/eucalyptus/var/run/eucalyptus/net/*.pid lrw, /opt/eucalyptus/var/run/eucalyptus/net/*.leases* lrw, /opt/eucalyptus/var/run/eucalyptus/net/*.trace lrw,
上の中で、'/opt/eucalyptus' は、実際に Eucalyptus をインストールした場所に置き換えてください。ファイルの編集が終わったら、apparmor を再起動します (注: 変更内容がすぐに有効にならない場合があります。しばらく待つか、確実に有効にするにはシステムを再起動してください)。
/etc/init.d/apparmor stop /etc/init.d/apparmor start
これで、すべてのノードで Eucalyptus のプロセスを起動する準備が整いました。ただし、実際に Eucalyptus のプロセスを起動する前に、Eucalyptus ネットワークを構成しておきます。詳細については、Eucalyptus ネットワークの構成を参照してください。
6. ブート時の Eucalyptus コンポーネントの起動
マシンを起動または再起動したときに、Eucalyptus を自動的に起動するには、目的のホスト上で次の要領でシンボリックリンクをはります。
ln -sf $EUCALYPTUS/etc/init.d/eucalyptus-cloud /etc/init.d/eucalyptus-cloud ln -sf $EUCALYPTUS/etc/init.d/eucalyptus-cc /etc/init.d/eucalyptus-cc ln -sf $EUCALYPTUS/etc/init.d/eucalyptus-nc /etc/init.d/eucalyptus-nc
次に、使用しているディストリビューションのブートプロセスに適したシンボリックリンクを追加します。ブートプロセスはディストリビューションによって異なります。たとえば、update-rc.d が使用できる場合は、次のようにします。
update-rc.d eucalyptus-cloud defaults
また、chkconfig を使用できる場合は、次のようにします。
chkconfig eucalyptus-cloud on
