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

来源:互联网 发布:采购流程及优化 编辑:程序博客网 时间:2024/06/06 00:31

内容分为两大部分: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/shexport LANG=en_US.utf8SVN_PATH=/usr/bin/svnWEB_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即可。

阅读全文
0 0
原创粉丝点击