XenServerにBlueOnyxをインストールするHowTo
今回のエントリも仕事絡み。
ネタ自体は随分前に仕込んだ物だけど、これまでドキュメント化してなかったのでまとめてみようと思う。
BlueOnyxとはSun(現Oracle)のCobalt RAQシリーズから続き、オープンソース化されたホスティング用アプライアンスサーバで、1つのサーバで複数のWeb/メールサーバをバーチャルホストベースで運用する時に便利なパッケージ。いわゆる共用レンタルサーバ的なものを手軽に構築・運用・管理できるWebコントロールパネルインターフェースを備えているのがウリ。というか、中身は通常のLinuxで、その上にWebアプリとして管理画面を被せただけのものなので、内部的にはApacheやらSendmailやらの設定が自動で行われているという代物。
SunによるCobalt RAQのサポートが無くなった後も熱いユーザたちの手によってBlueQuartzというオープンソース製品になり、紆余曲折を経てBlueOnyxになったらしい。詳しい事は他のサイトに書いてあるので割愛。
BlueOnyxに注目した理由は、ベースとして使用されているOSがCentOS5.3(5.2)なので、仕事で管理している他のOSと同じであること、CentOSはXenServerでサポートされている上にVMのテンプレートが用意されているのでXenServerでの運用に問題が無いこと、そして何よりCobalt RAQ時代からほぼ変わらないWebインターフェースが実装されているということ。
BlueOnyxの存在を知った時は以上の点に感激したが、XenServer上にインストールする場合いくつかの注意点があり、さらに運用していくにあたって気づいた点があったのでまとめようと思い立った。
この記事を書くに当たって、BlueOnyxのオフィシャルサイトにあるインストールマニュアルと同じ内容を含んでいるが、オフィシャルのマニュアルは日本語化されていないというのと、XenServer上にVMとして構築する場合の固有の内容は書かれていなかったので補足するつもりでまとめた。
前書きはここまでで、まずはインストールの仕方から。
通常のBlueOnyxインストールはISOイメージをDVD等に書き込んでからDVDブートし、物理サーバに直接インストールするが、XenServer上でそれをやろうと思っても全くうまくいかない。CentOS5.3のVMテンプレートを使ってもother install mediaテンプレートを使ってもダメ。
そこで、BlueOnyxオフィシャルサイトのDownloadsページの最下部にある「TAR-ball for self install on CentOS-5.3」の方法でインストールすることになる。この方法は大まかに言うと必要最小限の構成で構築したCentOSサーバを用意し、後付けでTARボールで用意されたBlueOnyxのインストーラを実行して構築するというもの。
ここからはインストール時のスクリーンショットを用いての説明。
最小構成のCentOSのセットアップ
XenCenterのNewVM…アイコンをクリックし、CentOS5.3テンプレート(x86_64ではない。BlueOnyxは64bitに対応していない)を選択してNextをクリック。

仮想ホスト名と説明を入力してNextをクリック。

「Install URL」を選択して「http://ftp.jaist.ac.jp/pub/Linux/CentOS/5.3/os/i386」と入力してNextをクリック。

割り当てるCPU数とメモリ量を指定してNextをクリック。今回はCPUを2つ、メモリを4GB指定した。

格納するディスクとサイズを指定してNextをクリック。今回は16GB割り当てた。

BlueOnyxで使用するNICを選択してNextをクリック。今回はWAN側インターフェースとLAN側インターフェースを用意した。

設定した内容でよければFinishをクリック。VMが作成されインストーラが起動するので対象のVMのConsoleタブを開いて起動を待つ。

起動するとCentOSのインストーラ画面の言語選択になるので「Japanese」を選択して「OK」を選択。
(以下の画面から先はTabキーで項目間の移動、Spaceキーで選択)

VMの作成時にNICを複数設定した場合はCentOSのインストールに使用するNICを選択する。ここではVMのinterface0がWANとして設定されているので「eth0 – Xen Virtual Ethernet」を選択した状態で「OK」を選択。

選択したNICのIP設定をする。「Enable IPv4 Support」を有効にして、「Manual configuration」を選択する。
また、IPv6は今回は使用しないので「Enable IPv6 Support」は無効にし、「OK」を選択。

割り当てるIPアドレスを設定する。ネットマスク(下図でyyy.yyy.yyy.yyy)の部分はCIDR形式での入力が可能なので、例えば「255.255.255.0」の場合は「24」と入力しても可。
入力したら「OK」を選択。

CentOSインストール用のファイルをダウンロードし始めるのでしばらく待つ。

これより先のインストール作業を引き続きテキストモードで行うか、VNCを使用してグラフィカルインストールをするかを選択。
テキストモードでのインストールでも問題が無いので「Use text mode」を選択。

テキストモードでは日本語での表示ができない旨のアラートが出るので「OK」を選択。

ウェルカムメッセージが表示されるので「OK」を選択。

ハードディスクにパーティションを作成するために初期化する旨の注意が表示されるので「Yes」を選択

「Remove all partitions…」を選択して「OK」を選択。

全ての既存のパーティションを削除する確認が表示されるので「Yes」を選択。

パーティションの構成の確認と変更をするかどうか聞かれるので「Yes」を選択。
BlueOnyxではquotaが使用できるが、自動作成されたパーティション構成では不都合なため変更を行う。

今回はswap領域を専用パーティションとしてではなく、ファイルシステム上のファイルとして用意するため、swapパーティションを削除する。
「LV LogVol01(Typeがswapのもの)」を選択した状態で「Delete」を選択

削除の確認が表示されるので「Delete」を選択。

続いてquota設定の関係から「/」と「/home」を分割する。(BlueOnyxでは仮想サイトのWebとメールは/home以下に配置されるので、/homeに対してquotaをかける)
今回は/に4GB、/homeに12GBを割り当てる。
「Lv LogVol00(Mount Pointが/のもの)」を選択した状態で「Edit」を選択。

「Size」をMB単位で任意の値に変更したら「OK」を選択。

続けて/homeを確保する。「VG VolGroup00」を選択した状態で「New」を選択。

パーティションを作成するか論理ボリュームを作成するか聞かれるので「logical volume」を選択。

「Mount Point」に「/home」を入力、「Logical Volume Name」に「LogVol01」を入力、「Size」に残りの領域サイズをMB単位で入力して「OK」を選択。

最終的な構成内容を確認したら「OK」を選択。

swapパーティションを作成せずに進もうとすると警告が出るが、後で作成するためここでは無視して「Yes」を選択。

ブートローダの設定に移る。「Use GRUB Boot Loader」を選択した状態で「OK」を選択。

ブートローダのオプションを設定。デフォルトのままで「OK」を選択。

GRUBに認証設定をするかどうか聞かれるがここでは認証しないので「OK」を選択。

ブートローダのブートパーティションやブートラベルはデフォルトのままで「OK」を選択。

ブートローダのインストール先として「/dev/xvda(MBR)」を選択して「OK」を選択。

CentOSがインストールされ、起動した後のネットワーク設定をする画面になるが、ここでの設定は後で変更できるので「OK」を選択。

その他のネットワーク設定。「Gateway」と「Primary DNS」の設定はインストール時設定を引き継いでいる。入力したら「OK」をクリック。

ホスト名の設定。「manually」を選択して、任意のホスト名を入力したら「OK」をクリック。

時刻と地域の設定。「System clock uses UTC」のチェックを外し、「Asia/Tokyo(日本の場合)」を選択して「OK」を選択。

スーパユーザのパスワードを指定する。ちなみに、BlueOnyxをインストールすると強制的にパスワードが変更されるのでここで設定するのは一時的なものとなる。

インストールするパッケージの選択。「Desktop – Gnome」のチェックを外し、「Server」にチェックを入れて、「Customize software selection」にチェックを入れてから「OK」を選択する。

全てのパッケージグループのチェックを外して「OK」を選択。

インストール前の最終確認が表示されるので「OK」を選択。インストールが始まるのでしばらく待つ。

インストール完了の表示が出たら「Reboot」を選択して再起動する。

BlueOnyxセットアップ前の下準備
以降はconsoleかsshターミナルでのコマンドラインの作業になる。
スーパユーザとしてログインしたら、まずはselinuxを無効化する設定を行う。
[root@blueonyx ~]# vi /etc/selinux/config
SELINUX=disabled ←変更
続いてquotaを有効にする。
まずquotaパッケージとwgetパッケージをyumから入手する。
[root@blueonyx ~]# yum -y install quota wget
quotaを設定する。
[root@blueonyx ~]# vi /etc/fstab
/dev/VolGroup00/LogVol01 /home ext3 defaults,usrquota,grpquota 1 2 ←変更
[root@blueonyx ~]# /bin/mount -o remount /home
[root@blueonyx ~]# /sbin/quotacheck -cuga
[root@blueonyx ~]# /sbin/quotaon -au
再起動する。
[root@blueonyx ~]# /sbin/shutdown -r now
BlueOnyxのセットアップ
まずBlueOnyxのインストーラ格納するディレクトリを作成する。
[root@blueonyx ~]# mkdir /install
[root@blueonyx ~]# cd /install
インストーラをダウンロード。
[root@blueonyx ~]# wget http://devel.blueonyx.it/pub/BlueOnyx/TAR/BlueOnyx-5106R-CentOS5-i386-20090402.tar.gz
TARボールを展開する。
[root@blueonyx ~]# tar zxvf BlueOnyx-5106R-CentOS5-i386-20090402.tar.gz
展開されたサブディレクトリに移動。
[root@blueonyx ~]# cd BlueOnyx-5106R-CentOS5-i386-20090402
インストールシェルスクリプトを起動。
[root@blueonyx BlueOnyx-5106R-CentOS5-i386-20090402]# ./install.sh
インストールが完了したメッセージが表示されたらBlueOnyx自体のセットアップは完了。このとき、デフォルトユーザ「admin」が設定され、adminのパスワードとスーパユーザのパスワードは「blueonyx」に変更される。
インストールに使用したディレクトリを削除する。
[root@blueonyx ~]# rm -rf /install
念のため再起動
[root@blueonyx ~]# /sbin/shutdown -r now
BlueOnyxの初期設定
WebブラウザでBlueOnyxの初期設定を行うが、iptablesが邪魔して設定画面が表示されないので設定を変更する。
このとき、スーパユーザでのssh接続はできなくなっているのでadminユーザで接続する必要がある。
[admin@blueonyx ~]$ su
スーパユーザパスワード入力(blueonyx)
[root@blueonyx admin]# /etc/rc.d/init.d/iptables stop
Webブラウザでhttp://FQDN又はIPアドレス/loginに接続する。
文字化けしているが気にせず下部のボタンをクリックする。(何が書かれているか見たい時はブラウザの表示メニューなどから文字コードをEUC-JPに変更する)
ライセンスについての表示が出るので「同意する」をクリック。
システムの設定画面が表示されるので管理者ユーザ「admin」のパスワードを任意の物に変更する。
時間帯をアジア-日本-日本標準時に変更して右矢印をクリック。
製品の無保証性の確認が出るので右矢印をクリック。
これで初期設定が完了し、BlueOnyxを使用する事ができるようになる。
BlueOnyxを運用するにあたっての細かなTips
XenServer Toolsをインストールする
XenCenterで左側のツリーメニューから該当のサーバを選択し、右側の「storage」タブをクリック。
「DVDドライブ」のプルダウンメニューから「xs-tools.iso」を選択。
mount -t iso9660 -o loop /dev/xvdd /mnt /mnt/Linux/install.sh /sbin/shutdown -r now
swapを作成する
mkdir /var/swap dd if=/dev/zero of=/var/swap/swap0 bs=1024 count=524288 #ここでは512MBのswapを作成。512×1024×1024=536870912≒512MBのため、1024バイト単位で524288回書き込む /bin/chmod 600 /var/swap/swap0 /sbin/mkswap /var/swap/swap0 /sbin/swapon /var/swap/swap0 echo "/var/swap/swap0 swap swap defaults 0 0" >> /etc/fstab
FFFTP向けにFTPサーバを調整する
FFFTPでFTP接続すると.(ドット)で始まるファイル名のファイルが参照できないことがあるのでFTPサーバの設定を変更する。
vi /etc/proftpd.conf
<Global>
AllowOverwrite yes
ListOptions "-a"
<Limit ALL SITE_CHMOD>
AllowAll
</Limit>
</Global>
Movable Type向けの追加パッケージをインストールする
仮想サイトにMovable Typeを使用する場合、インストール自体はできるが追加モジュールがインストールされていないためにいくつかの拡張機能が利用できないので、追加モジュールをインストールする。
ImageMagick-perlのインストール。
yum install -y ImageMagick-perl
以下のperlモジュールは標準のyumレポジトリには存在しないのでrpmforgeリポジトリを追加する。
rpm -ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
各種perlモジュールの追加。
yum install perl-DBD-SQLite yum install perl-DBD-SQLite2 yum install perl-Archive-Tar yum install perl-DBD-Pg yum install perl-Crypt-DSA yum install perl-Archive-Zip yum install perl-Crypt-SSLeay yum install perl-IPC-Run yum install perl-PerlIO-gzip yum install perl-Mail-Sendmail