JES: Portal Server を使ってみよう (4): dpadmin コマンドを使おう
管理コンソールで行ったことととまったく同じことをコマンドラインでやってみることにしますね。
dpadmin コマンド
ポータルデスクトップのタブ、チャネル、レイアウトなどの情報はディレスプレイプロファイルと呼ばれてディレクトリサーバー内に格納されています。 /opt/SUNWps/bin/dpadmin はポータルデスクトップのこのディスプレイプロファイルを管理するコマンドです。
# cd /opt/SUNWps/bin
# ./dpadmin
Usage: dpadmin SUBCOMMAND ARGUMENTS
ディスプレイプロファイル管理のコマンド行インタフェース
The accepted values for SUBCOMMAND are:
list DP ノードオブジェクトの取得および表示.
merge 指定の DP ノードオブジェクトのマージ結果を取得および表示.
modify 既存の DP オブジェクトの値の変更.
add 新しい DP オブジェクトをディスプレイプロファイルに追加.
remove 既存の DP オブジェクトをディスプレイプロファイルから削除.
batch バッチモード操作.
#
ディスプレイプロファイルを取得する - dpadmin list
実際に使ってみましょう。前回ではユーザー test に対して変更をしていましたよね。その状態でユーザー test のディスプレイプロファイルを見てみます。-d オプションでユーザー test の DN を指定します。
# ./dpadmin list -u uid=amadmin,ou=people,dc=xyz,dc=com" -w passwd \
-d "uid=test,ou=people,o=xyz.com,dc=xyz,dc=com"
さてさてどのような情報が表示されたでしょうか。
タブの情報
まずはポータルデスクトップの情報です。MyFrontPageTabPanelContainer はトップのタブです。次のチャネルが使えるということを示していますね。前回作った MyInfoChannel と MyRSSChannel があることがわかります。
<Container name="MyFrontPageTabPanelContainer">
<Properties>
</Properties>
<Available>
<Reference value="UserInfo"/>
<Reference value="App"/>
<Reference value="Bookmark"/>
<Reference value="MyFrontPageTabPanelContainer/Bookmark2"/>
<Reference value="SampleJSP"/>
<Reference value="SampleRSS"/>
<Reference value="Calendar"/>
<Reference value="Mail"/>
<Reference value="IMChannel"/>
<Reference value="AddressBook"/>
<Reference value="Netlet"/>
<Reference value="Proxylet"/>
<Reference value="MyInfoChannel"/>
<Reference value="MyRSSChannel"/>
<Reference value="SampleXML"/>
<Reference value="MailCheck"/>
</Available>
<Selected>
<Reference value="MailCheck" merge="remove"/>
<Reference value="App" merge="remove"/>
<Reference value="Bookmark" merge="remove"/>
<Reference value="MyFrontPageTabPanelContainer/Bookmark2" merge="remove"/>
<Reference value="SampleJSP" merge="remove"/>
<Reference value="SampleRSS" merge="remove"/>
<Reference value="SampleXML" merge="remove"/>
<Reference value="Calendar" merge="remove"/>
<Reference value="Mail" merge="remove"/>
<Reference value="IMChannel" merge="remove"/>
<Reference value="AddressBook" merge="remove"/>
<Reference value="Netlet" merge="remove"/>
<Reference value="Proxylet" merge="remove"/>
<Reference value="UserInfo"/>
<Reference value="MyInfoChannel"/>
<Reference value="MyRSSChannel"/>
</Selected>
チャネルの情報
おぉ、次にチャネル本体の定義が出てきましたね。
MyInfoChannel です。
<Channel name="MyInfoChannel" provider="URLScraperProvider" merge="replace">
<Properties>
<String name="inputEncoding" value="EUC-JP"/>
<ConditionalProperties condition="client" value="HTML">
<ConditionalProperties condition="locale" value="ja">
<String name="url" value="file:///tmp/test.html"/>
</ConditionalProperties>
</ConditionalProperties>
<ConditionalProperties condition="locale" value="ja">
<String name="title" value="お休み情報"/>
</ConditionalProperties>
</Properties>
</Channel>
ここで ConditionalProperties というのが出てきますが管理コンソール上でチャネルを作成したときに locale=ja を選んだことを覚えていますよね。言語が日本語の時に使われるプロパティです。
これは MyRSSChannel です。
<Channel name="MyRSSChannel" provider="XMLProvider" merge="replace">
<Properties>
<String name="title" value="My Blog"/>
<String name="inputEncoding" value="UTF-8"/>
<String name="url" value="http://blogs.sun.com/roller/rss/katakai/"/>
<String name="xslFileName" value="sunblog.xsl"/>
<String name="urlScraperRulesetID" value="default_ruleset"/>
</Properties>
</Channel>
ディスプレイプロファイルを変更する - dpadmin modify
これらのディスプレイプロファイルをファイルに定義しておいて dpadmin を使えば他の組織や他のユーザーのディスプレイプロファイルを簡単に変更することができますね。
/tmp/test2_dp.xml というファイルを用意します。MyRSSChannel を作成して MyFrontPageTabPanelContainer で使えるようにし、それを表示させるというディスプレイプロファイルです。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">
<DisplayProfile version="1.0" priority="user">
<Properties>
</Properties>
<Channels>
<Container name="MyFrontPageTabPanelContainer">
<Properties>
</Properties>
<Available>
<Reference value="MyRSSChannel"/>
</Available>
<Selected>
<Reference value="MyRSSChannel"/>
</Selected>
<Channels>
</Channels>
</Container>
<Channel name="MyRSSChannel" provider="XMLProvider" merge="replace">
<Properties>
<String name="title" value="My Blog"/>
<String name="inputEncoding" value="UTF-8"/>
<String name="url" value="http://blogs.sun.com/roller/rss/katakai/"/>
<String name="xslFileName" value="sunblog.xsl"/>
<String name="urlScraperRulesetID" value="default_ruleset"/>
</Properties>
</Channel>
</Channels>
<Providers>
</Providers>
</DisplayProfile>
ユーザー test2 に対してディスプレイプロファイルを変更します。変更するには modify サブコマンド使い次のようにします。-m オプションはすべて置き換えてしまうのではなくマージするという意味です。
# ./dpadmin modify -m -u uid=amadmin,ou=people,dc=xyz,dc=com" -w passwd \
-d "uid=test2,ou=people,o=xyz.com,dc=xyz,dc=com" \
/tmp/test2_dp.xml
組織のディスプレイプロファイルを設定する
上の例はユーザー test2 に対してだけの変更でした。組織 xyz.com 全体に対して変更するには -d オプションを組織の DN にしてしまえばよいです。
# ./dpadmin modify -m ... -d "o=xyz.com,dc=xyz,dc=com" ...
Portal Server 全体のディスプレイプロファイルを設定する
さらに上のレベル、その Portal Server 全体(グローバル)を変更するには -g オプションを付けて実行します。この場合は -d オプションは指定しません。
# ./dpadmin modify -m -g ...
ディスプレイプロファイルと dpadmin の詳細については Sun Java System Portal Server 6 2004Q2 管理ガイド の を参照して下さい。



