SVN + LDAPな連携方法
SVN(Subversion)とLDAPの連携(Apache)をやったので書き置き。
これもすんなりはやらせてもらえず・・・悩みました。
さて、今回はこんな感じな流れで説明していこうかと。ただしガンガン省略して、設定ファイルばっかり書いてくよ。
- LDAPのインストール
- SVNのインストール
- LDAPとSVNの連携
ではではやってきましょう。とはいえ、LDAPインストールはスキップ。各自ぐぐってください。
SVNのインストール
飛ばしてもいいかなと思ったけど、簡単なので一応書いとく。
Subversionは単独でも動かせるけど、今回はApacheのBasic認証(LDAP)を利用するので、Apache連携なSVNのインストールをしようと思う。
とはいえ、ほとんど書く必要ないほど簡単。
まずはリポジトリにしたいディレクトリを作成。それをApacheから見えるようにして、Apacheにちょっと設定するだけ。
# mkdir /var/svn #適宜変えてね!
# cd /var/svn
# svnadmin create repos
# chown -R apache:apache /var/svn
# vim /etc/httpd/conf/httpd.conf
...
<Location /svn>
DAV svn
SVNPath /var/svn/repos
</Location>
...
てな感じで。とっても簡単でイイネ!
あ、モジュールとかが足りなかったらちゃんと追加しとくのを忘れずに。
LoadModule dav_svn_module extramodules/mod_dav_svn.so
ここまでできたらhttp://yourhost.com/svn/repos
でアクセスできるはずだよ。
LDAPとSVNの連携
次は連携。基本的にApache側に設定していく。さっきのLocationのところに追記する感じかな。
自分の環境はApache2.2だったんだけど、ネットに晒されてる設定じゃうまくいかなかった。いろいろ工夫するうちに以下でおさまった。
<Location /svn>
DAV svn
SVNParentPath /var/svn/
AuthType Basic
AuthBasicProvider ldap
AuthName "Subversion Test"
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://yourldaphost.com:389/ou=people,dc=xxxxxx,dc=com?uid"
AuthLDAPBindDN "ログイン名"
AuthLDAPBindPassword "パスワード"
Require valid-user
</Location>
これで完了!http://yourhost.com/svn/repos
で試してみてくださいな。
ちなみにAuthLDAPURLの書式はこのページあたりを参照すると吉。
うまくいかないときはLogLevelをdebugとかに変えるといい。