运维开发网

aliyun ECS SVN server搭建

运维开发网 https://www.qedev.com 2020-03-25 12:49 出处:网络 作者:运维开发网整理
在阿里云ECS上搭一个SVN服务器,方便文件版本控制     CentOS 7  64位   SVN 版本 1.7.14 (r1542130) 我们没有必要了解Subversion的所有特性的方方面面,我们的目的是使用它来对我们的project进行方便的简单的版本管理,因此,强烈推荐阅读Subversion Quick-Start Guid和Basic Usage。 首先通过软件包管理器添加 安装

在阿里云ECS上搭一个SVN服务器,方便文件版本控制     CentOS 7  64位   SVN 版本 1.7.14 (r1542130)

我们没有必要了解Subversion的所有特性的方方面面,我们的目的是使用它来对我们的project进行方便的简单的版本管理,因此,强烈推荐阅读Subversion Quick-Start Guid和Basic Usage。

首先通过软件包管理器添加 安装svn,也就是subversion. 用 rpm 或者 yum 都可以

yum -y install subversion

安装完成后在 shell窗口 输入 svn --version 如下显示就表示安装成功!

aliyun ECS SVN server搭建

安装成功之后,在/root/下会生成一个.subversion文件夹  也就是~/.subversion, 接下来

[[email protected] ~]# cd /root/.subversion

[[email protected] .subversion]# ls

config README.txt servers

# 创建svn 仓库文件夹repos 你可以创建在任意文件夹下 as you like

[[email protected] .subversion] mkdir repos/myrepo

# 建立svn 仓库

 

[[email protected] .subversion]# svnadmin create repos/myrepo

[[email protected] repos]# cd repos/myrepo

[[email protected] myrepo]# ls

[[email protected] myrepo]# conf db format hooks locks README.txt

# 导入项目

[[email protected] myrepo]# svn import ~/home/test/ file:///root/.subversion/repos/myrepo/ -m "init import"

正在增加 /home/test/css

正在增加 /home/test/css/default.css

正在增加 /home/test/index.html

提交后的版本为 1。

导入成功

当前我们已经对myrepo项目进行了初始化导入,此时原工程目录已经与myrepo脱离,这时候原目录删掉也没关系了

这时候我们已经可以在其他目录中checkout这个工程出来

svn co file:///root/.subversion/repos/myrepo /home/mytest

接下来需要对权限进行配置  进入myrepo/conf文件夹 ls

authz: 权限配置文件

passwd: 用户名口令文件

svnserve.conf svn服务配置文件

我希望权限和配置文件共用 可以建立svnserve.conf模板 然后建立一个新的仓库以后拷贝到新仓库目录下就可以了

这里

mkdir comm_conf

cp /root/.subversion/repos/myrepo/conf/*.* /root/.subversion/repos/comm_conf/

拷贝全部文件 到comm_conf文件夹后 编辑 comm_conf 配置

cd comm_conf

vi server.conf

anon-access = none #未验证不给予权限 不允许匿名访问 auth-access = write #验证后允许写入 password-db = /root/.subversion/repos/comm_conf/passwd #使用指定value值 文件数据为 用户名密码 authz-db = /root/.subversion/repos/comm_conf/authz #使用指定value值 文件数据为 用户组权限

创建svn组和组用户权限

vi authz

[group] #指定组下的用户 多个用逗号分隔 g1=lesten,lesten1 [/] #指定根目录下的权限 也可以指定特定目录下的权限 @g1 = rw #指定组g1 用户具有读写权限 * = r #其他用户 对根目录只有读权限 或者 [repos:/project] //根目录权限
lesten=rw

设置用户名和密码

vi passwd [users] lesten = ****** #指定用户名为lesten的密码为******

改完以后 用cp命令拷贝到对应仓库目录下去

cp server.conf ../myrepo/server.conf

一定要注意

(1)配置项前面不要留空格 不然可能有各种莫名其妙的错误 无法访问

(2)在 authz文件中 指定组和指定目录 之间是有中括号分隔的 一定要注意

我就是漏掉了 指定根目录权限的[/] 导致访问一直出现E170001: Unable to connect to a repository at URL ‘svn:*****‘ 踩坑踩了两个小时

对配置文件的填写一定要细心。

(3)对 authz 和 passwd 文件的修改是不需要重新svnserve服务的,对server.conf的修改则需要重启svnserve服务

全部填写完毕后

可以试着启动svn服务了

[[email protected] ~]# svnserve -dr /root/.subversion/repos/

参数-d表示以守护进程运行,-r后面接服务的根目录,如果需要绑定别的端口,则在后面加上--listen-port 端口号。

看看是否启动成功 pgrep svnserve 默认svn端口7690

[[email protected] ~]# pgrep svnserve

7599

[[email protected] ~]#

这个就是启动成功了 回显了进程pid 7599

重启的时候就可以 kill 7599 或者 直接 killall svnserve

然后重新 svnserve -dr 仓库目录

这时候已经可以用

[[email protected] ~]# svn co svn://localhost/myrepo --username lesten --password ****** 拉取工作副本了

5.  但是 如果要远程拉取 还需要在ECS后台添加安全组规则

 

aliyun ECS SVN server搭建

配置防火墙端口(如果需要):

不一定每个人都需要设置,可以先测试后再看是否需要打开端口

# vi /etc/sysconfig/iptables

添加一下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

保存后重启防火墙

# service iptables restart

 

设置svn开机启动

有关开机启动svn服务 参考: https://www.cnblogs.com/zengjiqiang/p/7413910.html

(1)在Linux服务器跟目录((/root路径下))创建一个脚本文件

#  touch svn.sh

(2) 进入脚本文件

# vim svn.sh

(3)添加一下内容

#!/bin/bash

/usr/bin/svnserve -d -r  /opt/svn/repositories

这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,安全起见 环境变量不加载。

(4)修改改该脚本的执行权限

# chmod 777 svn.sh (5)加入自动运行 # vi /etc/rc.d/rc.local 在末尾添加脚本的路径:

/root/svn.sh (6)重启Linux服务器,重启后查看svn服务器是否已经开启 #  ps -ef|grep svnserve 如果显示以下信息表示svn已经开启了 tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN

 

 

参考:   centos6.5 svn服务端搭建

         (有配置SVN服务器的HTTP支持 http配置) centos6.5环境下svn服务器和客户端配置实用详解

其他参考阿里云doc

参考文档一、https://help.aliyun.com/knowledge_detail/37789.html  

参考文档二、https://help.aliyun.com/document_detail/52864.html

0

精彩评论

暂无评论...
验证码 换一张
取 消