返回目录:理财保险
流程:
1:代码测试没有问题后,提交到svn服务器。
2:svn服务器会update到某一目录下,inotify会监控这个目录的状态。
3:如果检测到目录状态改变,会rsync远程推送到后台的应用服务器。
Svn服务器安装: svn inotify 以及rsync
后台应用服务器:rsync
开始安装:
准备服务器:
3台:1台svn 2台应用服务器
操作系统: CentOS Linux release 7.3.1611 (Core)
Svn服务器:
安装svn:
yum install subversion -y
cd /opt/
创建仓库目录 存储代码的目录
svnadmin create blog
vim /opt/blog/conf/svnserve.conf
修改一下配置
anon-access = none
password-db = passwd
authz-db = authz
vim /opt/blog/conf/auth
[/]
lampol = rw
vim /opt/blog/conf/passwd
[users]
lampol = 123456
配置钩子 实现提交代码 自动更新目录
cd /opt/shop/hooks
cp post-commit.tmpl post-commit
vim post-commit
添加一下配置
export LANG=en_US.UTF-8
/usr/bin/svn update /home/blog --username lampol --password 123456
chmod +x post-commit
开始启动svn配置
svnserve -d -r /opt/shop/
开始检出 检出到 /home/blog目录
svn co svn://127.0.0.1 /home/blog
客户端提交代码 可以看淡 提交的文件会自动更新到 /home/blog
svn配置完毕 成功
安装rsync
yum install rsync -y
vim /etc/rsyncd.passwd
123456
chmod 600 /etc/rsyncd.passwd
开始安装inotify
安装依赖
yum install automake libtool -y
wget https://github.com/rvoicilas/inotify-tools/archive/3.20.1.tar.gz
tar xf 3.20.1.tar.gz
cd inotify-tools-3.20.1/
./autogen.sh
./configure --prefix=/usr/local/inotify
make && make install
应用服务器
vim /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
uid = root
gid = root
use chroot = no
max connections = 200
timeout = 300
[blog]
path = /home/blog
ignore errors
read only = false
write only = no
list = false
hosts allow = 192.168.1.0/24
auth users = rsync
secrets file = /etc/rsyncd.passwd
vim /etc/rsyncd.passwd
rsync:123456
chmod 600 /etc/rsyncd.passwd
启动rsync
rsync --daemon
配置完毕后测试一下看看能不能推送过去
测试一下看看
rsync -av --delete --exclude ".svn" /home/www/ rsync@192.168.1.77::shop --password-file=/etc/rsyncd.passwd
运行脚本
#!/bin/bash
ips=('192.168.1.16' '192.168.1.36')
len=${#ips[@]}
/usr/local/inotify/bin/inotifywait -mrq --exclude /home/blog/.svn/ --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move /home/blog/|while read file
do
echo $file >/tmp/inotify.txt
for (( i=0;i<$len;i++ ))
do
rsync -qav --delete --exclude '.svn' /home/blog/ rsync@${ips[$i]}::blog --password-file=/etc/rsyncd.passwd
done
done
本文章的对应视频教程,私聊我,或者看我空间即可看到。