2015年11月8日日曜日

centos7にSVN1.8とsvnserveを導入する

仕事では、Maya等のテクニカル対応のほかに、実はファイルサーバーやSVNの管理などもやっております。
…とはいえ、サーバー周りの技術なり知識は、今の職場に来てから習得した…というよりも習得中(…汗)なので、正直な話、ずぶの素人と大してかわんないんですけど。
ともあれ、やらねばならぬ、ということで、やってます。

で、今回はSVN対応の話。仕事でsvnserveの対応をしたのですが、細かなところでつまづくところがありましたので、メモの意味もふくめ、僕の対応手順を書き記すことにしました。


サーバーはLinuxでCentOS7。クライアントはwindows7。
クライアント側にすでにインストールされていたsvnが1.8だったので、svn1.8でsvnserve対応をする必要がありました。

そんなわけで、僕が行った手順は以下の通りです。
~~~~~~~~
① SVN1.8の導入
→通常インストールでは1.7が入るため、WandiscoRPMリポジトリから落とす。

参考サイト:CentOS 6でsubversionのバージョンを上げる
http://www.torutk.com/projects/swe/wiki/CentOS_6でsubversionのバージョンを上げる

② 競合するSVN1.7をアンインストール
 # yum remove package name
        →svn1.7とライブラリ周りが競合したので、アンインストール

③ svnserveを起動
参考サイト:subversionのインストール(CentOS,svnserve)
http://blog.myspoon.info/2011/07/subversioncentossvnserve.html
→すでにリポジトリは作成済みだったため、上記記事のうち、リポジトリ作成部分・アクセス権部分は割愛
→service svnserve STATUSでsvnserveの起動状況を確認しつつ…
→svnserve –d –r ルートパス で起動

④ リポジトリのフォルダ内の、confフォルダの中身…
svnserve.conf …を編集
   [general]
   anon-access = read →ユーザー認証なしの人:読み込みのみ
   auth-access = write →ユーザー認証ありの人:読み書きOK
   password-db = passwd →パスワード定義ファイルの名前
   authz-db = authz →ユーザーごとのアクセス権設定ファイルの名前
   realm = My First Repository →認証の名前

「password」 …を編集
   [users]
   testUser = testuser

「authz」 …を編集
   [groups]
   superUser = testUser    ←ユーザーをグループに分ける

   [/]
   @superUser = rw   ←グループごとにアクセス権を設定
   * = r

⑤ ポートの開放
   参考サイト:http://blog.layer8.sh/ja/2011/12/28/subversionのサーバーをsvnserveで構築する/
                 →このあと、#servuce iptables restartで再読み込み

~~~~~~~~
…ひとまず、この手順でsvnserveの起動が確認でき、RedmineやJenkins、TortoiseSVNから「svn://...」でアクセスすることができました。
あとは起動スクリプトに svnserveを起動するスクリプトを追加して、OSが立ち上がる際に自動でsvnserveも起動するように設定して、完了です。

あと、余談ですが、SVNやRedmineをLinuxサーバーで運用していて思ったのですが、
Centos7でSVNサーバーを運用するのは、現状ではまだ避けたほうがいいんじゃないか、ということです。
Centos7だとsvn1.8 webDAVがリリースされていないのか、wandiscoのリポジトリなどを探しても見当たらず、webdav認証が出来ずにすごく苦労しています。
←結局、アクセス権は、svnserveか、sambaを介して行っているのが現状です。

ただし、Centos6ではsvn1.8のwevdavがリリースされていたり、また、様々なノウハウも蓄積していて、web上のドキュメントも多いです。
Centos7ではなく、centos6を選択したほうが現状ではまだ有利だったかもしれません…。