SVN(一)安装与基本配置

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 $*


==================================================================

=============================  客户端   ===============================


win客户端使用:TortoiseSVN(小乌龟)

命令行使用

参考:  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/
相关文章
相关标签/搜索