博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
持续集成-SVN版本管理系统的安装
阅读量:7216 次
发布时间:2019-06-29

本文共 3797 字,大约阅读时间需要 12 分钟。

hot3.png

本次集成的SVN版本管理系统由Apache 、Subversion 、Jsvn admin构成,其中,Apache 是应用服务器中间件,Subversion 是SVN软件,Jsvn admin是管理 Svn 服务器的项目用户的 web 应用,即Jsvn admin运行在apache服务器,并对我们的SVN访问权限进行管理。

1. 安装apache

  • 安装服务
yum install httpd httpd-devel# 启动服务service httpd start# 设置为开机启动chkconfig httpd on
  • 配置
vim /etc/httpd/conf/httpd.conf

找到 ServerName 并修改成 ServerName localhost:80

  • 防火墙中打开 80 端口
# vim /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT# service iptables restart
  • 测试服务器是否安装成功

浏览器中访问

2. 安装SVN

  • 安装服务
#安装SVN相关模块yum -y install mod_dav_svn subversion#重启apacheservice httpd restart#查看SVN服务是否安装成功svn --version
  • 配置SVN

创建svn主库目录

mkdir /svn/

配置密码和权限管理文件所在目录

touch /svn/passwd.httptouch /svn/authzvim /etc/httpd/conf.d/subversion.conf

添加以下内容,里面有SVN库的目录和多库的父目录

#Include /svn/httpd.conf
DAV svnSVNListParentPath onSVNParentPath /svnAuthType BasicAuthName "Subversion repositories"AuthUserFile /svn/passwd.httpAuthzSVNAccessFile /svn/authzRequire valid-userRedirectMatch ^(/svn)$ $1/

3. 安装jsvn admin

翻墙后,到 下载最新版。

** 关闭 SELinux( Linux 的访问控制)**

修改/etc/selinux/config 文件

vim /etc/selinux/config

将 SELINUX=enforcing 改为 SELINUX=disabled 后重启机器

  • ** 安装MYSQL**
# 查看该操作系统上是否已经安装了 mysql 数据库,有的话,可以通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉rpm -qa | grep mysql #开始安装yum install mysql-server mysql mysql-develservice mysqld startchkconfig mysqld on

防火墙中打开 3306 端口

vim /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 '123456'

登录数据库后,授权远程访问

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITHGRANT OPTION;mysql> FLUSH PRIVILEGES;
  • ** 使用 Tomcat7 部署 svn admin**

上传tomcat7并解压到/usr/local/tomcat/svnadmin-tomcat,修改tomcat的端口为和容器编码为 UTF-8

vim /usr/local/tomcat/svnadmin-tomcat/conf/server.xml

修改为

防火墙中打开 9000 端口,重启防火墙

上传svnadmin.war,解压到/usr/local/tomcat/svnadmin-tomcat/webapp下

unzip  svnadmin.war -d /usr/local/tomcat/svnadmin-tomcat/webapps/svnadmin

修改svnadmin的JDBC配置

vim /usr/local/tomcat/svnadmin-tomcat/webapps/svnadmin/WEB-INF/jdbc.properties

配置如下:

#MySQLdb=MySQL#MySQLMySQL.jdbc.driver=com.mysql.jdbc.DriverMySQL.jdbc.url=jdbc:mysql://127.0.0.1:3306/svnadmin?characterEncoding=utf-8MySQL.jdbc.username=rootMySQL.jdbc.password=123456#Oracle#Oracle.jdbc.driver=oracle.jdbc.driver.OracleDriver#Oracle.jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:svnadmin#Oracle.jdbc.username=root#Oracle.jdbc.password=123456

利用客户端工具创建一个 svnadmin 数据库实例并导入相应数据,数据库脚本是安装包下的db/mysql5.sql 和 db/lang/en.sql 文件。下图是运行脚本后创建好的表。

输入图片说明

启动tomcat,输入网址 登录svn管理后台,看到该页面后即部署成功。第一次登录需要设置账户和密码。

输入图片说明

4. 使用svnadmin

假设现在有以下需求:svntest项目组有jack、rick、rose三个成员,其中jack是项目经理,rick是开发人员,rose是测试人员。svntest项目的仓库URL是

svntest	|_____tags	|_____trunk	|_____branches

jack是属于管理组,对根目录以及所有的子目录拥有读写权限;rick属于开发组,只拥有trunk以及所有的子目录读写权限, rose可以读取tags目录,但不能写。

4.1 创建仓库

为SVN仓库创建一个名为svntest的库

输入图片说明

创建完毕后,在SVN库的根目录下将会被创建一个svntest的文件夹

[root@www svn]# ls /svnauthz  httpd.conf  passwd.http  svntest

authz 文件是权限管理文件,通过上面创建了svntest这个库后,这里默认建立了三个角色(组):developer、manager、tester,其中manager给予了读写权限。

[root@www svn]# cat authz [aliases][groups]svntest_developer=svntest_manager=svntest_tester=[svntest:/]@svntest_manager=rw

** 重要:修改项目仓库目录拥有者和赋予读写权限,每次创建新的仓库都要重新授权**

因为现在项目仓库目录归属为root,但是我们通过svn管理控制平台操作该目录的时候默认是使用apache的账户,所以对该目录没有读写权限。

现在的/svn所属

[root@www svn]# ll /svndrwxr-xr-x 6 root   root   4096 Mar  2 14:54 svntest
[root@www svn]# vim /etc/httpd/conf/httpd.conf#文件的内容里面有以下字段User apacheGroup apache

修改所属组和权限

chown -R apache.apache /svn/svntestchmod -R 777  /svn/svntest

4.2 创建用户和添加为组员

点击右上角的用户分别创建jack/rick/rose三个用户。

输入图片说明

输入图片说明

把admin和jack用户设置为管理组,rick设置为开发组,rose设置为测试组。** admin添加到管理组才能为相应的组给予相应的权限。**

输入图片说明输入图片说明输入图片说明

4.3 建立项目的目录

利用乌龟SVN使用管理组的账号jack检出项目,并在根目录下建立相应的子目录,最后上传代码库。 输入图片说明

4.4 权限控制

登录SVN管理平台,点击相应的项目进行权限授予。

转载于:https://my.oschina.net/thinwonton/blog/848746

你可能感兴趣的文章
***微信公众平台开发: 获取用户基本信息+OAuth2.0网页授权
查看>>
第二章 例题2-2 在屏幕上显示两个短句
查看>>
【转】iOS学习之适配iOS10
查看>>
OC语言BLOCK和协议
查看>>
C++创建一个动态链接库工程
查看>>
(六)maven之本地仓库
查看>>
如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面?
查看>>
CentOS7
查看>>
linux高编IO-------tmpnam和tmpfile临时文件
查看>>
微信的机器人开发
查看>>
从零开始学Java(二)基础概念——什么是"面向对象编程"?
查看>>
近期面试总结(2016.10)
查看>>
CodeForces 525D Arthur and Walls :只包含点和星的矩阵,需要将部分星变成点使满足点组成矩形 : dfs+思维...
查看>>
积累_前辈的推荐
查看>>
strcpy和memcpy的区别《转载》
查看>>
在windows平台下electron-builder实现前端程序的打包与自动更新
查看>>
DroidPilot V2.1 手写功能特别版
查看>>
COOKIE欺骗
查看>>
js 强转规范解读
查看>>
ACdream - 1735:输油管道
查看>>