CentOS7にSubversionを導入し、Windowから接続する

<記事概要>

前記事でJenkinsをCentOS7に導入した。Jenkinsで自動ビルドするにあたって、バージョン管理システムを導入する必要がある。Gitが主流かもしれないが、今回はSVNで。リポジトリへのアクセスはsvn://プロトコルを利用する。Window端末にはSVNクライアントとしてTortoiseSVNがインストール済の前提。

<動作環境>

■SVNクライアント
OS:Windows10
SVNクライアント:TortoiseSVN

■SVNリポジトリサーバ
OS:CentOS7
バージョン管理システム:Subversion

<作業手順>

リポジトリの作成

Subversionのインストール手順は割愛。「svn」というテスト用のLinuxユーザを作成し、以下コマンドを実行。リポジトリの作成場所は”/home/svn/repos”。実行コマンドにroot権限が必要な場合は適宜ユーザを切り替える。

# 任意の場所にリポジトリの作成
svnadmin create /home/svn/repos

# リポジトリ配下に慣例としてtrunkを作成
svn mkdir file:///home/svn/repos/trunk -m 'create trunk'

設定ファイルの変更

変更の必要があるファイルは以下。自宅で使う環境なので変更は最低限のもの。
①/home/svn/repos/conf/svnserve.conf
②/home/svn/repos/conf/passwd
③/etc/sysconfig/svnserve

①/home/svn/repos/conf/svnserve.confの設定値
・ユーザの権限設定
設定ファイル内の[general]セクションに以下記述を追加。匿名アクセスに対してはリポジトリの読み込みのみ許可、認証されたユーザに関しては書き込みも許可する設定となる。認証は②のファイルで設定したユーザとパスワードで行う。

#/home/svn/repos/conf/svnserve.confの設定値
[general]
anon-access = read
auth-access = write

②/home/svn/repos/conf/passwdの設定
・認証用のユーザとパスワードを設定
今回はユーザsvnでリポジトリにアクセスする想定であり、以下形式で認証情報を記載
ユーザ = パスワード

③/etc/sysconfig/svnserve
この設定ファイルには、svnserveの起動時に読み込む設定を記述する。svnserveとはSVNクライアントからの要求を処理するデーモンプロセスである。ファイルの場所は環境によって異なるみたい。以下記述を設定ファイルに記載。
1行目でリポジトリの仮想ルートを設定。マニュアルから説明を抜粋すると「クライアントからの URL 中のパス名は、このルートからの相対パスと解釈され、その外側にアクセスすることを許しません。」とのこと。例えば、SVNクライアントからの リクエストが”svn://リポジトリサーバのIPアドレス/trunk”だったら、”/home/svn/repos/trunk”にアクセスすることになる。
2行目はSVNクライアントのアクセスユーザの設定。デフォルトでは”apache”ユーザとなる。
3行目はSVNクライアントのアクセスグループの設定。こちらもデフォルトでは”apache”ユーザとなる。

#/etc/sysconfig/svnserveの設定
OPTIONS="-r /home/svn/repos"
SVNSERVE_USER="svn"
SVNSERVE_GROUP="svn"

SVNクライアントからリポジトリへアクセス

リポジトリアクセス前に、ポートの解放とsvnserveデーモンプロセスを起動する必要があるため、以下コマンドを実行。

#SVNのデフォルトポート3690の解放
firewall-cmd --add-port=3690/tcp

#svnserveデーモンプロセスを起動
systemctl start svnserve.service

コマンド実行後TortoiseSVNでリポジトリに接続。リポジトリURLに”svn://リポジトリサーバのIPアドレス/trunk”を指定。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です