さくらのVPS設定[10]-SVNレポジトリの作成

SVNをFTPのちょっと進化したくらいな気軽さで簡単に使えないかと設定しようとして思いの外はまってしまったのでメモをしておく。

主に参考にさせていただいたのは以下のサイトだ。
[Linux]10分で作る、Subversionレポジトリ (CentOS 版)
Subversion導入ツアー


ユーザーとレポジトリの作成
さくらのVPSで使われているCentOS6.2だとSVNそのものは最初から入っていたので、まずはSVNで使用するユーザー作成から行う。Subversion導入ツアーを参考に以下のようにした。

$ sudo useradd -M -r -s /sbin/nologin svnadmin

-Mはホームディレクトリ無し
-rはシステムアカウントを生成
-sはログインシェルの指定

次にレポジトリの作成をする。
ディレクトリは/var/svn以下にしておいた。
テストなのでtestrepoと名前を付けておき以下にSVNのお作法通りにtrunk,branches,tagsディレクトリを置いた。

$ sudo mkdir /var/svn
$ cd /var/svn
$ mkdir testrepo
$ sudo mkdir testrepo
$ sudo svnadmin create testrepo
$ sudo svn mkdir file:///var/svn/testrepo/{trunk,branches,tags} -m 'setup dir'

xinetdのインストールと設定
サーバーはsvnserveをxinetd経由で動かすことにする。
xinetdについてはコチラを参考にさせて頂いた。
さくらのVPS CentOSでサーバ構築 14 – xinetd
インストールと自動起動設定をする。

$ sudo yum install xinetd
$ /etc/init.d/xinetd start
xinetd を起動中: [  OK  ]
$ sudo chkconfig xinetd on
$ chkconfig --list xinetd
xinetd 	0:off	1:off	2:on	3:on	4:on	5:on	6:off

xinetd.dにsvnの設定をする。only_fromはあとで自宅のアドレスを調べて設定する。

$ sudo vi /etc/xinetd.d/svn
# default: off
# description: The svnserve server is a Subversion server.
service svn
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = svnadmin
        server          = /usr/bin/svnserve
        server_args     = -i -r /var/svn
        log_on_failure  += USERID
        #only_from       = 192.168.24.0/24 127.0.0.1
}

ファイヤーウォールの設定
svnserveは3690を使うのでポートを空ける。

$ sudo vi /etc/sysconfig/iptables
#この行を追加する。
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3690  -j ACCEPT

ファイヤーウォールを再起動し反映されているか確認する。

$ /etc/rc.d/init.d/iptables restart
$ iptables -L

svnserveの設定
checkoutやcommitできるメンバーを限定したいので、svnserve.confを書き換える。

$ sudo vi /var/svn/testrepo/conf/svnserve.conf
anon-access = none
auth-access = write
password-db = passwd

続いてpasswdを編集してログインできるユーザを限定する。

$ sudo vi /var/svn/testrepo/conf/passwd
  harry = harryssecret

次にレポジトリの所有者を変更する。これを変更しておかないとcommitの時に警告が出てくる。

$ sudo chown -R svnadmin /var/svn/testrepo

以上で、SVNクライアントから接続しCheckoutしたりCommitしたりできるようになる。

Submit a Comment

Spam Protection by WP-SpamFree