持续集成篇【1】:SVN版本管理系统的安装【CentOS + Subversion + Apache + Jsvnadmin】

  • CI服务器:192.168.0.221
  • root用户操作
  • 建议安装前更新操作系统
  • yum update
  • 更新完成后重启
  • reboot

1、安装apache

yum install httpd httpd-devel
service httpd start
chkconfig httpd on
  • vi /etc/httpd/conf/httpd.conf
  • 找到 ServerName 并修改成
  • ServerName localhost:80
  • 防火墙中打开80端口:
  • vi /etc/sysconfig/iptables
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
  • service iptables restart
  • http://192.168.0.221/
    在这里插入图片描述

2、安装SVN服务

  • yum install mod_dav_svn subversion
  • 必须安装mod_dav_svn模块,安装完svn后要重启apache
  • service httpd restart
  • 查看测试是否安装svn模块
ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so
svn --version
  • 创建svn库主目录(多库模式,一份配置文件管理多个库)
  • mkdir /svn/
  • cd /etc/httpd/conf.d
  • ls
  • 此时可以看到一个subversion.conf配置文件(是在安装mod_dav_svn模块时生成的)
  • vi subversion.conf
  • 添加以下内容
#Include /svn/httpd.conf
<Location /svn/>
DAV svn
SVNListParentPath on
SVNParentPath /svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /svn/passwd.http
AuthzSVNAccessFile /svn/authz
Require valid-user
</Location>
RedirectMatch ^(/svn)$ $1/
  • 创建/svn/passwd.http和/svn/authz
  • touch /svn/passwd.http
  • touch /svn/authz
  • 重启apache
  • service httpd restart

3、安装jsvnadmin

4、安装MySQL(单独安装,与业务系统的数据库分开)

  • rpm -qa | grep mysql
  • 查看该操作系统上是否已经安装了mysql数据库,有的话,可以通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉
  • yum install mysql-server mysql mysql-devel
  • service mysqld start
  • chkconfig --list | grep mysqld
    mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
  • 用上面的命令查看到MySQL并没有设置开机启动,所以需要设置开机启动
  • chkconfig mysqld on
  • 为了方便远程管理,防火墙中打开3306端口
  • vi /etc/sysconfig/iptables
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
  • 重启防火墙,使端口配置生效
  • service iptables restart
  • 设置MySQL数据库root用户的密码:
  • mysqladmin -u root password ‘hk.123'
  • 登录数据库:
  • mysql -u root -p
  • MySQL授权远程访问(先用root登录mysql)
  • mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hk.321' WITH GRANT OPTION;
  • mysql> FLUSH PRIVILEGES;

5、使用Tomcat7部署svnadmin

  • cd /root
  • 使用wget下载最新版的tomcat7 的tar.gz包
  • tar -zxvf apache-tomcat-7.0.xx.tar.gz
  • mv apache-tomcat-7.0.xx svnadmin-tomcat
  • 修改Tomcat的端口为9000和容器编码为UTF-8
  • vi /root/svnadmin-tomcat/conf/server.xml
  • 修改以下标红的内容
<Server port="<font color=red size=4>9005" shutdown="SHUTDOWN">
<Connector port="9000" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />
  • 防火墙中打开9000端口
  • vi /etc/sysconfig/iptables
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
  • 重启防火墙,使端口配置生效
  • service iptables restart
  • cd /root/svnadmin-tomcat/webapps
  • rm -rf *
  • 上传 svnadmin.war 到/root/svnadmin-tomcat/webapps目录
  • cd /root/svnadmin-tomcat/webapps
  • 解压
  • unzip svnadmin.war -d svnadmin
  • 备份
  • mv svnadmin.war /root/tools/
  • cd svnadmin/WEB-INF
  • vi jdbc.properties
  • 内容改为如下
db=MySQL
#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=hk.123

6、创建svnadmin数据库并导入相应数据(UTF-8编码)

  • CREATE DATABASE IF NOT EXISTS svnadmin DEFAULT CHARSET 'UTF8';
  • 启动svnadmin-tomcat
  • /root/svnadmin-tomcat/bin/startup.sh
  • 浏览器中打开:http://192.168.0.221:9000/svnadmin/
    在这里插入图片描述
  • 如:输入admin,hk.123
    在这里插入图片描述
  • 创建库
    在这里插入图片描述在这里插入图片描述
  • 此时:
  • /svn/目录下会创建一个hk_edu的SVN库目录。
  • 同时也会多出一个httpd.conf文件,内容与subversion.conf一样,在/etc/httpd/conf.d/subversion.conf中已配置。
  • /svn/authz 授权文件中会多出如下内容:
[aliases]
[groups]
hk_edu_developer=
hk_edu_manager=
hk_edu_tester=
 
[hk_edu:/]
@hk_edu_manager=rw
  • 以上过程其实是调用了svn对应的命令做了相应的操作
  • 配置库目录权限
  • cd /svn
  • chown -R apache.apache hk_edu
  • chmod -R 777 hk_edu
  • (如创建新库,需要对新建的库目录执行以上两步授权操作)
  • 关闭SELinux(Linux的访问控制)
  • 修改/etc/selinux/config 文件
  • vi /etc/selinux/config
  • 将SELINUX=enforcing改为SELINUX=disabled
  • 重启机器即可
  • reboot

7、SVN版本管理平台(Subversion+Apache+Jsvnadmin)的使用

  • 先安装SVN管理客户端TortoiseSVN,方便对SVN库的操作和管理
  • http://tortoisesvn.net/downloads.html
  • (注意64位系统要安装64位版)
  • 接下来可以对hk_edu库进行相应的操作
    • 1、用户组
    • 2、用户
    • 3、授权
    • 4、导入项目
Java实现的SVN远程管理WEB应用 源码地址:http://code.google.com/p/jsvnadmin Svn Admin是一个Java开发的管理Svn服务器的项目用户的web应用。安装Svn服务器端好,把Svn Admin部署好,就可以通过web浏览器管理Svn的项目,管理项目的用户,管理项目的权限。使得管理配置Svn简便,再也不需要每次都到服务器手工修改配置文件。 有什么优点 多数据库:Svn项目配置数据保存在数据库,支持所有数据库(默认MySQL/Oracle/SQL Server)。 多操作系统:支持Window,Linux等操作系统。 权限控制:管理员可以随意分配权限、项目管理员可以管理项目成员、成员只能查看和修改自己的密码。 支持多项目、多用户、多用户组Group(默认带有“项目管理组”、“项目开发组”、“项目测试组”)。 安全:密码加密保存。 多协议:支持svn协议和http协议(从2.0开始支持Apache服务器单库方式,从3.0开始支持Apache多库方式) Svnadmin在Java 1.6、Tomcat 6、Subversion 1.6、MySQL 5.1、Apache 2.2、Windows 7上开发测试通过,同时支持其他操作系统和数据库。 支持svn协议 Svn配置信息都在仓库目录的conf下的authz,passwd,svnserve.conf三个文件中,配置用户和权限都是通过修改passwd和authz,立刻就生效。Svn Admin的本质是对这3个文件进行管理,所有成员、权限的数据都保存在数据库中,一旦在Svn Admin的页面上修改,就会把配置信息输出到conf下的那3个配置文件中。 支持http协议 Apache+SVN配置成功后可以有两种方式: 多库方式:SVNParentPath 指定一个父目录,所有仓库在这个父目录下,使用一个密码文件和一个权限配置文件。优点是增加删除仓库不需要改apache的httpd.conf,不需要重启Apache。缺点是项目多会很混乱。 单库方式:SVNPath 每个仓库单独配置各自的密码和权限文件。优点是各自分开,互相不影响,维护方便。缺点是增加或删除仓库需要修改apache的httpd.conf后重启。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QQ719872578

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值