实现SVN自动化部署
当我们修改程序并通过SVN上传到服务器后,我们想立马刷新页面看到更改之后的效果,这时候就要用到SVN自动化部署了,所谓的自动化部署,就是当SVN提交后自动更新文件到项目目录
现在我们从头来部署一遍,看到底如何搭建看
yum install subversion
svnserve --version
svnadmin create /opt/svn/first
chmod 755 /opt/svn/first
进入到版本库first中,编辑用户文件passwd,新增两个用户:admin和guest。
$ vi /opt/svn/spring-hello-world/conf/passwd [users] admin = admin guest = guest
$ vi /opt/svn/spring-hello-world/conf/authz [first:/] admin = rw guest = r
$ cat /opt/svn/spring-hello-world/conf/svnserve.conf [general] anon-access = none #控制非鉴权用户访问版本库的权限 auth-access = write #控制鉴权用户访问版本库的权限 password-db = passwd #指定用户名口令文件名 authz-db = authz #指定权限配置文件名 realm = 版本库路径 #指定版本库的认证域,即在登录时提示的认证域名称
$ svnserve -d -r /opt/svn/first
[root@host conf]# ps -aux | grep svn Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ root 29446 0.0 0.4 152476 2340 ? Ss 15:32 0:00 svnserve -d -r /opt/svn/first root 29485 0.0 0.3 103380 2064 pts/1 S+ 15:43 0:00 grep svn
通过netstat可以看到SVN打开了3690端口。
$ sudo netstat -tnlp Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 16349/svnserve
svn co svn://localhost/First /var/www/html--username 'admin' --password 'admin'
2、在svn代码仓库的对应项目目录下创建post-commit文件,如果文件已存在,请清空文件内容后再编辑
cd /var/svn/project/hooks vi post-commit
3、在该文件里添加如下代码,保存
#!/bin/sh export.UTF-8 /usr/bin/svn update --username SVN用户名 --password SVN密码 网站目录
chmod 755 post-commit
自动化部署的重点就是利用svn的钩子(每次提交后都会自动触发的hook)去同步文件,超级简单