010010111010111011
11101011001110100101101
110100101000101110101
110100101101100110101101
010010111010111011

r423.jp

How to install VOMS Server and Client - 2009/10/06(Tue) 17:59:05
keyword: computing


0.はじめに
まず始めにvomsって所謂Virtual Organizationを実現するために認証・認可機構なんだけど,globusGSIをベースにPKI+クラサバ認証を行なうんだ.とても面倒だよね.そう面倒なんだ.なにが面倒ってインストールや設定の時点でまずややこしい.これを一発入れたらハイ終了!っていう具合に行かない.vomsを使いたいだけなのに,まずpacmanやらVDTやらをインストールしなければいけない.その上,vomsはVDTのコンポーネントの一つに上がっているんだけど,コンポーネントが複雑すぎるし,VDTのバージョンによったら入っているコンポーネントが違う.
そして極めつけはドキュメント.複数のコンポーネントのことが同一ページに混在しているため,エントロピーが増大して複雑怪奇なのものに仕上がっている.またメンテができていないから,VDT 2.0.0のインストールの話を読んで行ってるつもりが,いつの間にかVDT 1.8.1の話に,そしてVDT 1.3.0の話に,あげく"currentはVDT 2.0.0なんだからね!"と警告がでる.ええー.
そんな状態だからこんなドキュメントを僕は書かなければいけないんだ.
さて,もし君が何らかの事情でvomsを利用しなければいけないなら,それはたぶんとても不幸な状況だと思う.現段階でとても安定したものとは言いがたいし,vomsを利用しようというならばそれはcern絡みかgrid絡みくらいしかないからね.そんな君の状況を少しでも和らげるドキュメントにできれば良いと思う.

1.用意するべきもの
Scientific Linux 5.3
一応Redhat Cloneだととらえて差し支えない.ただしAFSやらadditionalなパッケージが着いている.確認してほしいのはvomsを入れるというよりも,pacma+VDTをインストールしなければいけない.これらのRequirementを確認してから用意するディストリビーションのバージョンを選んでほしい.これを書いている時点ではSL5.3. pacmanは3.29, VDTは1.8.1.2.0.0が出ていたけど,僕が試したのは1.8.1.ちなみにgLite系のミドルウェアはマイナーリビジョンすら互換性がなくなるので注意してほしい.どうしても最新を試したいというなら止めはしないがおすすめはしない(最悪,i386じゃダメ!とか言われたりする).

2.pacmanのインストール
まずvomsを利用したいなーって考えている人が,http://vdt.cs.wisc.eduに辿り着かなければならない.このサイトはvomsって単語をググって3番目に出てくるサイトなんだけど,正確にはhttp://vdt.cs.wisc.edu/VOMS-documentation.html.でこのドキュメントを読んでみると判るんだけど,VDT 1.3.0にvomsって入っているよーって言ってくる.ほほぅなるほど,VDT 1.3.0を入れようず.ってこのドキュメントの一番下,VOMS Serverってところにまぁいい訳がましくVDTの更新は早いんだ,最新版はappropriate per-release documentationを読むと良いよって言ってる.ほほぅって2.0.1まで出てる!さっきは1.3.0だったのに!
というよりVDTってどこからインストールするの?しょうがないから左端メニューのDownloadってアンカーをクリックだ.

そうすると説明してくれている.VDTを得るには3つの方法があるよ.
1. pacmanっていう便利なオンラインインストーラーがあるんだ.それを利用すると良いよ.
2. VDTのサブセットとしてRPMで提供しているよ!
3. VDTのサブセットとしてDebian packagesで提供しているよ!
なんだか簡素なのか意味フなのか良く判らないけど,まぁ親切だなー.とりあえずどれもdocumentってアンカーを読めってことなんだけど,この飛んだ先の不親切さが異常.まず3つの方法のディテールについて触れていない.触れているのかもしれないけど,どれがどれに対応しているのか判らない.とりあえずアンカーの数だけいうと87もある.ナメてんの?宝探しゲーム?黒ヒゲ危機一発?
ともかく3択のどれかはよく判らないけどInstalling and Setting up VDT 2.0.0をクリック.ほいでInstall PacmanをクリックしてPacmanをインストールする手順が書いてあるんだけども,これもやっぱり不親切でただpacman-3.28.tar.gzを展開しる,くらいにしか書いてない.ファック.
ちなみにここで展開したファイルの中身でsetup.shなんつうファイルがあるんだけども,tarで解凍を実行した時点でこのファイルの中身が書き変わっちゃうから要注意な.どう変わるかっつうと/opt/pacman-3.29/binとかカレントディレクトリの名前が中身に反映されてしまう.だから一度展開したらそこのディレクトリ固定にしないとダメ.
おすすめの展開場所は,/optにでもどうぞ.あとはドキュメント通りだけど/etc/profileとかに
. /opt/pacman-3.xx/setup.sh
とか書いておいた方がベター.

3.VDTというかvomsのインストール
ようやくVDTのインストールの準備が整った.チェックして欲しいのはPick the right VDT for you.ここで挙げられるのはVDTに含まれるコンポーネント.僕が必要なのはもちろんvomsなのでVOMSって名前,これを頭に入れておく.いずれこの単語が必要になる.
ほいでInstall the VDTを読んでもらう.文章が短すぎてよく判らないかもしれないけどもpacmanはオンラインインストーラだからURLとパッケージ名を指定してダウンロードアンドインストールをしてくれるんだ.
> mkdir /opt/vdt
>cd /opt/vdt
>pacman -get http://vdt.cs.wisc.edu/vdt_200_cache:VOMS
これでだらだらと行程が流れる.だいたい30分くらいだと思う.pacmanコマンドオプションの最初の太文字はVDTのバージョン.ほいで次の太文字がパッケージ名.
ちなみにVDT 1.8.1のVOMSパッケージはvomsをいれたのにvoms-proxy-initが入ってなくてマジビビった.後でVOMS-ClientとVOMS-Serverを入れないといけない.気を緩めたところに潜む罠.
この時点で大体のインストールは終わった.あと以下のPATHを通しておくとよい.以下は/etc/profileの例.
JAVA_HOME=/usr/java/jdk1.6.0_13
ANT_HOME=/opt/ant
GLOBUS_LOCATION=/opt/vdt/globus
GLITE_LOCATION=/opt/vdt/glite
export JAVA_HOME
export ANT_HOME
export GLOBUS_LOCATION
export GLITE_LOCATION
pathmunge $JAVA_HOME/bin
pathmunge $ANT_HOME/bin
pathmunge $GLOBUS_LOCATION/bin
pathmunge $GLITE_LOCATION/bin
. $GLOBUS_LOCATION/etc/globus-user-env.sh
. /opt/vdt/setup.sh
こんな感じで環境変数とPATHを設定しておくべき.
この節の締めとしては,VDTコンポーネントのうちサーバとしてrunするものは一括して起動,停止ができる.serviceコマンドのVDT版だ.
[root@karasuma ~]# vdt-control --on
skipping cron service 'fetch-crl' -- marked as disabled
enabling init service mysql... ok
enabling cron service vdt-rotate-logs... ok
enabling init service apache... ok
enabling init service tomcat-5... ok
enabling init service voms... ok
ほうら,vomsサーバの立ち上がったYO!

4.Configuretion
さてここから厄介なのだがvomsの設定,所謂voを追加したり,vomsサーバを起動したりしなければいけない.まずすべき事は自分で立てるでもなんでも良いけど,このホストのホスト証明書を作らなければいけない.これはglobusのドキュメントを参照してもらうとしてさくさく進むよ.だってglobusのドキュメントはまだマシだからね.
ほいでVDTのドキュメントの中にvomsのドキュメントも含まれている.とても探しづらいけど,根気よく探してほしい.レイトン教授のパズル感覚で取り組んでほしい.答えはこれだ!
あ,それから重要なことなんだけどもGet service certificatesはちゃんとやっておく事.ホスト証明書のコピーね./etc/grid-certificate/httpに証明書がないと,vomsの設定手順,voms-adminで怒られるから.
> vdt-control --off voms
> /opt/vdt/vdt/setup/configure_voms --vo mlab-vo --server y
> vdt-control --on
voの追加.mlab-voね.
voms-admin --vo mlab-vo --url https://karasuma:8443/voms/mlab-vo/ create-user ~/.globus/usercert.pem assign-role VO VO-Admin ~/.globus/usercert.pem
mlab-voに僕のユーザの証明書を管理者として設定.
ちなみにhttps://karasuma:8443/にアクセスすると,Webブラウザ経由でvomsの管理ができちゃう.でもこれはユーザ証明書+秘密鍵をPKCS#12に変換してブラウザにインポートしておかないとダメなんだ.その方法はこの前書いた記事を参照して欲しい(x.509の証明書+秘密鍵→PKCS#12(備忘録)).
そして重要なのが1つ.vomsdirの存在.これってややこしいんだけど2種類ある.1つ目はmlab-voがどこのサーバを見るものなの?っつう設定ファイル的なvomsdirと,vomsサーバのホスト証明書を置く認証・認可のvomsdir.
1つめは環境変数VOMS_USERCONFとか設定しているからそれを参照するようになっている.
VOMS_USERCONF=/opt/vdt/glite/etc/vomses
これの中身はvo名がファイル名になっているファイルを置いておく.その中身は
"mlab-vo" "karasuma.ics.es.osaka-u.ac.jp" "15000" "/O=Grid/OU=GlobusTest/OU=simpleCA/CN=host/karasuma" "mlab-vo" "40"
こんな感じ.
2つめは/etc/grid-security/vomsdir.これの中身はvomsサーバのホスト証明書(生).vomsクライアントになるホストは全部入れておかないとダメみたいだよ.良いのかしら?
ちなみにhostcert.pemでもなんでもいいけど,複数のvomsを使うことを想定してファイル名はホスト名+.pemとかが無難.

5.おわりに
最後にvoms-proxy-initをして確認するよー.
[y-kido@karasuma vomsdir]$ voms-proxy-init -voms mlab-vo
Enter GRID pass phrase:
Your identity: /O=Grid/OU=GlobusTest/OU=simpleCA/OU=XXXXXXXXXX.ac.jp/CN=Yoshiyuki Kido
Creating temporary proxy ....................................................... Done
Contacting karasuma:15000 [/O=Grid/OU=GlobusTest/OU=simpleCA/CN=host/karasuma] "mlab-vo" Done
Creating proxy ............................................... Done
Your proxy is valid until Wed Oct 7 05:14:04 2009
[y-kido@karasuma vomsdir]$
VDTとかvomsとかのドキュメントを作った人はマジで反省しる.
comments
マスター date : 2010/05/23(Sun) 00:57:24 JST

質問があるんだったらメッセンジャーですればいいでしょ!
僕、あんまりこのページ見てないんだYO!

S date : 2010/05/15(Sat) 03:11:07 JST

とりあ〜えずぅ♪
教えてもらわんでも大丈夫ぅにな〜りま〜したぁ、ラララ♪

S date : 2010/05/12(Wed) 17:18:47 JST

おぅしぃえてぇ〜くだぁさい(さだまさし調)
MySQL での database 名はどうなっていますか?
voms_mlab_vo でっか?

$ mysql -u root -p
[...]
mysql> show databases;

S date : 2010/05/11(Tue) 01:02:56 JST

- VOMS core
- VOMS mysql
- GSI related
が最小構成なんではないかと。とは言え
- VOMS admin
がないと面倒かもしれませんな。VOMS client だけはもはや GSI をリンクしていないようです。一段落したらお知らせしますね。ほな。

マスター date : 2010/05/09(Sun) 00:28:04 JST

マジっすか!
てゆうか,戯れるにはハード過ぎますよ!

S date : 2010/05/06(Thu) 21:00:33 JST

戯れに手ぇ出すことにしてみました、VOMS。目指すは鳥 independent だYO!

NONAME date : 2010/03/11(Thu) 01:55:44 JST

スイスの偉いさんに話を聞いてみたら、gLite 版と VDT 版との違いはパッケージングであって、両者が与える機能は同じだよ、とのこと。
VOMS のインストールは大変ですよ〜、難しいですよ〜、と言ったら「私はもうずっとインストールはしてないYO!」だって :-)

マスター date : 2009/10/09(Fri) 12:45:13 JST

たぶん実装は違う気がする(もしかして同じソースでビルドしなおしているだけかもしれない.)
でもgLiteの縛り条件は異常.あと3.2と3.1でリリースコンポーネント違い過ぎ.
ちょっと使ってみようかなーって思っても,ディストリから入れ直し要求ってどんだけwwww

S date : 2009/10/09(Fri) 01:39:33 JST

gLite 版と VDT 版は、そもそも同じモン?
pacman + VDT が required software ちうのはいただけませんな…

マスター date : 2009/10/08(Thu) 13:56:10 JST

gLiteのやつも酷い.酷さで言うとあまりVDTと変わらんかもしれん.
glite3.2は64bit版しか出とらんし,glite3.1はSL4にしか(たしかmysqlのバージョンに縛りあり)対応しとらん.

S date : 2009/10/08(Thu) 13:46:17 JST

gLite でのモンより、VDT の方がええ感じなん?