Subversion : 他ホストからアクセスする2021/06/18 |
他ホストから Subversion リポジトリにアクセスできるよう設定します。
|
|
[1] | Subversion リポジトリ作成済みのホストで [svnserve] サービスを起動します。 |
[root@dlp ~]#
vi /etc/sysconfig/svnserve # リポジトリを作成しているディレクトリの最上位階層を指定 # デフォルトは以下だが必要に応じて変更可 # Specify the repository location in -r parameter: OPTIONS="-r /var/svn" # テストプロジェクト作成 [root@dlp ~]# mkdir -p /var/svn/repos/project [root@dlp ~]# svnadmin create /var/svn/repos/project [root@dlp ~]# svn mkdir file:///var/svn/repos/project/trunk -m "create" [root@dlp ~]# svn mkdir file:///var/svn/repos/project/branches -m "create" [root@dlp ~]# svn mkdir file:///var/svn/repos/project/tags -m "create" |
[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 { append create lock rename setattr unlink write }; class dir { add_name create read remove_name rmdir write }; class capability { chown dac_override fsetid }; } #============= svnserve_t ============== allow svnserve_t self:capability { chown dac_override fsetid }; allow svnserve_t var_t:dir { add_name create read remove_name rmdir write }; allow svnserve_t var_t:file { append create lock rename setattr unlink write }; 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 リポジトリにアクセスします。 例として、[1] で作成したテストプロジェクト [/var/svn/repos/project] へアクセスします。 なお、デフォルトでは読み取りアクセス権のみのため、[commit] 等は実行不可です。 [commit] したい場合は [svn://] アクセス時のアクセス権の設定が必要です。 |
# 階層の指定は [1] で SVN トップの階層に指定したディレクトリからの相対パス # 当例の場合 # トップの階層 : [/var/svn] # リポジトリの階層 : [/var/svn/repos/project] # 相対パス : [repos/project] [cent@node01 ~]$ svn list svn://dlp.srv.world/repos/project branches/ tags/ trunk/[cent@node01 ~]$ mkdir ./work [cent@node01 ~]$ svn checkout svn://dlp.srv.world/repos/project ./work A work/branches A work/tags A work/trunk Checked out revision 3.[cent@node01 ~]$ ll work total 0 drwxrwxr-x. 2 cent cent 6 Jun 17 20:08 branches drwxrwxr-x. 2 cent cent 6 Jun 17 20:08 tags drwxrwxr-x. 2 cent cent 6 Jun 17 20:08 trunk |
[5] | Subversion サーバー側で [svnserve] サービスを起動せずに、SSH 経由でアクセスすることも可能です。 |
[cent@node01 ~]$ svn ls svn+ssh://cent@dlp.srv.world/var/svn/repos/project cent@dlp.srv.world's password: branches/ tags/ trunk/[cent@node01 ~]$ mkdir ./work2 [cent@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 Checked out revision 3. |
Sponsored Link |