2007年09月22日

GHeimdallが少しだけわかってきた

先日、GHeimdallをopenSUSE10.2に入れようとして不調に終わったので今度は動作確認済みのCentOS5に入れてみました。やっぱり確認済みだけあってさくさく入りますね。必要なライブラリ類もyumで結構入れられたので楽でした。
まだ完全に動いているわけでは無いのですがGHeimdall部分に関しては概ね動作確認出来ました。そんなわけで参考になるかわかりませんが、私がつまづいたところを少し書いてみます。(以下の記述はすべてGHeimdall-0.9.2.1)

・SELinux
最初に入れてみてもエラーが出るのみで全く動かない。変だなぁと思ってログを見てみたらなにやらSELinuxがアクセス拒否していました。無用なトラブルが起こりそうなのでとりあえず設定が終わるまではSELinuxは無効にすることに。

・設定ファイル
説明には設定ファイルの説明がありますがその設定ファイルがどこにあるかがどうやら書いていない。探してみたところこれは
解凍ディレクトリ/gheimdall/config/app.cfg
のようです。

・鍵ペアファイル
認証の為に公開暗号キーファイルを作らないといけません。このキーファイルの作り方は説明に書いてあります。が、説明に記載されているファイル名が、最初のファイル作成の方での方は“privkey-nopass.pem”となっていますが後の設定の方では“privkey_nopass.pem”と記載されています。ものすごい細かいどうでも良いことだと思いますが、猿真似した私は思いっきりはまりました(汗

・Python Eggのキャッシュ
Python Eggを使うためのキャッシュディレクトリが私の環境だと/root/.python-eggsに設定されてしまいました。当然/rootの下だとapacheからは参照できずにパーミッションエラーになります。/root以下をapacheに解放すれば動くと思いますがさすがにそれではセキュリティに問題があるのでなんとかキャッシュディレクトリの方を動かしたいところ。
調べてみると、環境変数のPYTHON_EGG_CACHEを指定すれば良いようなので、/etc/httpd/conf.d/gheimdall.conf内に
SetEnv PYTHON_EGG_CACHE /tmp/.python-eggs
を追加してみたのですが変わらず。
いろいろ調べてみてもわからないのでやむなく大本のプログラムの設定を直接書き換えることにしました。具体的には
/usr/lib/python*/site-packages/setuptools-*.egg/pkg-resources.py
の中(*はバージョンの数字。環境によって違うと思います)
return os.path.expanduser('~/.python-eggs')
return os.path.expanduser('/tmp/.python-eggs')
に書き換え。これでキャッシュディレクトリを動かせました。
ただし、これはあくまでも対症療法で本来はどこかの設定ファイルで指定するのが好ましいのでもう少し調べてみます。

・とりあえずの動作確認
ここまで設定してようやくGHeimdallのログイン画面を拝むことが出来ました。が、残念ながら認証は通らず。ログを見てみるとpamの関係で認証エラーが。どうやらpamの設定ファイルの記述がおかしいみたいです。そんな状態で何か動作確認出来るものは無いかな、と見てみると認証モジュールのところで“pam”、“ldap”の他に“sample”なるものを発見。ソースを覗いてみると、どうやらどのユーザーであってもパスワードを“good”と入れれば認証が通るようになっている模様。早速認証モジュールにsampleを指定してパスワードにgoodと入れると、無事にログインできました。これでとりあえずGHeimdallの部分は問題なく動いていることが確認できました。

そんな感じでようやく少しわかってきた感じです。あとはpam周りの設定を見直してなんとかしたいところです。また、今回CentOSで導入してSUSEとの違いが解ってきましたのでこれをふまえてSUSEへの導入も再挑戦してみます。
posted by 7K4OWM at 22:37| 🌁| Comment(5) | TrackBack(0) | 資源の無駄遣い | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
とりあえず動いて良かったです。ご指摘の点はドキュメントに反映させたいと思います。CentOS5用のRPMの作業はまだ続いています。とろくて済みません(_ _)

GHeimdallはまだ一人前のソフトウェアとして足りない点がたくさんある子なので、このような記事があるとたいへんありがたいです。

これからも、疑問とかおしかりなどあればお気軽に書いてください。RSSを購読しますので、このBlogでお書きになっても良いですし、Google Group でのメーリングリストもありますので、そちらにメールしていただいても構いません。

http://groups.google.com/group/gheimdall-ja

ところで、認証のバックエンドは何をお使いですか。もしかしてActiveDirectoryでしょうか。

そうでなくてopenldapなどを使うのであれば、認証モジュールは ldap を使うのが単純で良いと思います。

ADなら、ActiveDirectoryをldapとして動作させて、認証モジュールにldapを使うか、linuxの方で pam の設定を(krb5を使って)した上で、認証モジュールにはpamを使用するかのどちらかになると思います。
Posted by tmatsuo at 2007年09月24日 12:08
こんばんは。
今日、無事に認証の設定が完了しました。
当方の環境はActive Directoryですのでpam_krb5経由での設定を行いました。

本当はLDAPとして動作させてみたいのですが、サーバがWindows2000なので厳しいかな、と思っています。

とりあえず一通りの設定が出来ましたので明日以降、SUSEの方で再度挑戦をしてみたいと思います。

ちなみに認証の際、存在しないユーザを入力するとInternal Server Error 500になってしまうのですが、これは私の設定が悪いのでしょうかね。
Posted by 7K4OWM at 2007年09月25日 23:20
おお。もうほぼ動いていらっしゃるのですね。良かったです。

マニュアルにも書きましたが、わたしのところではPyPAM-0.5.0がdouble freeで落ちる事がありました。

余計なfreeと思われるものを抑制するようにしたパッチがありますので、もしご入用でしたらご連絡ください。

ただそれでも少しメモリリークしてた(たしかPyPAMが)ので、GHeimdallはmod_pythonで動かした方が安全と思います。Apache側で、プロセス毎の最大処理数(だったと思います)を設定すれば、多少のメモリリークは大丈夫です(ぉぃ
Posted by tmatsuo at 2007年09月26日 10:18
CentOS5 用の yum repository ができました^^

http://code.google.com/p/gheimdall/wiki/GHeimdallOnCentOS5
を見ていただければ使い方はお分かりになると思います。これでインストールがとても簡単になりました(CentOSとRHELでしか動作確認していませんが...)。

もし良かったらお試しくださいませ。
Posted by tmatsuo at 2007年10月03日 11:45
こんばんは。
これでインストールが簡単になりますね。次回CentOSにインストールする際は是非利用させていただきます。

目下SUSEにインストールしようとして四苦八苦しているところです。Pythonのバージョンを合わせるべく色々といじってなんとか動きそうな感じですが、肝心のGoogle Appsの方のサーバが調子が悪くて、ここ数日SSO関連の設定が出来ない状態です。
ですので動作確認は来週に持ち越しになりそうです。
Posted by 7K4OWM at 2007年10月04日 23:38
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック