水曜日 12 24, 2008

GlassFish V3 Prelude と OSGi その3

前回は FELIX SHELL への接続方法を書きましたが、次は FELIX 上で直接 GlassFish を動かしてみましょう。今回もやはり GlassFish V3 Prelude は /home/shioda/glassfishv3-prelude にインストールされていることを前提に書いています。

まず、/home/shioda/glassfishv3-prelude/glassfish/felix/conf/system.properties ファイルをエディタで開きます。コメントアウトされた3つの変数が書かれていますので、これを自分の環境に合わせて変更しコメントアウトを外します。私の場合ですと次のようになります。

com.sun.aas.installRoot=/home/shioda/glassfishv3-prelude/glassfish/
com.sun.aas.instanceRoot=/home/shioda/glassfishv3-prelude/glassfish/domains/domain1/
com.sun.aas.installRootURI=file:///home/shioda/glassfishv3-prelude/glassfish/
このファイルの上の方にあるコメントに書いてありますが、asadmin などから起動するのであれば、これらの変数は launcher が面倒を見てくれるから設定する必要はありません。しかし今回は felix から直接起動ということで設定します。あとは felix を起動しましょう。

% java -jar /home/shioda/glassfishv3-prelude/glassfish/felix/bin/felix.jar

Welcome to Felix.
=================

Enter profile name: shioda
...
プロファイル名は何でも良いと思います。$HOME にそのプロファイルのデータが置かれるようです。
n% ls /home/shioda/.felix/shioda
bundle0    bundle114  bundle18   bundle34   bundle50   bundle67   bundle83
bundle1    bundle115  bundle19   bundle35   bundle51   bundle68   bundle84
bundle10   bundle116  bundle2    bundle36   bundle52   bundle69   bundle85
bundle100  bundle117  bundle20   bundle37   bundle53   bundle7    bundle86
bundle101  bundle118  bundle21   bundle38   bundle54   bundle70   bundle87
bundle102  bundle119  bundle22   bundle39   bundle55   bundle71   bundle88
bundle103  bundle12   bundle23   bundle4    bundle56   bundle72   bundle89
bundle104  bundle120  bundle24   bundle40   bundle57   bundle73   bundle9
bundle105  bundle121  bundle25   bundle41   bundle58   bundle74   bundle90
bundle106  bundle122  bundle26   bundle42   bundle59   bundle75   bundle91
bundle107  bundle123  bundle27   bundle43   bundle6    bundle76   bundle92
bundle108  bundle124  bundle28   bundle44   bundle60   bundle77   bundle93
bundle109  bundle125  bundle29   bundle45   bundle61   bundle78   bundle94
bundle11   bundle13   bundle3    bundle46   bundle62   bundle79   bundle95
bundle110  bundle14   bundle30   bundle47   bundle63   bundle8    bundle96
bundle111  bundle15   bundle31   bundle48   bundle64   bundle80   bundle97
bundle112  bundle16   bundle32   bundle49   bundle65   bundle81   bundle98
bundle113  bundle17   bundle33   bundle5    bundle66   bundle82   bundle99
FELIX SHELL は前回やったのと同様にポート 6666 にアクセスすれば使えます。

GlassFish V3 Prelude と OSGi その2

さて、前回は GlassFish V3 Prelude を Eclipse Equinox 上で動かす方法でしたが、今回はもともと使っている Apache Felix の OSGi 実行環境を見てみます。

OSGi の環境をいろいろ試すには、felix shell を使いたいので、この環境をセットアップします。 GlassFish V3 Prelude は、前回同様 /home/shioda/glassfishv3-prelude にインストールされていることを前提とします。まずエディタで /home/shioda/glassfishv3-prelude/glassfish/felix/conf/config.properties ファイルを開いてみてください。38行目から FELIX SHELL を使うには云々という説明が書いてありますが、簡単にいうと

${com.sun.aas.installRootURI}/felix/bundle/org.apache.felix.shell.jar \\
${com.sun.aas.installRootURI}/felix/bundle/org.apache.felix.shell.remote.jar
この2行を felix.auto.start.1 の最後に追加しろということです。felix.auto.start.1 は次のようになります。
felix.auto.start.1= \\
 ${com.sun.aas.installRootURI}/modules/javax.xml.stream.jar \\
 ${com.sun.aas.installRootURI}/modules/tiger-types-osgi.jar \\
 ${com.sun.aas.installRootURI}/modules/auto-depends.jar \\
 ${com.sun.aas.installRootURI}/modules/config.jar \\
 ${com.sun.aas.installRootURI}/modules/hk2-core.jar \\
 ${com.sun.aas.installRootURI}/modules/osgi-adapter.jar \\
 ${com.sun.aas.installRootURI}/felix/bundle/org.apache.felix.shell.jar \\
 ${com.sun.aas.installRootURI}/felix/bundle/org.apache.felix.shell.remote.jar
あとはこの数行下に osgi.shell.telnet.port=6666 という設定があるのがわかると思います。これは FELIX SHELL に接続するポートになります。特に問題なければそのままにしておきましょう。他のアプリケーションでこのポートを使っている場合は値を変更してください。

さて、この設定が終わったらアプリケーションサーバーを起動します。

% /home/shioda/glassfishv3-prelude/glassfish/bin/asadmin start-domain --verbose
GlassFish が起動したら、他の端末からポート 6666 にアクセスしてみましょう。
% telnet localhost 6666
Trying 127.0.0.1...
Connected to localhost.
Escape character is '\^]'.

Felix Shell Console:
=====================

-> help
bundlelevel   ... |  - set or get bundle start level.
cd []                     - change or display base URL.
headers [ ...]                  - display bundle header properties.
help                                - display impl commands.
install  [ ...]           - install bundle(s).
packages [ ...]                 - list exported packages.
ps [-l | -s | -u]                   - list installed bundles.
refresh [ ...]                  - refresh packages.
resolve [ ...]                  - attempt to resolve the specified bundles.
services [-u] [-a] [ ...]       - list registered or used services.
shutdown                            - shutdown framework.
start  [  ...]         - start bundle(s).
startlevel []                - get or set framework start level.
stop  [ ...]                - stop bundle(s).
uninstall  [ ...]           - uninstall bundle(s).
update  []                 - update bundle.
version                             - display version of framework.
->
ぜひ皆さんもお試しください。

GlassFish V3 Prelude と OSGi

GlassFish V3 Prelude での新しい機能の1つに OSGi サポートというのがあるのはご存じの方も多いかと思います。 OSGi の実行環境としては Apache Felix OSGi 実装を使っていますが、ほかの OSGi 実装で動かないかというとそんなこともありません。1月ほど前になりますが、 GlassFish v3 Prelude OSGi support: Is it really true? というブログの記事が java.net に投稿されていますので、この記事に沿って実際に Eclipse の Equinox 上で GlassFish V3 Prelude を動かしてみましょう。

用意するもの

  • GlassFish V3 Prelude:こちらからダウンロードしてください
  • Eclipse Equinox: こちらから eclipse-equinox-3.4.zip をダウンロードしてください
  • 設定ファイル(config.ini):こちらからダウンロードしてください
  • まず、GlassFish V3 Prelude をインストールします。今回は例として glassfish-v3-prelude-ml.zip を私のホームディレクトリ /home/shioda で展開(unzip)します。すると、/home/shioda/glassfishv3-prelude に GlassFish がインストールされます。

    % cd /home/shioda
    % unzip glassfish-v3-prelude-ml.zip
    
    次に /home/shioda/glassfishv3-prelude/glassfish ディレクトリで eclipse-equinox-3.4.zip を展開します。
    % cd /home/shioda/glassfishv3-prelude/glassfish
    % unzip eclipse-equinox-3.4.zip
    
    すると、eclipse Equinox のファイルが eclipse ディレクトリの下にインストールされます。 次に config.ini ファイルを /home/shioda/glassfishv3-prelude/glassfish/eclipse/configuration ディレクトリにコピーします。
    % cd /home/shioda/glassfishv3-prelude/glassfish/eclipse
    % mkdir configuration
    % cd configuration
    % cp ~/config.ini /home/shioda/glassfishv3-prelude/glassfish/eclipse/configuration
    
    設定の最後として、config.ini ファイルの最初の数行を GlassFish のインストールディレクトリに合わせて変更します。その前に UNIX 上で config.ini ファイルを開くと、改行コードが異なるために編集しにくい場合もあるので、改行コードを変更してしまいましょう。
    % cat config.ini | tr "[\\r]" "[\\n]" > config.ini.new
    
    そしてエディタで config.ini.new の以下の3つの行を環境に合わせて変更します。
    # GlassFish required properties
    com.sun.aas.installRoot=/home/shioda/glassfish-v3-prelude/glassfish/
    com.sun.aas.instanceRoot=/home/shioda/glassfish-v3-prelude/glassfish/domains/domain1/
    # HK2 OSGi Adapter property
    org.jvnet.hk2.osgiadapter.contextrootdir=/home/shioda/glassfish-v3-prelude/glassfish/modules
    
    
    私の場合は C: となっているところを /home/shioda に書き換えただけです。そして、config.ini.new を config.ini に rename してください。
    % mv config.ini config.ini.orig
    % cp config.ini.new config.ini
    
    これで準備はほぼ終了です。実行する場合は環境変数 GlassFish_Platform に Equinox を設定します。C Shell の場合は次のようにします。
    % setenv GlassFish_Platform Equinox
    
    そして、GlassFish を起動します。
    % /home/shioda/glassfishv3-prelude/bin/asadmin start-domain --verbose
    
    警告メッセージが出てきますが、これは既知の問題点です。本当に動いているかどうか確認するには http://localhost:8080/ にアクセスしてみてください。 今回私は Solaris 上で動かしましたが、ブログの記事は Windows 上で動かしているようですし環境依存の部分もなさそうですから他の環境でも動くだろうと思います。ぜひ皆さんもお試しください。 また、他の OSGi 環境上で動かせるようであればぜひ GlassFish チームにレポートしてあげてください。

    月曜日 5 26, 2008

    GlassFish Awards Program (GAP) - その2

    昨日 GlassFish Awards Program (GAP) について書きましたが、その後寺田さんも ブログにこのコンテストのことを書いて いますね。

    バグレポート部門は、バグレポートを提出して、それを コンテストに応募すれば良いようです。選考基準は

    • Fix のインパクト
    • Fix の困難さ
    • Fix の完全性
    • レポートのテストケースの明快さ
    • bug fix の記述
    • Fix の有用性
    といろいろと書かれていますが、要はそのバグがどれだけ重要で直ることに意味があり、また開発者にとって修正時に必要となる情報(再現方法や環境の記述や再現プログラムの作成、わかるなら修正方法)が丁寧に書かれていれば良い点がつくということのようですね。

    で、今現在 バグレポート部門にエントリされているのはたった3件 しかありません。後1月で締め切られるのですが、各カテゴリの top 3 report に対して賞金5万ドル(日本円で500万円!)を分け合うようです。現在の3つの レポートは Hudson に対して出ていますが、ぜひ皆さんも Hudson でも GFv2 でも GFv3 でも他の GF プロジェクトでも構いませんのでバグレポートを出してコンテストに エントリーしてみましょう。既にバグレポートを出している人で、寺田さんのようなメールを受け取っている場合は、今すぐにでも出せますね。

    わからないことがあれば、 グラジェー discuss_ja@glassfish.dev.java.net メーリングリスト にメールを出してみてください。また、英語で書く際には、上のリストにある3件のエントリーシートを参考にすると良いと思います。

    皆さんの参加をお待ちしてます。

    日曜日 5 25, 2008

    GlassFish Awards Program (GAP)

    GlassFish Awards Program (GAP) って皆さんご存じですか?このコンテストは アクエリアムでも紹介 しましたが、日本からのエントリーはまだ無いようですね。もしエントリーしたという人がいたらぜひお知らせください。エントリーの受付は6月末までですので、我こそはと思う方はぜひチャレンジしてみてください。

    今までエントリーされているものは こちらから参照できます。英語でエントリーしなければならないところがちょっと敷居が高いと感じるかもしれませんが、 賞金はかなり良い と思います。1人ではちょっとと思う方は、3名までのチームでのエントリーも可能です。 グラジェーや、 discuss_ja@glassfish.dev.java.net メーリングリストで仲間を集めたり、よくわからない点を相談していただいても良いと思います。

    GAP コンテストのルール は英語なのですが、主要なところを列挙してみます。

    • バグレポート部門と、コントリビューション部門の2つがあります。
    • エントリーする人は GF Community メンバーである必要があります。まだメンバーでない方は、こちらからメンバーになってください。
    • エントリーは英語で、1000ワード以内で書いてください。
    • エントリーの送り先は、 mailto:gap-submissions@glassfish.dev.java.net です。
    • エントリーには、氏名とメールアドレス、住所、国籍を入れてください。
    疑問点や、コメントや相談事項があれば、このブログにコメントとして書いて頂いても良いですし、グラジェーや discuss_ja@glassfish.dev.java.net にメールしてみてください。

    実際にエントリーする場合は、 上に書いたとおり、既存のエントリーが見られます ので、それらを参照して頂くのが良いだろうと思います。

    皆様の参加をお待ちしております。

    月曜日 5 19, 2008

    Solaris x86 向け Adobe Reader

    Solaris x86 向けの Adobe Reader が 2009 年にリリースされる予定とのことです。 詳細は blogs.adobe.com の次のブログエントリに書かれています。

    Adobe Reader on Solaris x86 coming in 2009!

    早く出てくれると良いですね。

    水曜日 5 07, 2008

    Sun xVM VirtualBox 1.6

    日本は連休中だったので、気がつかなかった人が多いかもしれませんが、5月2日に Sun xVM VirtualBox 1.6 がリリースされました。ということでブログを書こうと思ったら、今回もヤッパリ辻さんに先をこされましたね。辻さんのブログに 1.6 での変更点が日本語で投稿されているので、くわしくはそちらをご覧ください。Mac OS X と Solaris が正式にホストOSとしてサポートされたのは嬉しいですね。ダウンロードは こちらからどうぞ。

    で、何をしようかなと思ったのですが、やっぱり連休中に発表された OpenSolaris 2008.05 を入れてみました。このリリースは、CD 1枚でブートしインストールできるので、今までの DVD イメージのダウンロードに比べればずいぶんと楽になりました。ダウンロードは こちらになります。

    で、やることといえば、CD iso イメージファイルを VirtualBox から起動するだけです。すると次のような画面があがってきます。

    あとは「OpenSolaris をインストールする」アイコンをクリックして指示にしたがってインストールするだけです。CD1枚分ですからわりと短時間で終わります。

    こんな感じになります。 必要なパッケージは Package Manager を使って後から追加できます。それから VirtualBox の Solaris GuestAdditions もインストールしておきましょう。

    Windows を使っている方も、Mac を使っている方も、Linux を使っている方も、そしてもちろん Solaris を使っている方も、VirtualBox 1.6 を入れてしまえば OpenSolaris 2008.05 の環境を簡単に作れますので、ぜひ皆さんお試しください。ただ、他の VM 製品も同じですが、ホストOS のメモリだけは増やしておいてください。今回はゲストOSの OpenSolaris 2008.05 に 1GB メモリを割り当てましたが、この場合ホストOS に 2GB ないとちょっと苦しいかもしれません。

    水曜日 3 26, 2008

    OpenDS ホットトピックセミナーでの質問

    先日は ホットトピックセミナー にたくさんの方が参加していただきありがとうございました。

    ちょっと遅くなってしまいましたが、セミナーででたいくつかの質問について OpenDS チームの人から解答をもらったので、お知らせします。

    質問: 他のディレクトリーサーバーではなくて OpenDS を使う理由はなんですか?

    解答は OpenDS プロジェクトの FAQ にだいたい書かれているのでこちらを是非みて欲しいということでしたが、英語でもありますし、追加でいくつか情報ももらったので簡単にまとめてみます。
    まず、オープンソースのディレクトリサーバーは、OpenLDAP, Fedora Directory Server, Apache Directory Server などいくつかあるのですが、あえて新しく OpenDS プロジェクトを始めたのは、1つには、OpenDS プロジェクトを始めたメンバーが実現したいと思っていることと、既存のオープンソースプロジェクトのゴールやポリシーに差があるため、それらに入っていってソースコードを分岐させてしまうのは、コミュニティを混乱させてしまうかもしれないからということです。
    では、実現したいことは何かというと、次のようになります。
    1. 性能

      最終的には数億のエントリーを保持し、1秒間に数万オペレーションをひじょうに短いレスポンスタイムでこなせるように考えて、基本設計をしています。
    2. 使いやすさ

      セミナーでもすこしお見せしましたが、インストールや使い勝手が難しくならないようにしています。
    3. 機能

      LDAP の基本機能をどれだけインプリメントしているかという点では、実は既に Sun Java System Directory Server を凌駕している部分もあります。詳しい比較表は、 こちらにあります。
    4. 互換性・安定性

      もともと商用のディレクトリサーバーを開発しているチームが OpenDS もやっているので当然ですが、互換性を気を配りながら新しい機能を追加していますし、安定性も犠牲にはしません。このあたりは一般的なオープンソースのプロジェクトとはちょっと違うところなのかもしれません。
    ディレクトリサーバー自体は、裏方で仕事をする役割なので、なかなか派手なアピールポイントを上げるのは難しいのですが、実際に使ってみていただければその良さがわかるだろうとのことです。

    質問: CDDL ライセンス以外も採用する予定はないか?

    OpenDS コミュニティとして、現時点で CDDL 以外を採用する話はでていないとのことですが、セミナーででた質問の趣旨は理解したので、そういった要求があるかどうか調査はしてみたいといのことでした。実際に CDDL ライセンスだけでは問題があるという具体的な要望がありましたら、ぜひ OpenDS コミュニティのメーリングリストなどに要求してみてください。英語ではちょっとという方は、私のほうに連絡していただければサポートします。このブログ(どのエントリーでもかまいません)にコメントとして書いて頂いても OK です。

    なお、セミナーの時は時間配分がわるくてあまり質問の時間をとれませんでした。申し訳ありませんでした。セミナーの時に聞けなかった質問やその後に新たに思いついた質問、試しに OpenDS を使ってみたけどうまくいかないなどのコメントや質問があれば、ぜひこのブログにコメントとして書いてください。時間は多少かかるかもしれませんが解答していきたいと思います。

    日曜日 3 23, 2008

    更新: Netbeans 6.0.1 で OpenDS のビルド

    前回、 Netbeans 6.0.1 で OpenDS のビルド という記事を 3/18 に投稿しましたが、その後元となる Ludo の記事が 3/21 に更新されたようです。

    Developing OpenDS with the NetBeans IDE

    Source Repository の中に Netbeans Project に必要なファイルを入れていたのですが、どうもうまくないということで、 OpenDS wiki の中に zip ファイルとしておかれたようです。

    自分でまだ試していないのですが、手順としては次のようになるようです。

    1. svn で OpenDS のファイルを取ってくる。これは前のエントリで書いたのと同じです
    2. 次に、 OpenDS Netbeans Project ファイルをとってくる
    3. NetBeans IDE のファイルメニューで「プロジェクトを開く」を選択し、展開したファイルの場所を指定する

    取り急ぎお知らせまで。

    月曜日 3 17, 2008

    Netbeans 6.0.1 で OpenDS のビルド

    OpenDS のビルド方法は https://opends.org/wiki//page/BuildingAndRunningOpenDSWithinNetbeans に書かれています。これを日本語にするのは面倒だなぁと躊躇していたら、 Ludo がもっと簡単な方法をポストしてくれました

    Netbeans 6.0.1 をダウンロード およびインストールしたら、メニューから バージョン管理->Subversion->チェックアウト を選択 します。Subversion リポジトリの指定は

    1. リポジトリURL: https://opends.dev.java.net/svn/opends
    2. ユーザー: java.net のアカウント
    3. パスワード: java.net アカウントのパスワード
    です。ネットワークによってはプロキシ構成をする必要があるかもしれません。「次へ」 ボタンを押すと、次はチェックアウトするフォルダのダイアログです。設定は
    1. リポジトリフォルダ: trunk
    2. ローカルフォルダ: ファイルを保存するディレクトリ
    3. チェックアウト後に Netbeans プロジェクトをスキャンをチェック
    以上で OpenDS のファイルを取ってきてくれると思います。次の作業はビルドですね。上のドキュメントだと、 ここから になります。ソースコードを見てみようというかたはぜひお試しください。

    一般ユーザーで動かした OpenDS で LDAP のポート 389 を使うには

    ところで、ここまでのデモでは LDAP のポートに 1389 とか 2389 を使ってきました。実際のところは LDAP ポートが 389 でなければならないケースというのはそれほど多くあるわけではないと思いますが、 一般的に使われる 389 にしたいという要求も場合によっては出てくると思います。

    一番簡単なのは、UNIX なら OpenDS を root アカウントでインストールしてしまう方法です。UNIX の場合、一般ユーザーは 1024 以降のポートにしかアクセスできないために 1389 のような番号を使って いるので、root ならこの制約はありません。でも本当にこの方法で良いのでしょうか?root 権限を 不正に取られてしまうと、システムに対していろいろな悪さができてしまうので、できれば避けたいですね。

    Solaris 10 でしたら、このような場合に、 Solaris 10 最新セキュリティ技術 - 最小特権モデル に記述されているような方法で、一般ユーザーのままで、1024 より小さなポート番号を使うことも可能です。

    OpenDS でこのあたりの設定を行う方法は、 https://www.opends.org/wiki/page/RunningTheServerAsANonRootUser に記述されています。簡単に要約すると、例えば OpenDS を opends というアカウントにインストールし、 実行する場合、この opends アカウントに対して、次の usermod コマンドで必要な役割を設定します。

    # usermod -K defaultpriv=basic,net_privaddr,sys_resource,-proc_info,-file_link_any opends
    
    このコマンドでは
    1. basic: 通常のユーザーがもっている特権
    2. net_privaddr: 1023 以下のポートにアクセスできる特権
    3. sys_resource: file descriptor の数を変更する特権(それ以外も)
    4. -proc_info: 多のユーザーのプロセスを見る特権は必要ないので消す
    5. -file_link_any: 多のユーザーのファイルへの hard link は必要ないので消す
    といった操作を opends アカウントに対して行っています。これで OpenDS から 389 ポートをつかって LDAP の 通信を行えるようになります。

    Linux の場合は、例えば iptables を使って、ポートを変換する方法があります。

    # iptables --append PREROUTING --table nat --protocol tcp --dport 389 --jump REDIRECT --to-port 1389
    
    ぜひお試しください。

    Sun Java System Web Server 7.0 で OpenDS を使ってみよう

    Sun Java System Web Server 7.0 (WS7)は、 寺田さんのブログでもたびたび取り上げられていますね。今回は WS7 の認証に OpenDS を使う 簡単な方法を紹介しましょう。

    英語のドキュメントは、 https://opends.org/wiki/page/SunJavaSystemWebServer7.0 にあります。基本的にこのドキュメントに沿って設定を進めていきます。

    WS7 のダウンロードですが、英語のページになってしまいますが、 http://www.sun.com/download/index.jsp?cat=Web%20%26%20Proxy%20Servers&tab=3 より Web Server 7.0 Update 2 を取って来れます。これは日本語を含む7言語にメッセージを 翻訳した多言語版になります。インストールはセットアップコマンドを実行するだけです。Solaris を OS に使っている場合は、Package 版のほうが後々のパッチの保守等が簡単かもしれません。この場合は、 http://www.sun.com/software/javaenterprisesystem/getit.jsp からダウンロードしてください。インストール方法については寺田さんや他の人のブログを参照して ください。

    さて、WS7 がインストールできて、OpenDS も起動していることを確認してください。次にまず やることは、WS7 の管理コンソールにアクセスすることです。一般的には https://localhost:8990/ で管理コンソールにアクセスできると思います。設定時に入力したパスワードでログインしてください。

    次は、OpenDS を使って認証の設定です。管理コンソールの「共通操作」タブにある「構成を編集」という ボタンをクリックしてください。移動した画面で、次は「アクセス制御」タブをクリックします。すると、 認証データベースの画面が表示されていると思います。もし表示されなかった場合は、サブタブが「認証 データベース」になっているか確認してください。

    次に「新規」ボタンをクリックして、認証データベースを作成します。入力項目としては次のようになり ます。

    1. データベースタイプ: LDAP サーバー
    2. 認証データベース名: なんでも良いですが、今回は OpenDS とします
    3. ホスト名: OpenDS が動作しているホスト名です。今回は OpenDS と WS を同じホストに入れたので localhost にします
    4. ポート: OpenDS のポートです。デモだと 1389 か 2389 になると思います
    5. 接続に SSL を使用: 今回のデモでは「いいえ」になります
    6. ベース DN: 今回のデモだと、dc=example,dc=com になります
    7. バインド DN: 今回のデモでは OpenDS で anonyous search できるので、入力の必要はありません
    8. パスワード: 同上
    ここまで入力できたら「了解」ボタンをクリックします。これで OpenDS という名前の認証データベースができました。

    次は、「アクセス制御リスト(ACL)」というサブタブをクリックし、「新規」ボタンを続いてクリックします。入力値は 次のようになります。

    1. リソース: デモでは規定値の URI と /\* のままとします
    2. 認証データベース: 上で作成した OpenDS を選択します
    3. 認証方法: 今回のデモでは基本(Basic)を選択します
    4. Realm: 今回は入力の必要はありません
    5. Deny Access With: デフォルトメッセージにしておきます
    次に「アクセス制御エントリ(ACE)で「新規」ボタンをクリックし、次の値を入力します。 まず1つめは、認証なしのアクセスはすべてアクセスを許可しないよう設定します。
    1. アクセス権: 許可しない
    2. ユーザーとグループ: すべて(認証無し)
    3. 他はすべてそのまま
    で、「了解」ボタンをクリックします。2つめは、OpenDS で認証した場合アクセスを許可するよう設定します。 再度「アクセス制御エントリ(ACE)」で「新規」ボタンをクリックしてください。入力値は次のようになります。
    1. アクセス権: 許可する
    2. ユーザーとグループ: 認証データベース中のすべて
    3. 他はすべて規定値のまま
    で、「了解」ボタンをクリックします。より細かい設定をする場合は、http://docs.sun.com/ にある WS7 の ドキュメントを参照してください。

    さて、管理コンソールの左上に黄色のアイコンと「配備保留中」というリンクがあると思います。ここをクリック して、「配備」を実行してください。インスタンスが稼働していれば OK です。稼働していなければ、インスタンス を起動してください。

    これで、Web Server にアクセスしてみましょう。デフォルトポートはおそらく http://localhost:8080/ だと 思います。ここにアクセスすると、ユーザー名とパスワードを聞いてくると思います。OpenDS のインストール時に テスト用に生成したユーザーエントリの値を使ってアクセスしてみましょう。例えば、

    1. ユーザー名: user.1
    2. パスワード: password
    でアクセスできます。ちなみにインストール時にテスト用に生成されたアカウントのパスワードは常に password になっています。

    今回はデモと言うことで簡易な方法を使っていますが、ここまでとても簡単に設定できることがおわかりいただけると思います。 ぜひ皆さんも試してみてください。

    JConsole を使って OpenDS をモニタリングしてみよう

    JMX モニタリングの設定

    JMX モニタリングを有効にしてみましょう。手順は英語ですが、 https://www.opends.org/wiki/page/AccessingOpenDSMonitoringInformationThroughJconsole に書かれています。dsconfig コマンドを使って設定していますが、ここでは試しに dsconfig コマンドの Interactive Mode を使って設定してみます。長い文字列を打ち込まなくて済むので、私のようにタイプミス が多い人には楽かもしれません。ドキュメントなどにはコマンドラインからオプションを指定して設定してしまう方法で書かれていると思います。実際のところ今回 Interactive Mode でこの blog エントリーを書いてみたのですが、ものすごく冗長になってしまいました。これは dsconfig に Interactive Mode があるという紹介も兼ねてますので今回はこのまま出します。 実際の操作で、コマンドラインから値をすべて指定してしまうのか、Interactive Mode を使うのは好みの問題ですので、使いやすいと思った方で設定してください。

    まず、interactive mode でサーバーに接続します。ここでは前回インストールしたサーバーのうち2つ目 を選択しています。

    % ./dsconfig -h localhost -p 2389 -D "cn=directory manager" -w password
    
    次に LDAP を選択します。
    >>>> Specify OpenDS LDAP connection parameters
    How do you want to connect?
    
        1)  LDAP              
        2)  LDAP with SSL     
        3)  LDAP with StartTLS
    
    Enter choice [1]: 1 <-- 1 を選択
    
    dsconfig で行える操作一覧が出てきます。まずは、Connection Handler を選択します。
    >>>> OpenDS configuration console main menu
    
    What do you want to configure?
    
        1)   Access Control Handler               20)  Log Rotation Policy     
        2)   Account Status Notification Handler  21)  Matching Rule           
        3)   Alert Handler                        22)  Monitor Provider        
        4)   Attribute Syntax                     23)  Password Generator      
        5)   Backend                              24)  Password Policy         
        6)   Certificate Mapper                   25)  Password Storage Scheme 
        7)   Connection Handler                   26)  Password Validator      
        8)   Crypto Manager                       27)  Plugin                  
        9)   Debug Target                         28)  Plugin Root             
        10)  Entry Cache                          29)  Replication Domain      
        11)  Extended Operation Handler           30)  Replication Server      
        12)  Global Configuration                 31)  Root DN                 
        13)  Group Implementation                 32)  Root DSE Backend        
        14)  Identity Mapper                      33)  SASL Mechanism Handler  
        15)  Key Manager Provider                 34)  Synchronization Provider
        16)  Local DB Index                       35)  Trust Manager Provider  
        17)  Local DB VLV Index                   36)  Virtual Attribute       
        18)  Log Publisher                        37)  Work Queue              
        19)  Log Retention Policy                                              
    
        q)   quit
    
    Enter choice: 7 <-- 7 を選択します
    
    次に Connection Handler の作成をします。私は 4 で一度 JMX Connection Handler を 消してから再作成すているため 2 を選択していますが、既にある場合は(インストール直後は あります)3 の編集を選択してください。
    >>>> Connection Handler management menu 
    
    What would you like to do?
    
        1)  List existing Connection Handlers           
        2)  Create a new Connection Handler             
        3)  View and edit an existing Connection Handler
        4)  Delete an existing Connection Handler       
    
        b)  back
        q)  quit
    
    Enter choice [b]: 2 <-- 2 を選択(あるいは 3 を選択してください)
    
    JMX Connection Handler を選択します。
    >>>> Select the type of Connection Handler that you want to create:
    
        1)  JMX Connection Handler 
        2)  LDAP Connection Handler
        3)  LDIF Connection Handler
    
        ?)  help  
        c)  cancel
        q)  quit  
    
    Enter choice [c]: 1 <-- 1 を選択
    
    まず、JMX Connection Handler を有効にします。
    >>>> Enter a name for the JMX Connection Handler that you want to create: JMX Connection Handler
    
    
    >>>> Configuring the "enabled" property
    
        Indicates whether the Connection Handler is enabled.
    
    Select a value for the "enabled" property:
    
        1)  true 
        2)  false
    
        ?)  help  
        c)  cancel
        q)  quit  
    
    Enter choice [c]: 1 <-- 1 を選択
    
    次にポートを設定します。Multi-Master Replication 構成で同じホストにインストール した場合、両方とも同じポートを設定しているはずです。この場合重ならないように別々の ポートを選択してください。規定値は 1689 になっている場合が多いと思いますが、ここでは 1000 足して 2689 にしています。
    >>>> Configuring the "listen-port" property
    
        Specifies the port number on which the JMX Connection Handler will listen
        for connections from clients.
    
        Only a single port number may be provided.
    
        Syntax:  1 <= INTEGER <= 65535
    
    Enter a value for the "listen-port" property: 2689 <-- 2689 を選択
    
    今回は SSL 等は設定してませんので、他の項目は変更しません。
    >>>> Configure the properties of the JMX Connection Handler
    
            Property              Value(s)                                         
            -----------------------------------------------------------------------
        1)  allowed-client        All clients with addresses that do not match an  
                                  address on the deny list are allowed. If there is
                                  no deny list, then all clients are allowed.      
        2)  denied-client         If an allow list is specified, then only clients 
                                  with addresses on the allow list are allowed.    
                                  Otherwise, all clients are allowed.              
        3)  enabled               true                                             
        4)  key-manager-provider  -                                                
        5)  listen-port           2689                                             
        6)  ssl-cert-nickname     Let the server decide.                           
        7)  use-ssl               false                                            
    
        ?)  help                                                    
        f)  finish - apply any changes to the JMX Connection Handler
        c)  cancel                                                  
        q)  quit                                                    
    
    Enter choice [f]: f <-- 変更を適用する
    
    The JMX Connection Handler was created successfully
    
    Press RETURN to continue 
    
    
    >>>> Connection Handler management menu 
    
    What would you like to do?
    
        1)  List existing Connection Handlers           
        2)  Create a new Connection Handler             
        3)  View and edit an existing Connection Handler
        4)  Delete an existing Connection Handler       
    
        b)  back
        q)  quit
    
    Enter choice [b]: 
    
    
    >>>> OpenDS configuration console main menu
    
    What do you want to configure?
    
        1)   Access Control Handler               20)  Log Rotation Policy     
        2)   Account Status Notification Handler  21)  Matching Rule           
        3)   Alert Handler                        22)  Monitor Provider        
        4)   Attribute Syntax                     23)  Password Generator      
        5)   Backend                              24)  Password Policy         
        6)   Certificate Mapper                   25)  Password Storage Scheme 
        7)   Connection Handler                   26)  Password Validator      
        8)   Crypto Manager                       27)  Plugin                  
        9)   Debug Target                         28)  Plugin Root             
        10)  Entry Cache                          29)  Replication Domain      
        11)  Extended Operation Handler           30)  Replication Server      
        12)  Global Configuration                 31)  Root DN                 
        13)  Group Implementation                 32)  Root DSE Backend        
        14)  Identity Mapper                      33)  SASL Mechanism Handler  
        15)  Key Manager Provider                 34)  Synchronization Provider
        16)  Local DB Index                       35)  Trust Manager Provider  
        17)  Local DB VLV Index                   36)  Virtual Attribute       
        18)  Log Publisher                        37)  Work Queue              
        19)  Log Retention Policy                                              
    
        q)   quit
    
    Enter choice: q
    
    以上です。

    次に、root DN に JMX read, write, notify privilege を与えます。 先ほどと同様、まずは接続です。

    % ./dsconfig -h localhost -p 2389 -D "cn=directory manager" -w password
    
    
    >>>> Specify OpenDS LDAP connection parameters
    How do you want to connect?
    
        1)  LDAP              
        2)  LDAP with SSL     
        3)  LDAP with StartTLS
    
    Enter choice [1]: 1
    
    Root DN の変更なので、31 を選択します。
    >>>> OpenDS configuration console main menu
    
    What do you want to configure?
    
        1)   Access Control Handler               20)  Log Rotation Policy     
        2)   Account Status Notification Handler  21)  Matching Rule           
        3)   Alert Handler                        22)  Monitor Provider        
        4)   Attribute Syntax                     23)  Password Generator      
        5)   Backend                              24)  Password Policy         
        6)   Certificate Mapper                   25)  Password Storage Scheme 
        7)   Connection Handler                   26)  Password Validator      
        8)   Crypto Manager                       27)  Plugin                  
        9)   Debug Target                         28)  Plugin Root             
        10)  Entry Cache                          29)  Replication Domain      
        11)  Extended Operation Handler           30)  Replication Server      
        12)  Global Configuration                 31)  Root DN                 
        13)  Group Implementation                 32)  Root DSE Backend        
        14)  Identity Mapper                      33)  SASL Mechanism Handler  
        15)  Key Manager Provider                 34)  Synchronization Provider
        16)  Local DB Index                       35)  Trust Manager Provider  
        17)  Local DB VLV Index                   36)  Virtual Attribute       
        18)  Log Publisher                        37)  Work Queue              
        19)  Log Retention Policy                                              
    
        q)   quit
    
    Enter choice: 31 <-- 31 を選択
    
    変更を加えるため、1を選択します。
    >>>> Root DN management menu 
    
    What would you like to do?
    
        1)  View and edit the Root DN
    
        b)  back
        q)  quit
    
    Enter choice [b]: 1 <-- 1 を選択
    
    1 の default-root-privilege-name を変更するので 1 を選択します。
    >>>> Configure the properties of the Root DN
    
            Property                     Value(s)                                  
            -----------------------------------------------------------------------
        1)  default-root-privilege-name  backend-backup, backend-restore,          
                                         bypass-acl, cancel-request, config-read,  
                                         config-write, disconnect-client,          
                                         ldif-export, ldif-import, modify-acl,     
                                         password-reset, privilege-change,         
                                         server-restart, server-shutdown,          
                                         unindexed-search, update-schema           
    
        ?)  help                                     
        f)  finish - apply any changes to the Root DN
        c)  cancel                                   
        q)  quit                                     
    
    Enter choice [f]: 1 <-- 1 を選択
    
    read, write, notify privilege を追加するため、2 を選択します。
    >>>> Configuring the "default-root-privilege-name" property
    
        Specifies the names of the privileges that root users will be granted by
        default.
    
    The "default-root-privilege-name" property has the following values:
    
        \*)  backend-backup         \*)  ldif-import     
        \*)  backend-restore        \*)  modify-acl      
        \*)  bypass-acl             \*)  password-reset  
        \*)  cancel-request         \*)  privilege-change
        \*)  config-read            \*)  server-restart  
        \*)  config-write           \*)  server-shutdown 
        \*)  disconnect-client      \*)  unindexed-search
        \*)  ldif-export            \*)  update-schema   
    
    Do you want to modify the "default-root-privilege-name" property?
    
        1)  Keep these default values
        2)  Add one or more values   
        3)  Remove one or more values
        4)  Remove all values        
    
        ?)  help
        q)  quit
    
    Enter choice [1]: 2 <-- 2 を選択
    
    jmx-read, jmx-write, jmx-notify を選択します。
    Select the values you wish to add:
    
        1)  data-sync     
        2)  jmx-notify    
        3)  jmx-read      
        4)  jmx-write     
        5)  proxied-auth  
        6)  Add all values
    
        ?)  help  
        c)  cancel
        q)  quit  
    
    Enter one or more choices separated by commas [c]: 2,3,4 <-- 2, 3, 4 を選択
    
    Press RETURN to continue 
    
    変更後の情報が出力されるので、この値を使うよう指定します。
    >>>> Configuring the "default-root-privilege-name" property (Continued)
    
    The "default-root-privilege-name" property has the following values:
    
        \*)  backend-backup         \*)  ldif-export     
        \*)  backend-restore        \*)  ldif-import     
        \*)  bypass-acl             \*)  modify-acl      
        \*)  cancel-request         \*)  password-reset  
        \*)  config-read            \*)  privilege-change
        \*)  config-write           \*)  server-restart  
        \*)  disconnect-client      \*)  server-shutdown 
        \*)  jmx-notify             \*)  unindexed-search
        \*)  jmx-read               \*)  update-schema   
        \*)  jmx-write                                  
    
    Do you want to modify the "default-root-privilege-name" property?
    
        1)  Use these values                                                       
        2)  Add one or more values                                                 
        3)  Remove one or more values                                              
        4)  Remove all values                                                      
        5)  Reset to the default values: backend-backup, backend-restore,          
            bypass-acl, cancel-request, config-read, config-write,                 
            disconnect-client, ldif-export, ldif-import, modify-acl,               
            password-reset, privilege-change, server-restart, server-shutdown,     
            unindexed-search, update-schema                                        
        6)  Revert changes                                                         
    
        ?)  help
        q)  quit
    
    Enter choice [1]: 1 <-- 1 を選択
    
    Press RETURN to continue 
    
    変更を適用します。
    >>>> Configure the properties of the Root DN
    
            Property                     Value(s)                                  
            -----------------------------------------------------------------------
        1)  default-root-privilege-name  backend-backup, backend-restore,          
                                         bypass-acl, cancel-request, config-read,  
                                         config-write, disconnect-client,          
                                         jmx-notify, jmx-read, jmx-write,          
                                         ldif-export, ldif-import, modify-acl,     
                                         password-reset, privilege-change,         
                                         server-restart, server-shutdown,          
                                         unindexed-search, update-schema           
    
        ?)  help                                     
        f)  finish - apply any changes to the Root DN
        c)  cancel                                   
        q)  quit                                     
    
    Enter choice [f]: f <-- f を選択
    
    The Root DN was modified successfully
    
    Press RETURN to continue 
    
    以上です。Status Panel から OpenDS を一度停止し、再度起動してください。

    jconsole の起動

    次は jconsole を起動して、接続します。jconsole は JAVA_HOME/bin にインストールされています。 J2SE 5.0 と Java 6 で多少 UI が異なりますが、やることは JMX URL の指定と、user 名、パスワード の指定です。

    1. JMX URL: service:jmx:rmi:///jndi/rmi://localhost:2689/org.opends.server.protocols.jmx.client-unknown
    2. Username: cn=directory manager
    3. password: password
    以上で、 https://www.opends.org/wiki/page/AccessingOpenDSMonitoringInformationThroughJconsole に書かれているように jconsole からモニタリングができます。ぜひお試しください。

    金曜日 3 14, 2008

    OpenDS を Multi Master Replication 構成でインストールしてみよう

    OpenDS の QuickSetup をつかうと、短時間でしかも簡単に Multi-Master Replication 構成で OpenDS をインストールすることができます。今回は以下の図のような設定にします。本来なら2台のホストに別々にインストールするのですが、今回はデモということで1台のマシンに2つの OpenDS を入れてしまいます。そのためインストールディレクトリとポート番号はそれぞれの OpenDS で異なる値を使うようにします。

    OpenDS インストーラの起動

    OpenDS は Java Web Start を使ってインストールできてしまいます。まず http://www.opends.org にアクセスして、Downloads のところにある Install Latest with QuickSetupをクリックするだけです。こ れでインストーラが起動します。新規インストールの場合は Install New Server Instance を選択し、 Next ボタンをクリックしてください。

    OpenDS の設定

    次はサーバーの設定です。今 回の設定は次のようにしました。
    1. Installation Path: /export/home/shioda/OpenDS1
    2. Host Name: localhost (適宜変更してください)
    3. LDAP Listener Port: 1389 (root でない場合は 1024 以降のポートになります)
    4. LDAP Secure Access: disabled(今回は disable で設定します)
    5. Root User DN: cn=Directory Manager

    パスワードは適宜入力してください。

    セキュリティ設定 今回は LDAP Secure Access を disable にして設定していますが、その横の Configure ボタンを押すと、次の画面で設定を行えます。

    トポロジー設定

    ここで、data replication のトポロジー設定を行います。今回は、最初のインストールなので、次のように設定しました。
    1. Tis server will be a part of replication topology を選択
    2. Replication Port+ 8989 (既定値)

    ディレクトリデータの入力

    ディレクトリデータを入力できます。テストの場合は、Bind DN< は既定値の dc=example,dc=com、またデータは自動生成したものをいくつか入れるということで、Import Automatically Generated Sample Data を選択すればよいでしょう。データをお持ちの場合は、 Bind DN の変更や ldif ファイルの指定を行ってください。

    以上でインストールに必要な入力はすべて終わりました。入力データをチェックして、インストールを開始してください。インストールに成功すると、画面の中程に Launch Status Panel というボタンが表示されます。ここをクリックするとステータスパネルが表示されます。パスワードを聞かれますが、こ れはインストールの設定時に入力したものになります。

    以上で、Multi-Master Replication 構成の最初の OpenDS インストールが終わりました。ここまでは、ネットワークやサンプルデータの生成数にもよりますが、3 - 5分程度で終わったのではないかと思います。スタンドアロン構成で使う場合は、トポロジ設定のところで This will be a standalone server を選択するだけであとは同じになります。

    2台目の OpenDSをインストールし Multi-Master Replication 構成で起動

    今回はデモということで、同じマシンに2台目の OpenDS をインストールしてしまいます。もう1台マシンを用意できる方は別のマシンにインストールしてください。もう一度 OpenDS のインストーラを起動すると設定画面が出てきます。設定は次のようにしました。
    1. Installation Path: /export/home/shioda/OpenDS2
    2. Hostname: localhost (適宜変更してください)
    3. LDAP Listener Port: 2389 (使用中の場合、1000 づつポート番号が加算されていきます)
    4. LDAP Secure Access: disable (1台目と同じにします)
    5. Root User DN: cn=Directory Manager
    6. Password:
    以上です。

    トポロジ設定

    今回も This server will be part of a replication topology を選択します。Replication Port は 9989 になっています。すでに1台目の OpenDS をインストール・実行済みですので、There is a server in the topology を選択し、1台目の OpenDS の情報を入力します。
    1. Host Name: localhost (1台目の OpenDS をインストールしたホスト名 )
    2. Port: 1389 (1台目の OpenDS のポート )
    3. Admin User: cn=Directory Manager
    4. Password:

    Global Admin の設定

    Global Administrator のアカウント作成とパスワードの設定を行います。このアカウントは replicatin トポロジーの管理に使用されます。

    データの複製

    1 台目の OpenDS からデータを複製します。サンプルデータを入れた場合は、Create local instance of existing base Dns and configure replication を選択し、 dc=example,dc=com もチェックします。

    設定作業は以上で終わりです。インストールを開始してください。ここまでおそらく10分かからずに2台の OpenDS インストール、および Multi-Master Replication での構成が終わったと思います。ぜひみなさんもお試しください。

    月曜日 2 18, 2008

    Solaris に VirtualBox をインストールしてみました

    VirtualBoxのことをブログに書こうと思っていたのですが、時間ばかりどんどんたってしまいました。 すでにこちらに日本語でブログのエントリがありますね。

    でもせっかくなので、画面だけでもお見せしておきます。環境は Solaris Express Developer Edition (SXDE) 1/08 で、Sun Fire X2100 2GB Memory のマシンに入れました。表示は普段会社で使っている SunRay です。インストールするといっても、pkgadd するだけなので悩むこともあまりありませんでした。ただ、1つ注意する点というか同僚がはまった点ですが、Sun のキーボードをつかっている場合、デフォルトでホストキーにアサインされる右 Ctrl キーが存在しないので、最初に /usr/bin/VirtualBox を起動したら、まず最初にファイル->環境設定 ダイアログを開いて、ホストキーを変更する必要がありました。そうしないとマウスを VM にとられたら戻って来れなくなります :-) 他のシステムにインストールする場合でもここは念のため確認したほうがよさそうですね。

    あと、Solaris package には VBoxGuestAdditions がなぜか入っていなかったのですが、 こちらから ISO イメージをダウンロードできます。これをクライアント OS にインストールしないと、rdesktop のような RDP クライアントからアクセスしたときにマウスポインタが2つ表示されてしまうなどの問題がでます。

    というわけで、こんな感じで、Windows XP と Ubuntu 7.10 が動いてます。

    皆さんもぜひお試しください。

    About

    shioda

    Search

    Archives
    « 4月 2014
      
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
       
           
    今日