svn从windows server 2008 迁移至 centos7

目录

背景信息
操作步骤
步骤一:windows server 导出svn的库

步骤二:centos安装apache+svn

  • 2.1:安装svn
  • 2.2:安装Apache
  • 2.3:安装mod_dav_svn
  • 2.4:配置SVN
  • 2.5:配置Apache
  • 2.6:浏览器测试访问
  • 2.7: svn备份文件导入centos下svn
  • 2.8: centos下svn用户验证

背景信息

本教程手动迁移windows server下svn数据和用户迁移至centos下

  • 操作系统:windows server 2008 、centos7
  • SVN:1.7.14
  • Apache: 2.4.6

步骤一:windows server 导出svn的库

在VisualSVN Server的安装目录的bin目录下,用cmd执行如下命令

svnadmin dump D:\Repositories\DevOps > DevOps.dump
svnadmin dump D:\Repositories\doc > doc.dump
image.png

将备份文件 DevOps.dump、doc.dump 以及用户和组信息 文件groups.conf、htpassswd 拷贝到centos服务器

步骤二:centos安装apache+svn

说明:windows server下svn的密码是加密的,所以centos下svn必须使用apache+svn的加密方式

2.1:安装SVN

远程连接Linux实例。
运行以下命令安装SVN。

yum install subversion

运行以下命令查看SVN版本。

svnserve --version

2.2 :安装Apache

运行以下命令安装httpd。

yum install httpd

运行以下命令查看httpd版本。

httpd -version

2.3:安装mod_dav_svn

运行以下命令安装mod_dav_svn。

yum install mod_dav_svn

2.4:配置SVN

  1. 依次运行以下命令创建SVN版本库。
mkdir /data/svn
cd /data/svn
svnadmin create /data/svn/DevOps
svnadmin create /data/svn/doc
  1. 运行以下命令修改SVN仓库的用户组为apache。
chown -R apache:apache /data/svn/
  1. 依次运行以下命令查看自动生成的版本库文件。
cd svnrepos
ls
image.png

Subversion目录说明如下表:

目录 说明
db 存放所有的版本控制数据文件。
hooks 放置hook脚本文件。
locks 用来追踪存取文件库的客户端。
format 一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。
conf SVN版本库的配置文件(版本库的访问账号、权限等)。
  1. 运行以下命令增加SVN版本库的用户和密码。
    SVN默认使用明文密码,而http并不支持明文密码,所以需要单独生成passwd文件。本示例中,增加用户admin,密码设置为123456。 请根据实际情况选择并运行以下命令:
  • 如果您第一次增加用户,运行命令时需要带上参数-c生成文件。
htpasswd -c /data/svn/passwd admin
  • 如果您已经增加过用户,当后续还需要增加用户时,请运行以下命令。
htpasswd /data/svn/passwd admin

根据提示设置用户的密码123456。

  1. 运行以下命令进入conf目录下。
cd /data/svn/
cp /data/svn/doc/conf/authz  ./
  1. 设置账号的读写权限。
    i. 运行vi authz命令,打开权限控制文件。
    ii. 按i键进入编辑模式。
    iii. 移动光标至文件末尾,并添加如下代码(其中,admin表示账号,r表示读权限,w表示写权限):
[DevOps:/]
admin = rw

[doc:/]
admin = rw

iv. 按Esc键退出编辑模式,并输入:wq保存并退出。

  1. 修改SVN服务配置。
    i. 运行vi svnserve.conf打开SVN服务配置文件。
    ii. 按i键进入编辑模式。
    iii. 移动光标找到如下配置行,删除行前面的注释符#和空格:

说明 每行不能以空格开始,且等号两端要有一个空格。
anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = /data/svn/passwd #使用哪个文件作为账号文件
authz-db = /data/svn/authz #使用哪个文件作为权限文件

realm = /var/svn/svnrepos #认证空间名,版本库所在目录

svn库doc和DevOps下的conf/svnserve.conf都改为

image.png

iv. 按Esc键退出编辑模式,并输入:wq保存并退出。

  1. 运行以下命令启动SVN版本库。
svnserve -d -r /data/svn/

说明 运行killall svnserve命令可停止SVN服务。

  1. 运行命令ps -ef |grep svn查看SVN服务是否开启。
    如果返回结果如下图所示,表示SVN服务已经开启。
    image.png

2.5:配置Apache

  1. 运行vim /etc/httpd/conf.d/subversion.conf命令打开httpd配置文件。
  2. 按i键进入编辑模式。
  3. 输入以下配置信息:

DAV svn
SVNParentPath /data/svn
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /data/svn/authz
AuthUserFile /data/svn/passwd
Require valid-user

  1. 按Esc键后,输入:wq保存并关闭文件。
  2. 运行以下命令启动Apache服务。
systemctl start httpd.service

2.6:浏览器测试访问

  1. 在本地主机上打开浏览器。
  2. 输入网址http:///svn/并按回车键。本示例中,SVN版本库名为svnrepos。
  3. 输入账号和密码,即您在passwd文件中设置的账号和密码。本示例中,账号为admin,密码为123456。
    返回结果如下图所示,表示成功访问之前新建的SVN仓库。
    image

2.7: svn备份文件导入centos下svn

  1. 备份文件拷贝到centos下,并导入svn库中
    image.png
svnadmin load  /data/svn/doc < ../svn_bak/doc.dump
svnadmin load  /data/svn/DevOps < ../svn_bak/DevOps.dump
  1. windows server 下svn用户和用户组复制到centos的svn中
    groups.conf 的内容复制到 /data/svn/authz文件中
    htpasswd 的内容复制到 /data/svn/passwd 文件中

  2. 给予svn库目录apache用户和组的可以读写权限

chmod -R apache:apache /data/svn

2.8: centos下svn用户验证

浏览器访问 svn库的url地址
用户名和密码按windows server 下svn的账号密码输入,验证windows server 下的svn账号密码已迁移到centos下

文章参考:https://help.aliyun.com/document_detail/129359.html?spm=a2c4g.11186623.6.1209.2f5e2d84S5npUC

你可能感兴趣的:(svn从windows server 2008 迁移至 centos7)