svn实现代码自动同步几台代理服务器

本文介绍了一种通过SVN实现代码自动同步至多台项目服务器的方法。包括SSH无密码登录配置、远程更新脚本及SVN钩子文件设置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目上传流程:

正式代码->提交svn->自动同步项目服务器;

代码存在问题->回滚修改再次提交->自动同步项目服务器;

SVN服务器版本库搭建

搭建原因:  开源的svn版本库都有限制,对钩子文件做了收费处理;

svn版本库搭建具体note:

http://note.youdao.com/noteshare?id=c1aadaf47c5e33a0b38a33540b57ae7b&sub=BB96C8B3CF1B4EECB4F41171DBB7F9C3

本地代码提交到SVN版本库后自动同步远程服务器

需要注意几个问题:

1.svn所在版本服务器实现ssh无密码登陆项目服务器A,B,C,D等等;

2..ssh目录和authorize_keys文件的权限,.ssh目录的权限是700,authorize_keys的权限应该为644.

3.post-commit文件和svnup.sh文件的权限,至少为755.

4.项目服务器A,B,C,D第一次必须手动检出代码到本地,配置好了之后是自动调用钩子文件update;

步骤1:  svn版本服务器生成秘钥对

[root@domin ~]# ssh-keygen -t rsa

一路ENTER下去,秘钥对就可以成功生成啦。生成完的秘钥对保存/root/.ssh目录中(因为我是root用户)

[root@domin .ssh]# pwd
/root/.ssh
[root@domin .ssh]# ls
id_rsa  id_rsa.pub

步骤2: 将id_rsa.pub复制为authorized_keys,并将authorized_keys文件上传到A,B,C,D机器的

[root@domin .ssh]# cp id_rsa.pub authorized_keys
[root@domin .ssh]# scp authorized_keys root@192.168.6.28:/root/.ssh

步骤3:ssh登录A,B,C,D机器,第一次需要输入密码,以后就不在需要了,至此,无密码登录就已经实现了;

步骤4:在A,B,C,D服务器上上创建更新svn的脚本:  创建脚本文件/shell/svnup.sh

[root@domin shell]# vim svnup.sh
#!/bin/bash
 
/usr/bin/svn update /var/www/projcet #projcet为项目文件
[root@domin shell]# chmod 755 svnup.sh

步骤5:创建钩子

svn仓库创建完后会有一个hooks文件夹,该文件夹下面已经自带了一些钩子文件,我们要用到的是post-commit

//将post-commit.tmpl复制为post-commit
[root@101-server hooks]# cp post-commit.tmpl post-commit

//注释掉post-commit里面的所有内容,并添加我们的更新命令
/usr/bin/ssh -l root 192.168.6.28 "/bin/bash /shell/svnup.sh"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值