openSUSE 11 への Eucalyptus (1.5.2) のインストール
openSUSE 11 では、ソースから Eucalyptus をインストールすることも、RPM のバイナリパッケージを使って Eucalyptus をインストールすることもできます。ここでは、RPM を使って Eucalyptus をインストールする手順について説明します。
RPM のダウンロード
Eucalyptus のバイナリパッケージは、クラウドコントローラ用 (-cloud パッケージ)、クラスタコントローラ用 (-cc パッケージ)、およびノードコントローラ用 (-nc パッケージ) のパッケージに分かれています。Eucalyptus チームでは、インストールを簡単にするために、便宜的にすべてを 1 つの tarball にまとめたものを用意しています。この tarball には、Eucalyptus が依存するサードパーティ製パッケージ (Rampart、Axis2C、多くの Java ライブラリ) も含まれています。
http://open.eucalyptus.com/downloads から適切な tarball をダウンロードします。
- 32 ビットマシンの場合は、eucalyptus-1.5.2-opensuse-i386.tar.gz をダウンロードします。
- 64 ビットマシンの場合は、eucalyptus-1.5.2-opensuse-x86_64.tar.gz をダウンロードします。
一時的な作業ディレクトリを作成し、そこで tarball を展開します。
tar zxvf eucalyptus-1.5.2-*.tar.gz cd eucalyptus-1.5.2-*
必要なその他の依存関係はすべて、標準のリポジトリにあります。
必要なもの
標準的なインストールを行った openSUSE では、次の手順に従って Eucalyptus に必要なものすべてを満たします。
- フロントエンド、ノード、およびクライアントマシンのシステムクロックを NTP を使って同期させます。
sntp -P no -r pool.ntp.org yast2 -i ntp /etc/init.d/ntp restart
- Eucalyptus の実行に必要なすべての依存パッケージをインストールします。
# On the front-end: yast2 -i ant apache2 apache2-devel java-1_6_0-openjdk java-1_6_0-openjdk-devel libvirt libvirt-devel curl libcurl-devel vlan dhcp-server bridge-utils ant-contrib ant-nodeps # On the node: yast2 -i xen libvirt libcurl-devel vlan apache2
- ノードには Xen を完全にインストールし、Xen の構成を済ませておきます。
- 推奨: 手動で VM を起動し、VM がブリッジネットワーク経由でネットワーク接続できるかどうかテストして、Xen が適切にインストールされているかどうか確認してください。
- ノードにブリッジネットワークをセットアップするには、yast2 コマンドを使って以下の手順を実行します。
- [ネットワークデバイス (Network Devices)]をクリックします。
- [ネットワークの設定 (Network Settings)]をクリックします。
- [グローバルオプション]タブをクリックします。
- [ifup を使用した従来の方法 (Traditional Method with ifup)]をクリックします。
- [概要 (Overview)]タブをクリックします。
- [追加 (Add)]をクリックします。
- [デバイス種類 (Device Type)]で[ブリッジ (Bridge)]を選択します。
- [次へ (Next)]をクリックします。
- [ブリッジ接続デバイス (Bridged Devices)]で[eth0](またはマシンのプライマリインタフェース名) を選択します。
- [次へ (Next)]をクリックします。
- [続行 (Continue)]をクリックします。
- [OK]をクリックします。
- libvirt デーモン (libvirtd) を実行し、適切に構成されていることを確認します。
- /etc/init.d/libvirtd start
- virsh list
- ファイアウォール・ルールでは、Eucalyptus コンポーネントが互いに通信できるようにするとともに、クライアントが Eucalyptus と通信できるようにしなければなりません。
- 注: フロントエンドではポート 8443、8773、8774 を使用できるように、ノードではポート 8775 を使用できるようにしなければなりません。
- Elastic IP やセキュリティ・グループの利用を予定している場合は、ファイアウォールを無効にし、Eucalyptus の機能を使って独自のファイアウォール・ルールを有効にする方がよいでしょう (詳細については、Eucalyptus ネットワークの構成を参照してください)。
- yast2 firewall startup manual
- /etc/init.d/SuSEfirewall2_init stop
- reboot
フロントエンドへの RPM のインストール
以下の手順では便宜的に x86_64 をアーキテクチャとして使用しますが、32 ビットマシンではこれを i586 に置き換えてください。
サードパーティ製の依存するパッケージをインストールします。
cd eucalyptus-1.5.2-rpm-deps-x86_64
rpm -Uvh aoetools-25-2.49.x86_64.rpm \
euca-axis2c-1.5.0-2.x86_64.rpm \
euca-rampartc-1.2.0-1.x86_64.rpm \
vblade-15-2.49.x86_64.rpm
cd ..
クラウドコントローラとクラスタコントローラを実行するフロントエンド上で、-cloud RPM と -cc RPM をインストールします。
rpm -Uvh eucalyptus-1.5.2-1.x86_64.rpm \
eucalyptus-cloud-1.5.2-1.x86_64.rpm \
eucalyptus-gl-1.5.2-1.x86_64.rpm \
eucalyptus-cc-1.5.2-1.x86_64.rpm
ノードへの RPM のインストール
各ノード上で、依存するパッケージをインストールします。
cd eucalyptus-1.5.2-rpm-deps-x86_64
rpm -Uvh aoetools-25-2.49.x86_64.rpm \
euca-axis2c-1.5.0-2.x86_64.rpm \
euca-rampartc-1.2.0-1.x86_64.rpm \
vblade-15-2.49.x86_64.rpm
cd ..
各計算ノード上で、依存関係とともにノードコントローラ RPM をインストールします。
rpm -Uvh eucalyptus-1.5.2-1.x86_64.rpm \
eucalyptus-gl-1.5.2-1.x86_64.rpm \
eucalyptus-nc-1.5.2-1.x86_64.rpm
インストール後の手順
インストールの最後の手順では、RPM のインストール時に作成されたユーザー 'Eucalyptus' が、計算ノードのすべてで、libvirt を介してハイパーバイザーを操作できる権限があるかどうか確認します。そのための最も簡単な方法は、各ノード上で次のコマンドを実行することです。
su eucalyptus -c '(sleep 1; echo foobar; echo always) | virsh list'
'foobar' の部分には root のパスワードを入力します。別のやり方として、各ノードにログインし、'su' コマンドで 'eucalyptus' ユーザーになって 'virsh list' を実行し、root のパスワードを入力して最後に 'always' を入力する方法もあります。
次の要領で Eucalyptus のサービスを起動します。
フロントエンド上では、次のようにします。
/etc/init.d/eucalyptus-cloud start /etc/init.d/eucalyptus-cc start
ノード上では、次のようにします。
/etc/init.d/eucalyptus-nc start
構成に関するその他の依存関係
Eucalyptus をコンパイルする場合をはじめ、Eucalyptus で Elastic IPやセキュリティ・グループを利用する場合、さらに Eucalyptus の機能を使い、VLAN タギングを利用して VM ネットワークを分離する場合には、依存関係を追加インストールする必要があります。これらの依存関係は、次のようにすることですべてインストールできます。
yast2 -i bzr python-paramiko make gcc ant apache2 apache2-devel java-1_6_0-openjdk java-1_6_0-openjdk-devel libvirt libvirt-devel curl libcurl-devel vlan dhcp-server bridge-utils ant-contrib ant-nodeps
