1、svn的安装
`yum -y install subversion` #安装svn服务
2、创建货柜
mkdir /var/svn #创建货柜
svnadmin create /var/svn/repos #初始化该目录
3、创建货架
mkdir /var/www #创建一个目录,临时存放货架
cd /var/www #进入临时目录
mkdir trunk branches tags #创建3个货架,分别是主干,分支,里程碑
echo "html" > /var/www/trunk/a.html #随便在trunk里面创建个文件,后面实验用
4、将www的临时货架上到svn的货架上
svn import /var/www file:///var/svn/repos -m "banben1" #将/var/www的货架转移到svn的货架上
5、启动svn服务
vim /etc/sysconfig/svnserve
#进入并修改配置文件
默认就是/var/svn 所以不需要修改,如果自己的svn目录是其他路径,改成对应路径。
systemctl start svnserve.service
6、修改配置文件
vim /var/svn/repos/conf/svnserve.conf #修改主配置文件,一共需要修改三项
anon-access = read
auth-access = write 这三项都是去掉注释,去掉注释后还要去掉一个空格
password-db = passwd
vim /var/svn/repos/conf/passwd #修改验证文件,添加svn服务用户
添加用户:wangjing 密码:123456 等号左右要有空格 保存退出
至此,服务端配置完成,接下来是客户端配置
客户端:
1、安装阿帕奇、svn服务
yum -y install httpd subversion
2、同步svn目录
cd /var/www/html #进入到httpd服务的目录
svn checkout svn://192.168.125.130/repos #将svn服务器的文件同步到此目录下
再配置一台客户端虚拟机,配置同上
3、模拟代码更新
cd /var/html/repos/trunk #进入trunk目录
echo test > index.html #创建主页文件
svn add index.html #上传主页文件到服务器
svn commit -m "版本2" #提交上传更新
提示输入root密码,直接回车
接着输入passwd设置的用户名密码 wangjing:123456
登录到另一台客户端
svn update
通过hook(钩子)实现自动同步更新
1、修改hook配置文件
cd /var/svn/repos/hooks #进入hooks目录
cp post-commit.tmpl post-commit #将提交触发模板复制并改名post-commit
vim post-commit #编辑hook文件
ssh root@192.168.125.134 -C "cd /var/www/html/repos && svn update"
ssh root@192.168.125.136 -C "cd /var/www/html/repos && svn update"
保存退出
注意,post-commit文件的最开头#!/bin/sh表示这是一个脚本文件,所以需要加执行权限
chmod +x post-commit
2、ssh免秘钥(鬼画符)
ssh-keygen
(连续按回车,知道出现鬼画符为止)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.125.134
输入yes 和密码
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.125.136
输入yes 和密码
3、验证
echo a > c.html
svn add c.html
svn commit -m "banben3"
可以看到另一台客户端不需要操作就可以自动更新