分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

SVN跨服务器配置post-commit提交后自动更新(SVN与WEB服务器不在同一台机器)

发布时间:2023-09-06 02:00责任编辑:苏小强关键词:配置自动更新SVN
背景情况:SVN与WEB不在同一台服务器上,需要SVN提交后WEB站点自动进行SVN UPDATE更新,查阅网上的教程,发现部分的细节和权限部分没有提到导致跨服务器ssh执行更新脚本失败,手动执行post-commit可以通过


需求:开发想要在项目修改并提交到svn服务器上后,web服务器能够自动进行svn update更新站点,并立即看到修改后的web页面效果


思路:项目提交时触发post-commit里面的脚本并写入到/var/log/svn.log中,脚本通过SSH免密登陆到WEB上然后再进行svn up.sh的脚本触发web站点更新


配置:SVN服务器一台(172.17.8.8) WEB测试服务器一台(172.17.8.9) 两台服务器均为CentOS7.4(1708)

            

          SVN项目版本环境在/svn/project(目录中含有db hook等文件)    WEB的网站路径为/var/www/html/project下



需要安装的软件:两台服务器均需要安装Apache软件(web服务器nginx也可以)和SVN软件,我的web测试环境为lamp


两台服务器均安装apache(httpd)、SVN(subversion),SVN服务器需要安装svn和apache的集成模块(mod_dav_svn),安装方式为yum install httpd subversion mod_dav_svn


在此不详细叙述SVN账号和密码以及权限的调试,只说post-commit、脚本、权限、以及log的写法和设置




1.两台服务器各建立系统账户为svn的用户名(useradd svn),并给svn用户设置密码(passwd svn) 注意:此步骤两台服务器都要做相同的操作


2.登陆SVN服务器做ssh免密码登陆web服务器的操作:


(1)在SVN服务器下,使用su - svn(要带-,说明环境变量也切换到svn下面) ,切换到svn用户上,执行ssh-keygen -t rsa,一路回车执行,成功的话会生成SHA256的密钥文件

(2)将svn用户下的密钥文件拷贝至web服务器下的svn用户ssh目录:ssh-copy-id -i /home/svn/.ssh/id_rsa.pub svn@172.17.8.9,输入密码后提示复制成功

(3)使用ssh登陆到web服务器:ssh svn@172.17.8.9,输入一次密码后,尝试再次执行该命令,确认能够免密登陆后即可。


3.将apache的启动进程用户修改成svn

vim /etc/httpd/conf/httpd.conf

找到User和Group(大约66 67行左右)将apache改为svn,:wq保存退出


将所有的svn目录下的权限修改成svn用户,使用-R递归方式

chown -R svn:svn /svn


4.进入项目目录,编写post-commit脚本并赋予其执行权限

vim /svn/project/hooks/post-commit

脚本如下:


#!/bin/sh
REPOS="$1"
REV="$2"
LOGFILE=/var/log/svn.log ##这里是为了保存日志并查看是否有报错,有报错说明执行了未成功,没报错说明未执行成功,检查权限,执行成功会有svn update信息
exec 1>>"$LOGFILE"
exec 2>&1
export.UTF-8
/usr/bin/ssh -l svn 172.17.8.9 "/bin/bash /shell/svnup.sh"
exit 0

保存退出


赋予post-commit可执行权限

chmod 777 /svn/project/hooks/post-commit


5.创建脚本日志并赋予svn权限

touch /var/log/svn.log

chmod 777 /var/log/svn.log

chown svn:svn /var/log/svn.log


6.修改完毕后重启Apache服务器使其生效

systemctl restart httpd.service


至此SVN服务器配置完毕

SVN跨服务器配置post-commit提交后自动更新(SVN与WEB服务器不在同一台机器)

原文地址:http://blog.51cto.com/taoyeno1/2131447

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved