阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.x 部署Subversion 集成 SvnAdmin Web管理界面

128次阅读
没有评论

共计 6855 个字符,预计需要花费 18 分钟才能阅读完成。

前言:

SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。互联网上很多版本控制服务已从 CVS 迁移到 Subversion。说得简单一点 SVN 就是用于多个人共同开发同一个项目,共用资源的目的。当然也可用于文件文档类型的共享。
SvnAdmin 是一个 Java 开发的管理 Svn 服务器的项目用户的 web 应用。安装好 Svn 服务器端好,把 Svn Admin 部署到 Tomcat,就可以通过 web 浏览器管理 Svn 的项目,管理项目的用户,管理项目的权限。使得管理配置 Svn 简便,再也不需要每次都到服务器手工修改配置文件。

一:环境介绍

1. 操作系统:CentOS 6.* (双核 4G、硬盘至少 20G)
2. 应用软件:

apr、apr-util、apache subversion、sqlite-amalgamation、jdk、apache-tomcat、svnadmin、mysql

二:软件下载

(下载最新版本即可)
apr、apr-util 下载:http://apr.apache.org/download.cgi

apr-1.5.2.tar.gz
apr-util-1.5.4.tar.gz

apache subversion 下载:http://subversion.apache.org/download.cgi

subversion-1.9.5.tar.gz

sqlite-amalgamation-* 下载:http://www.sqlite.org/download.html

sqlite-amalgamation-3190300.zip

jdk 下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

jdk-8u131-linux-x64.tar.gz

apache tomcat 下载:http://tomcat.apache.org/download-70.cgi

apache-tomcat-7.0.78.tar.gz

svnadmin 项目下载(需要 VPN 连接):https://code.google.com/archive/p/jsvnadmin/downloads

svnadmin-3.0.5.zip

二:安装 subversion

1.yum 安装依赖库
yum install unzip openssh-clients zlib zlib-devel gcc-c++ -y
2. 编译安装 apr 和 apr-util
tar -zxf apr-1.5.2.tar.gz 
cd /root/apr-1.5.2
./configure --prefix=/usr/local/apr && make && make install

tar -zxf apr-util-1.5.4.tar.gz 
cd /root/apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
3. 编译安装 subversion
tar -zxf subversion-1.9.5.tar.gz

unzip sqlite-amalgamation-3071501.zip

mv sqlite-amalgamation-3071501 subversion-1.9.5/sqlite-amalgamation

cd  subversion-1.9.5

./configure --prefix=/usr/local/subversion --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-zlib --enable-maintainer-mode
make
make install
4. 将 subversion 加入系统环境变量
echo "export SVN_HOME=\"/usr/local/subversion\"export PATH=\"\$PATH:\$SVN_HOME/bin\"" >> /etc/profile
source /etc/profile
5. 创建 subversion 库
mkdir /opt/subversion/svn/test -p
svnadmin create /opt/subversion/svn/test
6. 指定库 指定端口 启动 subversion
svnserve -d -r /opt/subversion/svn --listen-port=3690

查看 svn 端口 3690 是否存在

netstat -ntpl

防火墙打开 3690 端口
vim /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

重启防火墙

/etc/init.d/iptables restart

查看防火墙
iptables -L -n

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:3690 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:3306 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8080 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

二:部署 svnadmin

1. 安装 jdk,将 jdk 的 tar 包解压,然后加入系统环境变量即可
tar -zxf jdk-8u131-linux-x64.tar.gz -C /usr/local

编辑 /etc/profile 文件在末尾加入下列语句
vim /etc/profile

JAVA_HOME=/usr/local/jdk1.8.0_131
JRE_HOME=/usr/local/jdk1.8.0_131/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HOME/bin:/sbin:/usr/bin:/usr/sbinexport:/usr/local/sbin:/usr/local/bin:/bin:/usr/sbin:/root/bin
CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

source /etc/profile
[root@localhost ~]#java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

至此 jdk 安装完毕

2.mysql 的安装请转到  http://www.linuxidc.com/Linux/2017-12/149714.htm 查看

配置 mysql 用户并创建 svnadmin 库即可

mysql> create database svnadmin;
3. 解压 tomcat,删除 webapps 下的文件
tar -zxf apache-tomcat-7.0.78.tar.gz -C /opt
rm -rf /opt/apache-tomcat-7.0.78/webapps/*

4. 配置 svnadmin

解压 svnadmin-3.0.5.zip 将 svnadmin.war 移动到 /opt/apache-tomcat-7.0.78/webapps/

unzip svnadmin-3.0.5.zip
mv svnadmin.war /opt/apache-tomcat-7.0.78/webapps/

启动 tomcat,让 tomcat 自行解压 war 包,然后编辑数据库配置文件的 #mysql 段,使其可以正常连接数据库

/opt/apache-tomcat-7.0.78/bin/startup.sh

vim /opt/apache-tomcat-7.0.78/webapps/svnadmin/WEB-INF/jdbc.properties
#MySQL
MySQL.jdbc.driver=com.mysql.jdbc.Driver
MySQL.jdbc.url=jdbc:mysql://127.0.0.1:3306/svnadmin?characterEncoding=utf-8
MySQL.jdbc.username=root
MySQL.jdbc.password=root

导入 svnadmin 项目 mysql 数据库和语言包

mysql -uroot -p svnadmin < db/mysql5.sql
mysql -uroot -p svnadmin < db/lang/en.sql

再重启 tomcat

/opt/apache-tomcat-7.0.78/bin/shutdown.sh
/opt/apache-tomcat-7.0.78/bin/startup.sh

此时 svnadmin 已经配置启动完毕

防火墙开通 8080 端口

[root@localhost opt]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:3690 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:3306 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8080 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
5. 进入 svnadmin 的 web 界面进行配置
浏览器输入地址访问 tomcat,提示第一次使用请设置管理员帐号和密码,这里设置一个 admin
http://IP:8080/svnadmin/

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

 

配置 svnadmin 和 subversion 的集成,在 web 管理界面输入下列信息,并提交

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

提交完毕后项目已经集成

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

现在可以对 svn 增加用户,以及配置用户权限

首先设置用户组,将之前第一次设置的 svnadmin 管理员账号加入 manage 用户组内

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

设置用户  ↑

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

增加用户  ↑

现在对此项目有第一个管理员用户了,现在需要创建其他用户

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

创建用户

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

给 a 用户配置权限

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

给 a 用户配置可读权限

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

6. 配置完用户权限过后,通过 tortoisesvn 的 windows 客户访问 svn 服务

tortoisesvn 客户端下载地址:https://tortoisesvn.net/downloads.html

windows 下直接双击运行 msi 文件进行 tortoisesvn 的安装

安装完成后在桌面上空白处右键进入版本库浏览 ”Repo-browser”

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

输入 SVN 地址

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

输入管理员用户名和密码

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

进入后创建文件夹

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

7.subversion 的备份

第一种: 指定版本备份,以及恢复方式 (subversion 库版本号可以通过 windows 客户端 tortoisesvn 的 ” 版本库浏览 ” 进行查看)

CentOS 6.x 部署 Subversion 集成 SvnAdmin Web 管理界面

svnadmin dump /opt/subversion/svn/test/ --revision 1010 > 20171111.svn
svnadmin load /opt/subversion/svn/test/ < 20171111.svn
第二种: 全备份,以及恢复方式
svnadmin dump /opt/subversion/svn/test/ > 20172222.svn
svnadmin load /opt/subversion/svn/test/ < 20172222.svn
第三种: 备份并压缩,以及恢复方式
svnadmin dump /opt/subversion/svn/test/ | gzip /opt/backup/subversion/20171212.svn.zip
zcat 20171212.svn.zip | svnadmin load /opt/subversion/svn/test/
可以将备份命令写成 shell 脚本

vim /opt/backup/subversion/svndump.sh

#!/bin/bash

DBNAME=`date  "+%Y.%m.%d_%H%M%S_test_subversion"`.svn
/usr/local/subversion/bin/svnadmin dump /opt/subversion/svn/test/ > /opt/backup/subversion/$DBNAME
给脚本添加执行权
chmod +x /opt/backup/subversion/svndump.sh
写 crontab 计划任务让其自动备份

crontab -e

# 每周六的 3:30 执行脚本 svndump.sh
30 3 * * 6 /opt/backup/subversion/svndump.sh

更多用法请参照 svn 官方文档

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-12/149716.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计6855字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中