CentOS 5.3 に Google Wave Federation Prototype Server をインストールしてみた

suzuki

友人に Google Wave アカウントを invite して貰ったのですが、なかなか通知が来なくて、ひたすら待っている suzuki です。

仕方ないので、オープンソースとして公開されている Google Wave Server を CentOS 5.3 へインストールして、その雰囲気を味わうことにしました。

今回インストールしたのは、Google Wave プロトコルの実験実装として公開されているものです。まだ、このプロトコル自体の仕様も確定していないので「動かしながら何が最適かを考える」ために作られたものだと思われます。

これらのソース類は「wave-protcol」で公開されています。また、サーバのインストールについては、http://code.google.com/p/wave-protocol/wiki/Installation に記載されています。

基本的には、ここに書いてある通りに行ないましたが、できるだけ yum + RPM で環境構築をしてみました。

なお、この記事を書くにあたり「うちのOSXでGoogle Waveが動いた」を参考にさせて頂きました。分かりやすい記事、ありがとうございます。

具体的な手順は次の通りです。

  1. CentOS 5.3 の環境を用意する
  2. 必要なパッケージをインストール
  3. Openfire サーバのインストール
  4. 自己署名証明書の作成
  5. wave-protocol のインストール
  6. wave の実行

では、ひとつずつ実行しましょう。

  1. CentOS 5.3 の環境を用意する
  2. CentOS 5.3 をインストールした環境を用意して下さい。特に特殊な設定は必要有りませんので、いつもの通り(?)にインストールすれば大丈夫です。

  3. 必要なパッケージをインストール
  4. RPMForge のリポジトリを追加します(参考:RPMforgeで楽々パッケージ生活
    # rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
    Java 系のパッケージをインストールします。
    # yum install java ant junit ant-junit
    Mercurial をインストールします。Mercurial は、CentOS の標準レポジトリには存在しませんので、RPMForge にあるものを利用します。
    # yum install mercurial

  5. Openfire サーバのインストール
    Openfire は Java で書かれた XMPP (Jabber) サーバです。IM サーバと呼んだ方が通りが良いでしょうか。こちらは、CentOS 標準にも RPMForge にも存在しませんでしたが、Openfire の公式サイトに RPM がありましたので、これを利用しました。
    # wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-3.6.4-1.i386.rpm
    # rpm -ivh openfire-3.6.4-1.i386.rpm

    ここから Openfire サーバの設定に移ります。まずはサーバを起動します。
    # /etc/rc.d/init.d/openfire start

    実際の設定は、ブラウザを利用して行ないます。http://localhost:9090/ へアクセスすると初期設定画面が出てきますので、必要な情報を追加していきます。

    画面キャプチャが http://code.google.com/p/wave-protocol/wiki/Installation に掲載されていますので、こちらを参照しつつインストールしてみてください。

    • Choose Language
      • English (日本語が無いため)
    • Server Settings
      • Domain :【waveアカウントで利用するドメイン名】
      • Admin Port : 9090 (デフォルトのまま)
      • Secure Admin Port : 9091 (デフォルトのまま)
    • Database Settings
      • Embedded Database を選択
    • Profile Settings
      • Default を選択
    • Administrator Account
      • Admin Email Address : 【管理者のメールアドレス】
      • New Password : 【管理者のパスワード】
      • Confirm Password : 【管理者のパスワード(上記の確認)】

    ここまで設定できたら、Openfire サーバを再起動して、ここまでで行なった設定変更を適用します。
    # /etc/rc.d/init.d/openfire restart

    Openfire 上の設定はもう少し続きます。再起動後に、改めて http://localhost:9090/ へアクセスすると、今度は初期設定画面ではなく、ログイン画面が出てきます。

    username には先ほど設定したメールアドレスではなく、「admin」となります。password には上記で設定したパスワードを入力して下さい。

    ログインが完了したら、Server -> Server Settings -> External Components の設定画面へ移って下さい。

    • External Component Settings
      • Service Enabled : Enabled を選択
      • Port : 5275 (デフォルトのまま)
      • Default shared secret : 【好きな文字列】
    • Allowed to Connect
      • Whitelist を選択
      • Subdomain : wave
      • Shared Secret : 【上記で入れた好きな文字列】

    次に Server -> Server Settings -> Security Settings メニューへ移って下さい。

    • Client Connection Security
      • Optional を選択(デフォルトのまま)
    • Server Connection Security
      • Custom を選択
      • Server Dialback : Available (デフォルトのまま)
      • TLS method : Optional (デフォルトのまま)
      • Accept self-signed certificates. にチェック

    Wave 用の設定はこれで終わりですが、Openfire のセキュリティ維持の為の設定が解説されていますので、その通りに設定しておきます。
    Server -> Server Settings -> Registration & Login メニューへ移ります。

    • Inband Account Registration
      • Disabled を選択
    • Change Password
      • Disabled を選択
    • Anonymous Login
      • Disabled を選択

    Server -> Server Settings -> Compression Settings へ移動します。

    • Client Compression Policy
      • Available を選択(デフォルトのまま)
    • Server Compression Policy
      • Available を選択

    最後に Server -> Server Settings -> File Transfer Settings へ移動します。

    • Proxy Service
      • Disabled を選択
    • Inband Account Registration
  6. 以上で、Openfire のインストールと設定が終了です。

  7. 自己署名証明書の作成
  8. wave サーバの実行に必要な自己署名証明書を作成します。http://code.google.com/p/wave-protocol/wiki/Certificates に作成するシェルスクリプトがあるので、利用してサクっと作ってしまいます。

    掲載されているスクリプトを make-cert.sh という名前で保存した場合は次のように実行します。
    $ ./make-cert.sh wave.【waveアカウントで利用するドメイン名】

    引数で渡すものがファイル名になります。なんでも良いと言えば良いのですが、「wave.ドメイン名」という形式にしておくと、後で行なう設定ファイルの変更が少なくなりますのでオススメです。
    作成した証明書は wave-protocol を展開したディレクトリへ保存しておいて下さい。

  9. wave-protocol のインストール
    wave-protocol のソースを取得します。ここで利用する hg というコマンドが Mercurial のものです。
    $ hg clone https://wave-protocol.googlecode.com/hg/ wave-protocol
    ソースを build します。
    $ cd wave-protocol
    $ ant

    設定用のシェルスクリプトを作成します。サンプルファイルがあるので、それをコピーして編集します。
    $ cp run-config.sh.example run-config.sh
    $ vi run-config.sh

    • echo “You must configure the run-config.sh script” ; exit 1
      • この行はコメントアウトする
    • WAVE_SERVER_DOMAIN_NAME
      • wave.【waveアカウントで利用するドメイン名】を指定
    • PRIVATE_KEY_FILENAME
    • CERTIFICATE_FILENAME_LIST
      • この2つは、自己署名証明書のファイル名を設定。ファイル名を「wave.ドメイン名」の形式にしていた場合は変更不要
  10. wave の実行
  11. これでようやく設定が完了。wave サーバを起動します。
    $ ./run-server.sh
    サーバを起動したコンソールとは別のコンソールから、wave クライアントを起動します。
    $ ./run-client-console.sh 【ユーザ名A】
    さらにもうひとつ別のコンソールからも wave クライアントを起動します。
    $ ./run-client-console.sh 【ユーザ名B】
    こうすると「ユーザ名A」と「ユーザ名B」の間で wave ができる(という表現で良いのでしょうか?)ようになります。

以上が Google Wave Federation Prototype Server をインストールしてみた内容です。

長くなってしまったので、コンソール用の wave クライアントの使い方は機会があったら記事を書きますが、まずは http://code.google.com/p/wave-protocol/wiki/ConsoleClient を参照してみて下さい。

Wave は、今後大きく広がる可能性を持っているとは思っていますので、まずはプロトタイプを使ってみて、概念やプロトコル等を把握してみようと思っています。

suzuki

Posted by suzuki