ubuntu配置SVN,完成自动部署

2018-3-5 / 0评 / 网络安全

本文共计 25793 字,感谢您的耐心浏览与评论。

下面简单记录设置SVN和部署的操作:

1. 安装
  1. apt-get install subversion libapache2-svn
复制代码

我的服务器上Apache老早就安装过了。如果你的服务器上还没有安装,可以执行:
  1. apt-get install apache2
复制代码

完成安装之后,Apache的mod_dav_svn默认就是已经启用的了。

2. 创建代码仓库文件夹
这里我把代码集中放在了/var/svn/,先创建这个文件夹:
  1. cd /var/
  2. mkdir svn
复制代码

3. 修改dav_svn模块配置文件
  1. cd /etc/apache2/mods-enabled/
复制代码
编辑文件dav_svn.conf ,去掉一些注释符号,修改SVNParentPath路径为上面我们创建的/var/svn/:
  1. vi dav_svn.conf
复制代码
最终的内容大约是:
  1. <Location /svn>
  2. DAV svn
  3. SVNParentPath /var/svn/
  4. AuthType Basic
  5. AuthName “Subversion Repository”
  6. AuthUserFile /etc/apache2/dav_svn.passwd
  7. Require valid-user
  8. </Location>
复制代码

4. 生成认证所需要的密钥文件
上面的AuthUserFile选项对应的文件需要我们自己创建。
我为自己和小连各创建一个账号:
  1. sudo htpasswd -cm /etc/apache2/dav_svn.passwd someone
  2. sudo htpasswd /etc/apache2/dav_svn.passwd someone-else
复制代码
完成上面的操作之后,让apache重新读入一下配置:
  1. service apache2 reload
复制代码
这个时候,直接访问http://www.fachun.net/svn/,就可以看到要求输入用户名、密码了。
认证之后,会出现一个403 Forbidden,因为我们还未创建repository。

5. 创建repository
cd切换到/var/svn/目录下,再执行:
  1. svnadmin create musicapp
复制代码
就会在目录下生成musicapp文件夹,这个文件夹下包含了.svn子文件夹。接着修改musicapp文件夹属主,让www-data可读写:
  1. chown -R www-data musicapp
  2. chmod -R g rws musicapp
复制代码
好了,现在已经可以开始使用svn了。

6. 安装客户端,checkout到本地
现在我的开发环境是windows,下载安装客户端:
http://tortoisesvn.net/downloads.zh.html
将 http://www.fachun.net/svn/musicapp/ checkout到 E:\Python\django\music\musicapp
结束后,添加原有的代码文件再commit。
如此,代码库中就拥有了我最新的完整源代码。

7. 简单的自动部署
我的要求不多,当有人修改或提交了文件,能立即在web上生效。
可以通过在版本库中创建post-commit脚本来实现。
每次我们提交了更改,post-commit脚本都会被自动执行。
比如在我的版本库中,该文件就应该位于 /var/svn/musicapp/hooks/文件夹下,它的内容是:
  1. #!/bin/bash
  2. svn export –force –no-auth-cache –username=someone –password=hispassword <a href="http://www.fachun.net/svn/musicapp" target="_blank">http://www.fachun.net/svn/musicapp</a> /var/www/somewhere/to/place/musicapp
  3. exit 0
复制代码
http://www.fachun.net/svn/musicapp是repository的地址。
/var/www/somewhere/to/place/musicapp是web应用的存放路径。
–no-auth-cache选项是必须的,否则脚本无法执行成功,svn命令会询问你是否保存密码。
在上传这个post-commit文件之后,请记得为其添加权限:
  1. chmod x post-commit
  2. chown www-data post-commit
复制代码
脚本中还可以添加其他内容,比如service apache2 reload,在部署django代码的时候,就可以让修改立即生效。

声明:戏子与嬉皮士|版权所有,违者必究|如未注明,均为原创|本网站采用BY-T0reAd协议进行授权

转载:转载请注明原文链接 - ubuntu配置SVN,完成自动部署

0条回应:“ubuntu配置SVN,完成自动部署”

发表评论