プロジェクト別にSVNのリポジトリを分け、LDAPのグループとひも付けることにより、
他のプロジェクトのリポジトリへのアクセスができないように設定します。
※OpenLDAPの設定情報は
こちらをご参照ください。
【OpenLDAPサーバ】
OS: CentOS 6.3(64-bit)
openldap-servers: 2.4.23-26.el6_3.2
IP: 192.168.77.146
【Webサーバ】
OS: CentOS 6.3(64-bit)
Apache: 2.2.15
Subversion: 1.6.11
IP: 192.168.77.147
■subversionインストール
[root@web03 ~]# yum -y install subversion
(中略)
Package subversion-1.6.11-7.el6.x86_64 already installed and latest version
Nothing to do
[root@web03 ~]#
※すでにインストール済み。
■mod_dav_svnインストール
[root@web03 ~]# yum -y install mod_dav_svn
(中略)
======================================================================
Package Arch Version Repository Size
======================================================================
Installing:
mod_dav_svn x86_64 1.6.11-7.el6 base 79 k
Transaction Summary
======================================================================
Install 1 Package(s)
(省略)
※/etc/httpd/conf.d/subversion.conf が自動生成された。
■svnリポジトリ格納ディレクトリ作成
[root@web03 ~]# mkdir /var/www/svn
[root@web03 ~]# mkdir /var/www/svn/repos1
[root@web03 ~]# mkdir /var/www/svn/repos2
■svnリポジトリ作成
[root@web03 ~]# svnadmin create /var/www/svn/repos1/project_A
[root@web03 ~]# svnadmin create /var/www/svn/repos1/project_B
[root@web03 ~]# svnadmin create /var/www/svn/repos2/project_C
[root@web03 ~]# svnadmin create /var/www/svn/repos2/project_D
■所有者変更および確認
[root@web03 ~]# chown -R apache: /var/www/svn/
[root@web03 ~]# ll /var/www/svn/repos2/project_D/
合計 24
-rw-r--r-- 1 apache apache 229 2月 1 23:13 2013 README.txt
drwxr-xr-x 2 apache apache 4096 2月 1 23:13 2013 conf
drwxr-sr-x 6 apache apache 4096 2月 1 23:13 2013 db
-r--r--r-- 1 apache apache 2 2月 1 23:13 2013 format
drwxr-xr-x 2 apache apache 4096 2月 1 23:13 2013 hooks
drwxr-xr-x 2 apache apache 4096 2月 1 23:13 2013 locks
[root@web03 ~]#
※svnadminには削除するサブコマンドが用意されていなため、削除する場合はrmコマンドを利用する。
■subversion.conf設定
[root@web03 ~]# vi /etc/httpd/conf.d/subversion.conf
[root@web03 ~]# grep -v "^#\|^$" /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /repos1>
DAV svn
SVNListParentPath on
SVNParentPath /var/www/svn/repos1
AuthType Basic
AuthName "subversion authentication"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL ldap://192.168.77.146:389/ou=unit01,dc=open_ldap,dc=com?cn?sub?(objectClass=person)
Require valid-user
</Location>
<Location /repos2>
DAV svn
SVNListParentPath on
SVNParentPath /var/www/svn/repos2
AuthType Basic
AuthName "subversion authentication"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL ldap://192.168.77.146:389/ou=unit02,dc=open_ldap,dc=com?cn?sub?(objectClass=person)
Require valid-user
</Location>
[root@web03 ~]# /etc/init.d/httpd restart
※表示の都合上タグを"<"と">"で記載。
※「SVNListParentPath on」とするとリポジトリ一覧を表示可能。
■ブラウザからアクセス
https://192.168.77.147/repos1/
Basic認証の画面が表示され、OpenLDAPに登録したユーザでアクセスできるはず。
その後、
https://192.168.77.147/repos2/
にアクセスすると再びBasic認証画面が表示される。
■TortoiseSVNおよび日本語パックをダウンロード
※以下の情報はググればいくらでも出てくるので説明を簡略化します。
http://sourceforge.jp/projects/tortoisesvn/releases/ からOSに適合するインストーラをダウンロードする。
TortoiseSVNをダウンロードしてインストールする。
日本語パックをダウンロードしてインストールする。
■TortoiseSVN設定
※以下の情報はググればいくらでも出てくるので説明を簡略化します。
⇒日本語化設定
デスクトップ上で右クリック⇒「TortoiseSVN」⇒「Settings」で「Settings」ウィンドウを開き、Language→日本語
⇒リポジトリチェックアウト(ダウンロード)
デスクトップ上で右クリック⇒「SVNチェックアウト」で「チェックアウト」ウィンドウを開き、
リポジトリのURL⇒リポジトリのURL(例→ https://192.168.77.147/repos1/project_A/)
チェックアウトディレクトリ⇒クライアントマシン上の任意のフォルダ
「OK」ボタン押下して、作成したリポジトリがダウンロードされることを確認
⇒リポジトリコミット(アップロード)
クライアント上のリポジトリ内に適当なフォルダやファイルを作成する
リポジトリ上で右クリック⇒「SVNコミット」で「コミット」ウィンドウを開き、
「全て選択/全て非選択」をチェックして「OK」ボタン押下
※ユーザー名/パスワード入力画面にて、OpenLDAPで登録したユーザー名/パスワードを入力。
いったんクライアント上のリポジトリを削除後再度リポジトリチェックアウトを実施し、
リポジトリコミットした内容が反映されていることを確認