CentOS 8
Sponsored Link

Subversion : 他ホストからアクセスする2020/03/25

 
他ホストから Subversion リポジトリにアクセスできるよう設定します。
[1] Subversion リポジトリ作成済みのホストで [svnserve] サービスを起動します。
[root@dlp ~]#
vi /etc/sysconfig/svnserve
# リポジトリを作成しているディレクトリの最上位階層を指定

# デフォルトは以下だが必要に応じて変更可

# Specify the repository location in -r parameter:
OPTIONS="-r /var/svn"
[root@dlp ~]#
systemctl enable --now svnserve

[2] Firewalld を有効にしている場合は、SVN サービスの許可が必要です。SVN は [3690/TCP] を使用します。
[root@dlp ~]#
firewall-cmd --add-service=svn --permanent

success
[root@dlp ~]#
firewall-cmd --reload

success
[3] SELinux を有効にしている場合は、ポリシーの変更が必要です。
当例では [/var/svn] をリポジトリ階層にしているため以下の内容となっていますが、[/var] 以外の場合は内容が異なるため、適宜変更が必要です。
[root@dlp ~]#
vi svn-server.te
# 以下の内容で新規作成

module svn-server 1.0;

require {
        type svnserve_t;
        type var_t;
        class file { getattr open read };
        class capability { chown dac_override fsetid };
}

#============= svnserve_t ==============
allow svnserve_t self:capability { chown dac_override fsetid };
allow svnserve_t var_t:file { getattr open read };

[root@dlp ~]#
checkmodule -m -M -o svn-server.mod svn-server.te

checkmodule: loading policy configuration from svn-server.te
checkmodule: policy configuration loaded
checkmodule: writing binary representation (version 19) to svn-server.mod
[root@dlp ~]#
semodule_package --outfile svn-server.pp --module svn-server.mod

[root@dlp ~]#
semodule -i svn-server.pp

[4] 任意の他ホストから、作成済みの Subversion リポジトリにアクセスします。
例として、作成済みの [/var/svn/repos/project] へアクセスします。
なお、デフォルトでは読み取りアクセス権のみのため、[commit] 等は実行不可です。
[commit] したい場合は [svn://] アクセス時のアクセス権の設定が必要です
# 階層の指定は [1] で SVN トップの階層に指定したディレクトリからの相対パス

# 当例の場合

# トップの階層 : [/var/svn]

# リポジトリの階層 : [/var/svn/repos/project]

# 相対パス : [repos/project]

[redhat@node01 ~]$
svn list svn://dlp.srv.world/repos/project

branches/
tags/
trunk/

[redhat@node01 ~]$
mkdir ./work

[redhat@node01 ~]$
svn checkout svn://dlp.srv.world/repos/project ./work

A    work/branches
A    work/tags
A    work/trunk
A    work/trunk/index.html
A    work/trunk/testfile.txt
A    work/trunk/testscript.py
A    work/trunk/testtool.sh
Checked out revision 4.

[redhat@node01 ~]$
ll work

total 0
drwxrwxr-x. 2 redhat redhat  6 Mar 23 22:37 branches
drwxrwxr-x. 2 redhat redhat  6 Mar 23 22:37 tags
drwxrwxr-x. 2 redhat redhat 84 Mar 23 22:37 trunk
[5] Subversion サーバー側で [svnserve] サービスを起動せずに、SSH 経由でアクセスすることも可能です。
[redhat@node01 ~]$
svn ls svn+ssh://cent@dlp.srv.world/var/svn/repos/project

cent@dlp.srv.world's password:
branches/
tags/
trunk/

[redhat@node01 ~]$
svn co svn+ssh://cent@dlp.srv.world/var/svn/repos/project ./work2

cent@dlp.srv.world's password:
A    work2/branches
A    work2/tags
A    work2/trunk
A    work2/trunk/index.html
A    work2/trunk/testfile.txt
A    work2/trunk/testscript.py
A    work2/trunk/testtool.sh
Checked out revision 4.
関連コンテンツ