一。测试环境说明
nfs服务端:192.168.187.130
nfs客户端:192.168.187.129
服务器192.168.187.130环境说明:
java:java version "1.8.0_161"
tomcat:(tomcat7)
节点1:/opt/apache-tomcat-7.0.63-vhost1
节点2:/opt/ apache-tomcat-7.0.63-vhost2
nginx:1.13.8
工程部署说明:
项目文件根目录:/opt/project/www
日志文件根目录:/opt/project/logs
附件存放根目录:/opt/project/filedir
服务器192.168.187.129环境说明:
java:java version "1.8.0_161"
tomcat:(tomcat7)
节点1:/opt/apache-tomcat-7.0.63-vhost1
工程部署说明:
项目文件根目录:/opt/project/www
日志文件根目录:/opt/project/logs
附件存放根目录:/opt/project/filedir
中央工程根目录:/opt/project/centerRepo
二.nfs环境搭建
如果是redhat操作系统,则默认都是安装了nfs,可以通过 servicenfs status,如果打印下面的日志信息,则已经安装好nfs环境。
rpc.svcgssd isstopped
rpc.mountd isstopped
nfsd is stopped
rpc.rquotad isstopped
再查看rpcbind服务的状态,通过service rpcbind status查看,如果打印下面的日志信息,则已经安装好rpcbind服务。
rpcbind(pid 1339) is running...
如果没有安装好nfs和rpcbind服务,则通过下面的教程进行搭建:
https://www.cnblogs.com/freeweb/p/6593861.html
三。nfs服务端设置
1.服务端192.168.187.130将以下的目录进行共享
vim /etc/exports
#编辑,添加以下内容并保存
#文件编辑开始
#分布式文件上传目录共享
/opt/project/filedir/ 192.168.187.129(rw,sync,no_root_squash)
#分布式日志文件目录共享
/opt/project/logs/ 192.168.187.129(rw,sync,no_root_squash)
#工程文件中央仓库
/opt/project/www 192.168.187.129(ro)
#文件编辑结束
2.启动nfs、rpcbind服务
servicenfs restart && service rpcbind restart
3.查看nfs共享情况
showmount-e 192.168.187.130
#如果打印下面日志,则nfs服务端设置完毕
Exportlist for 192.168.187.130:
/opt/project/www 192.168.187.129
/opt/project/logs 192.168.187.129
/opt/project/filedir 192.168.187.129
4.设置nfs,rpcbind服务开启启动
chkconfignfs on && chkconfig rpcbind on
四。nfs客户端设置
1.服务是否启动,操作方式同第三点
2.服务端共享的文件目录
showmount -e 192.168.187.130
#如果打印如下日志,则nfs整体环境已经搭建完毕
Export list for 192.168.187.130:
/opt/project/www 192.168.187.129
/opt/project/logs 192.168.187.129
/opt/project/filedir 192.168.187.129
3.服务端的共享目录到本地指定目录
mount 192.168.187.130:/opt/project/www/opt/project/centerRepo
#进入/opt/project/centerRepo目录下,如果可以查看到192.168.187.130共享的文件,则nfs挂载文件成功。
4.共享目录开机挂载
vim /etc/fstab
#编辑,添加以下内容并保存
#文件编辑开始
192.168.187.130:/opt/project/www /opt/project/centerRepo nfsrw,tcp,intr 0 1
192.168.187.130:/opt/project/logs /opt/project/logs nfs rw,tcp,intr0 1
192.168.187.130:/opt/project/filedir /opt/project/filedirnfs rw,tcp,intr 0 1
#文件编辑结束
5.重启服务器
备注:如果不能重启服务器,则先手动将nfs共享目录挂载到本机指定目录:
mount 192.168.187.130:/opt/project/www/opt/project/centerRepo
mount 192.168.187.130:/opt/project/logs/opt/project/logs
mount 192.168.187.130:/opt/project/filedir/opt/project/filedir
#手动挂载完之后,通过df -h进行挂载情况查看,如果有以下日志,则说明挂载成功。
192.168.187.130:/opt/project/www 2.0G 377M 1.5G 21% /opt/project/centerRepo
192.168.187.130:/opt/project/logs 2.0G 377M 1.5G 21% /opt/project/logs
192.168.187.130:/opt/project/filedir 2.0G 377M 1.5G 21% /opt/project/filedir
到此,192.168.187.129和192.168.187.130两台服务器共享工程的日志文件、工程附件、以及将主节点的工程文件共享到从节点的中央工程文件目录下,方便从节点工程的更新。如果还有其他节点,配置方式一样。
五。从节点同步中央库文件
1.在各从节点创建工程包自动和中央库同步服务(实际生产环境,根据实际情况修改以下脚本即可)
vim /etc/init.d/entss
#编辑,添加以下内容并保存
#文件编辑开始
#!/bin/bash
# entss
#chkconfig:345 71 71
#description: Start up the Tomcat servletengine.
# Sourcefunction library.
./etc/init.d/functions
RETVAL=$?
#工程的文件名
WEB_NAME=entss
#主节点工程文件挂载点
REPO_DIR=/opt/project/centerRepo
#本地工程文件根目录
ENTSS_DIR=/opt/project/www
# checkfor dir script
if [ ! -d$REPO_DIR ]; then
echo "主节点工程文件挂载点不可用!"
exit
fi
if [ ! -d$ENTSS_DIR ]; then
echo "本地工程文件根目录不可用!"
exit
fi
syncy(){
#清空ENTSS_DIR
echo "清空本地工程..."
rm -rf $ENTSS_DIR/$WEB_NAME
echo "清空本地工程成功!"
#同步主节点工程文件
echo "同步主节点工程文件..."
cp -r $REPO_DIR/$WEB_NAME $ENTSS_DIR
echo "同步主节点工程文件成功!"
}
stopTomcat(){
#停止tomcat服务
echo "停止tomcat服务..."
service tomcat stop
echo "停止tomcat服务成功!"
}
startTomcat(){
#启动tomcat服务
echo "启动tomcat服务..."
service tomcat start
echo"启动tomcat服务成功!"
}
restart(){
stopTomcat
syncy
startTomcat
}
case"$1" in
restart)
restart ;;
reload)
syncy ;;
help)
echo "该服务用户将主节点的项目复制到从节点"
echo"==============使用之前须知=============="
echo "1:请先确保nfs环境已搭建完毕,并且将要求的目录共享"
echo "2:本机已将以下目录mount"
echo " 上传文件共享目录:/opt/project/filedir"
echo " 日志文件共享目录:/opt/project/logs"
echo " 工程文件共享目录:/opt/project/centerRepo"
echo "2:tomcat已安装成为服务,且服务名为tomcat"
echo "==============使用说明=============="
echo " restart:同步工程文件并重启tomcat"
echo " reload:同步工程文件部重启tomcat"
echo"===================================="
echo " author:早起的睡熊"
;;
*)
echo "Usage: tomcatd{start|help}"
exit 1
esac
exit $RETVAL
#文件编辑结束
2.测试entss服务
#授以entss执行的权限
chmod+x /etc/init.d/entss
#查看entss帮助信息
serviceentss help
#如果打印下面日志,则entss编辑成功
该服务用户将主节点的项目复制到从节点
==============使用之前须知==============
1:请先确保nfs环境已搭建完毕,并且将要求的目录共享
2:本机已将以下目录mount
上传文件共享目录:/opt/project/filedir
日志文件共享目录:/opt/project/logs
工程文件共享目录:/opt/project/centerRepo
2:tomcat已安装成为服务,且服务名为tomcat
==============使用说明==============
restart:同步工程文件并重启tomcat
reload:同步工程文件不重启tomcat
3.将entss加进服务
#注意这里不需要将entss服务设置为开启启动
chkconfig--add entss
4.同步本机工程文件,不需要重启tomcat服务
serviceentss reload
5.同步本机工程文件,需要重启tomcat服务
serviceentss restart