您的位置:首页 > 运维架构 > Linux

centos svn服务器搭建 多账号多项目不同权限配置 hook配置 项目提交自动同步 测试及生产环境配置

2017-10-17 14:00 666 查看
内容分为两大部分:1.svn服务器搭建配置 2.svn hook配置项目提交自动同步到测试环境,及测试生产环境配置。

一,服务器配置

1、安装svn:

yum install subversion

svn –version

如果弹出svn版本信息说明安装成功

2、分别创建不同项目的版本库比如ios,android,www等

svnadmin create /var/svn/ios

svnadmin create /var/svn/android

svnadmin create /var/svn/www

cd /var/svn

ls

然后可以看到:



蓝色目录即为创建的项目仓库

3、查看项目当中的内容如www目录 cd www/conf 可以看到有三个文件,authz,passwd,svnserve.conf

为了统一管理不同项目不同svn用户的不同访问权限,需要把仓库当中的authz 和passwd两个文件拷贝到外层svn主目录中,如上图。

分别对每个项目仓库进行配置,比如www项目:

vi /var/svn/www/conf/svnserve.conf

分别找到,并改为如下:

anon-access = none #禁止匿名访问

auth-access = write

password-db = /var/svn/passwd #统一用这个文件配置密码

authz-db = /var/svn/authz #统一用这个文件配置权限

realm = www #权限域名,在authz里面配置权限使用可以与项目名相同

如果是android就用:

vi /var/svn/android/conf/svnserve.conf

4、配置svn帐号及访问权限:

vi var/svn/authz

如下:



注意[www:/] 这里的www,android,python是与刚才项目中配置的realm对应的

配置中的各个组分别有各个项目的访问权限,boss有所有项目权限

然后配置密码:

vi /var/svn/passwd

如图,分别列出来配置就行了:



启动svn:

systemctl start svnserve

设置开机启动:

systemctl enable svnserve

查看运行状态:

netstat -ntl



如图看到有端口号3690就说明svn服务器正常运行了。

二,在同一个服务器上创建测试环境与生产环境,由于两者环境完全相同,则提交代码到生产环境后基本就没问题了,使用方便。

1. 思路是这样,比如对于www网站项目,在服务器创建两个svn仓库,一个作为生产环境,一个作为测试环境,测试环境需要用svn hook自动同步,这样commit之后测试环境直接生效,测试完成后再对生产仓库update即可,下面创建:

svn co svn://localhost/www /project/www

svn://localhost/www是svn仓库, /project/www是生产环境项目路径 按提示输入svn帐号密码

svn co svn://localhost/www /project/wwwTest

后面一个可以作为测试环境项目路径

2.配置svn hook 项目自动同步:

vi /var/svn/wwwTest/hooks/post-commit

#!/bin/sh
export LANG=en_US.utf8
SVN_PATH=/usr/bin/svn
WEB_PATH=/huizai/wwwTest
$SVN_PATH update $WEB_PATH --username 'username' --password '123456' --no-auth-cache


把上面代码拷贝进去保存 注意svn帐号密码要正确

修改权限

chmod 755 /var/svn/wwwTest/hooks/post-commit

此时再往www仓库提交代码就会自动同步到 /project/wwwTest 目录中。

3.二级域名配置,比如配置test.baidu.com这种网址作为测试网址:

如果是使用的阿里云域名,则需要配置test二级域名解析如图:



其中记录值是ip地址,如果是其它平台备案的域名则需要去相应平台更改一下支持

4.配置nginx根据二级域名解析到wwwTest测试项目:

打开nginx配置文件:

一般路径在:/etc/nginx/nginx.conf 或者

/etc/nginx/conf.d/….conf

把server区块再从新拷贝粘贴到原有server下面

修改 server_name为: *.test.baidu.com; #要注意这个域名有没有在上一个server里面包括,包括了要从上一个当中去除掉

修改 root为: /project/wwwTest;

重启nginx:

systemctl restart nginx

5.此时打开浏览器输入网址则访问www目录,输入test….com 访问wwwTest目录,本地svn提交直接同步到wwwTest目录,测试环境直接生效,要提交生产环境直接svn up即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐