以前個人ブログに OpenDJ について書いたのですが OpenDJ 2.5.0-Xpress1 は EOSL だそうで、2.6 のセットアップを試してみたいと思います。2.6 では LDAP のデータに RESTful API でアクセスできるらしいので次回以降で試してみます。
OpenDJ ってなに?ってのは↓こちらで
環境
私の作業PCは Linux Mint 16 です
この上で VirtualBox + Vagrant で CentOS に OpenDJ をセットアップします
作業は ~/vm/opendj/ で行います。ここに Vagrantfile ができる
セットアップ
CentOS から /vagrant でアクセスできるので ~/vm/opendj に opendj と jdk の RPM をダウンロードします
- opendj-2.6.0-1.noarch.rpm
- jdk-7u55-linux-x64.rpm
それでは CentOS 上でセットアップします
$ sudo rpm -ivh /vagrant/jdk-7u55-linux-x64.rpm
$ sudo rpm -ivh --nodeps /vagrant/opendj-2.6.0-1.noarch.rpm
jre 1.6 以上を入れろって言われるので --nodeps
をつけてあります
エラー: 依存性の欠如:
jre >= 1.6 は opendj-2.6.0-1.noarch に必要とされています
OpenDJ は /opt/opendj にインストールされます
それでは OpenDJ のセットアップを行います
GUI でもセットアップできますが、CLI で行います。
sudo /opt/opendj/setup --cli
で、インタラクティブにセットアップできます、がここでは全部指定しちゃいます
$ sudo /opt/opendj/setup \
--cli \
--baseDN dc=example,dc=com \
--sampleData 5 \
--ldapPort 1389 \
--adminConnectorPort 4444 \
--rootUserDN cn=Directory\ Manager \
--rootUserPassword password \
--enableStartTLS \
--ldapsPort 1636 \
--generateSelfSignedCertificate \
--hostName localhost.localdomain \
--no-prompt \
--noPropertiesFile \
--acceptLicense
あら簡単、これでセットアップ完了。もう起動してます。
--sampleData 5
で5ユーザー分のサンプルデータが登録されます
(わざわざ root で実行しなくても良いのですが、RPM だと /opt/opendj に root でインストールされるからここでは root で進めます。非 root であれば 389, 636 port は 1389, 1636 がデフォルトになります)
[vagrant@localhost ~]$ sudo /opt/opendj/bin/status
>>>> OpenDJ LDAP 接続パラメータを指定します
管理者ユーザーのバインド DN [cn=Directory Manager]:
ユーザー 'cn=Directory Manager' のパスワード:
--- サーバーの状態 ---
サーバーの稼動状態: 起動中
開いている接続数: 1
--- サーバーの詳細 ---
ホスト名: localhost.localdomain
管理ユーザー: cn=Directory Manager
インストールパス: /opt/opendj
バージョン: OpenDJ 2.6.0
Java のバージョン: 1.7.0_55
管理コネクタ: ポート 4444 (LDAPS)
--- 接続ハンドラ ---
アドレス:ポート : プロトコル : 状態
-------------:---------------------:---
-- : LDIF : 無効
0.0.0.0:161 : SNMP : 無効
0.0.0.0:1389 : LDAP (StartTLS を許可) : 有効
0.0.0.0:1636 : LDAPS : 有効
0.0.0.0:1689 : JMX : 無効
0.0.0.0:8080 : HTTP : 無効
--- データソース ---
ベース DN: dc=example,dc=com
バックエンド ID: userRoot
エントリ: 7
レプリケーション:
status コマンド試しました?すごく時間かかりますね
bin/ にあるコマンドはいちいち Java だから起動に時間がかかります...
日本語表示が好きじゃなかったら LANG をいじってください
もともと Sun プロジェクトだっただけあってか、かなり日本語対応されてます
Control Panel
OpenDJ には便利な GUI ツールが付属しているのでこれでエントリを確認してまいましょう。
ネットワーク経由でアクセスしてみましょう。ホストOS, Linux Mint にも OpenDJ を用意します。zip 版を展開すれば OK ですが、それだけだと Version がわかんねーと言われて終了するので CentOS 側の /opt/opendj/config/buildinfo を zip 展開した opendj フォルダ内にコピーしましょう。
$ bin/control-panel
The version of the installed OpenDJ could not be determined because the
version file '/home/ytera/vm/opendj/opendj/./config/buildinfo' could not be
found. Restore it from backup before continuing
$ echo '2.6.0.9086' > config/buildinfo
OpenDJ サーバーの 4444 port にアクセスする必要があるので Vagrantfile で port forward の設定を行いましょう
config.vm.network :forwarded_port, guest: 4444, host: 4444
Vagrantfile を編集したら再起動します
1389 -> 1389, 1636 -> 1636 を追加しておいても良いかも
では bin/control-panel -r -h 127.0.0.1
で起動しましょう
設定の読み取り中にエラーが発生しました
OID 2.5.4.50 を含む属性型の定義では、マッチングルール "uniquemembermatch" を使用して等価マッチングを実行する必要があると宣言されていました。このような等価マッチングルールは、ディレクトリサーバーで使用するように設定されていません
サーバーからデータを読み取り中にエラーが発生しました。指定された認証情報を検証します。詳細: java.lang.NullPointerException
あら?
どうやらリモートホストから control-panel で接続する場合にバグがあるようです...
NPE when control panel is launched remotely
http://bugster.forgerock.org/jira/browse/OPENDJ-1122
しかたないので SSH の X11Forwarding を使って試しましょう
X を飛ばせるように CentOS に追加のパッケージをインストールします
$ sudo yum -y install libxslt libXtst libXrender xorg-x11-xauth
これで vagrant ssh -- -X
と、X11Forwarding を有効にしてアクセスします
/usr/bin/xauth: creating new authority file /home/vagrant/.Xauthority
と表示されると思います
root で OpenDJ をセットアップしたので local でアクセスする場合には root で control-panel を実行する必要があります
しかし、このままでは root では X Server に接続できないので xauth の情報を root にコピーしてあげます
$ sudo xauth add `xauth list`
これで root でも X Server にアクセスできるようになったので control-panel を実行しましょう
$ LANG=C sudo /opt/opendj/bin/controlpanel
日本語が化けちゃうので LANG=C にしました (フォントインストールすればいいのかな?)
次のような Window が表示されます。便利そうでしょ?