CentOS 7.2 快速搭建SVN 服务(多项目管理方案)
南宫俊逸2019-04-20运维基础1568 浏览
CentOS 7.2 快速搭建SVN 服务(多项目管理方案)
一、安装SVN
#安装SVN服务器
yum install subversion
#在home下创建svn根目录
mkdir /home/svnroot
#在 /home/svnroot下创建Project1 , Project 2, Project3 三个项目文件夹,这三个文件夹要存放不同项目的SVN版本库。
#在 /home/svnroot中创建 CodeAuth 文件夹,该文件夹将保存 passwd 和authz文件。
mkdir /home/svnroot/CodeAuth
#创建项目
cd /home/svnroot
svnadmin create Project1
svnadmin create Project2
svnadmin create Project3
分别创建了三个项目的版本库,版本库目录conf中存在passwd 、authz、和 svnserve.conf 文件
passwd – 用于存放本svn库的用户名和密码
authz – 存放本svn库的访问授权信息
svnserve.conf 文件为存放本svn库的全局访问控制信息
#将passwd 、authz文件拷贝到/home/svnroot/CodeAuth中,将三个项目下conf目录中的passwd 和 authz文件删除.
#修改 三个项目中conf目录下的svnserve.conf 文件,可以修改一个项目下的svnserve.conf 文件,然后把它覆盖到其他两个项目下的svnserve.conf 文件。
svnserve.conf 修改为
[general]
anon-access = none
auth-access = write
password-db = /home/svnroot/CodeAuth/passwd
authz-db = /home/svnroot/CodeAuth/authz
#修改/home/svnroot/CodeAuth下的passwd文件为
[users]
admin=admin001
#修改/home/svnroot/CodeAuth下的Authz文件为
[groups]
admin_group=admin
[Project1:/]
@admin_group=rw
*=
[Project2:/]
@admin_group=rw
*=
[Project3:/]
@admin_group=rw
*=
#说明:
“*” 是指所有人,“=” 后面表示权限。
“=”后面有3种情况
空:表示没有任何权限
r:表示只读权限
rw:表示读写权限
如:
* =
user1 = r
user2 = rw
这三行合起来就表示user1这个用户拥有只读权限,user2这个用户拥有读写权限,除此之外的其他人员没有任何权限。
二、设置SVN开机自启动
1、subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置。
1. #svnserve.service文件的具体地址
2. # /usr/lib/systemd/system/svnserve.service
3. [Unit]
4. Description=Subversion protocol daemon
5. After=syslog.target network.target
6.
7. [Service]
8. Type=forking
9. EnvironmentFile=/etc/sysconfig/svnserve
10.#也可以用这种方式,这种方式的话就不需要进行第2步的操作了,但本人没试过
11.#ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -d -r /server/svn/repo #一定要写svnserve命令的绝对路径
12.
13.#我用的这种方式
14.ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
15.
16.[Install]
17.WantedBy=multi-user.target
2、我们修改/etc/sysconfig/svnserver
1. vim /etc/sysconfig/svnserve
将默认目录指定到/home/svnroot/
1. OPTIONS="-r /home/svnroot/"
3、说明:
[Unit]:服务的说明
Description:描述服务After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间注意:
[Service]的启动、重启、停止命令全部要求使用绝对路径
4、服务命令:
启动svnserve服务
systemctl start svnserve.service
设置开机自启动
systemctl enable svnserve.service
停止开机自启动
systemctl disable svnserve.service
查看服务当前状态
systemctl status svnserve.service
重新启动服务
systemctl restart svnserve.service
查看所有已启动的服务
systemctl list-units --type=service
发表评论