SVN的搭建使用,这里仅作记录,含蓄较少
环境:
系统 | CentOS6.5 |
源 | 阿里源 |
版本 | subversion-1.6.11-15.el6_7.x86_64 |
配置YUM源:
cd /etc/yum.repos.d;mkdir backup;mv * backup/ curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo yum clean all && yum makecache
安装Subversion:
yum install subversion -y ##默认已经系统已经安装,可以执行此命令进行1.6X小版本升级
创建svn目录:
创建svn的数据目录及权限目录 mkdir -p /data1/svndata ##数据目录
管理SVN:
启动svn: svnserve -d -r /data1/svndata/ 停止svn: pkill svnserve ##或者killall svnserve和kill -9 PID
配置SVN:
创建运维专用的文档库:sadoc svnadmin create /data1/svndata/sadoc 创建一个网页项目代码库:www svnadmin create /data1/svndata/www
分析目录结构:
[root@CentOS6-1 svndata]# tree -L 1 ./* ./sadoc ├── conf ##配置文件及密码权限配置 ├── db ##数据库的存储位置 ├── format ├── hooks ##钩子文件目录 ├── locks ##锁文件 └── README.txt [root@CentOS6-1 svndata]# tree -L 2 sadoc sadoc ├── conf │ ├── authz ##权限管理文件 │ ├── passwd ##用户管理文件 │ └── svnserve.conf ##sadoc中心管理库局部配置文件 ...
修改sadoc的局部配置文件(修改svnserve.conf需要重启服务生效)
[root@CentOS6-1 conf]# egrep -v "^#|^$" svnserve.conf [general] anon-access = none ##匿名用户访问不允许,默认是read可读 auth-access = write ##通过验证的用户可写 password-db = passwd ##指定密码文件位置,可以指定全局路径(/data1/svnpasswd/authz),可以多个中心库共用一个密码文件 authz-db = authz ##指定权限配置文件位置,可以指定全局路径(/data1/svnpasswd/authz),可以多个中心库共用一个权限文件 [sasl]
为sadoc中心管理库新建a1和a2用户(这一步一定注意配置文件的格式空格及位置之类,修改即可生效无需重启服务)
[root@CentOS6-1 svnpasswd]# tail -n 5 passwd ##passwd只是管理用户,并不负责权限管理 [users] # harry = harryssecret # sally = sallyssecret a1 = 123 ##密码此处弱口令,企业一定强口令 a2 = 123 [root@CentOS6-1 svnpasswd]# egrep -v "^#|^$" authz ##配置权限 [aliases] [groups] ops = a1,a2 ##多个用户可以定义一个ops组,用户间","隔开,调用时@ops即可,一定卸载groups模块下位置不可乱 [sadoc:/] ##sadoc主干的权限 @ops = rw ##ops组在主干上具备可读写权限,并且无特殊修改默认向下级目录继承权限 [sadoc:/docker] ##sadoc主干下的二级目录docker进行权限配置 a1 = r ##此处docker二级目录a1用户权限为r,a2用户对此目录rw(a2虽然没写,但是会由主干向下继承) [sadoc:/python] a2 = r
防火墙权限配置
iptables -A INPUT -p tcp -s 172.18.0.0/24 --dport 3690 -j ACCEPT iptables -A OUTPUT -p tcp -s 172.18.0.0/24 --sport 3690 -j ACCEPT
SVN管理脚本
将脚本加入到/etc/init.d/下即可
[root@CentOS6-1 ~]# cp svnd /etc/init.d/ [root@CentOS6-1 ~]# chkconfig --add svnd [root@CentOS6-1 ~]# chkconfig svnd on [root@CentOS6-1 ~]# cat svnd #!/bin/bash # #chkconfig:345 85 15 #description: Start and stops the SVN Server. export LANG="en_US.UTF-8" PID=`netstat -tunlp|grep 'svnserve'|awk -F '[ /:]+' '{print $9}'` PORT=`netstat -tunlp|grep 'svnserve'|awk -F '[ /:]+' '{print $5}'` RUN_STATUS=`netstat -tunlp|grep 'svnserve'|wc -l` PID_FILE="/var/run/svnd.pid" SVNDIR="/data1/svndata" . /etc/init.d/functions function start(){ if [ -f ${PID_FILE} ] then echo "服务正在运行..." else /usr/bin/svnserve -d -r ${SVNDIR} /bin/echo $PID > ${PID_FILE} if [ $? -eq 0 ] then action "启动中..." /bin/true else action "启动中..." /bin/false fi fi } function stop(){ if [ ${RUN_STATUS} -eq 0 ] then echo "服务未在运行..." else pkill svnserve if [ $? -eq 0 ] then rm -rf ${PID_FILE} action "停止中..." /bin/true else action "停止中..." /bin/false fi fi } function restart(){ stop start } function status(){ if [ -f ${PID_FILE} ];then echo "服务正在运行,端口号:$PORT,进程号:$PID" else echo "服务未在运行.." fi } function main(){ if [ $1 = "start" ];then start elif [ $1 = "stop" ];then stop elif [ $1 = "restart" ];then restart elif [ $1 = "status" ];then status fi } main $*
==================================================================
============================= 客户端 ===============================
命令行使用
参考: https://blog.csdn.net/xujingzhong0077/article/details/49908603
https://www.cnblogs.com/liwanggui/archive/2016/06/28/5624147.html
检出: svn co svn://172.18.0.133/sadoc /tmp/sadoc/ --username a1 --password 123 --no-auth-cache 添加文件: cd /tmp/sadoc svn add salt_install.sh svn ci -m "2018年新上传的salt自动化脚本" /tmp/sadoc/salt_install.sh --username a1 --password 123 --no-auth-cache 删除文件: svn delete svn://172.18.0.133/sadoc/README --username a1 --password 123 --no-auth-cache 查看分之下的文件: svn ls svn://172.18.0.133/sadoc/