自动部署nginx nfs 服务
服务端上传安装配置脚本:
######服务端安装脚本##!/usr/bin/bashnsinstall="yum install rpcbind nfs-utils -y"epelinstall="yum install epel-release -y"installnginx="yum install nginx -y"#stop nginx serverfunction stopnx(){systemctl stop nginx}#restart nginx serverfunction restartnx(){systemctl restart nginx}#restart nfs serverfunction nfsrestart(){systemctl start nfs}#reload nginx serverfunction reloadnx(){systemct reload nginx}function initalconfig(){systemctl stop firewalldsetenforce 0}#nginx install epel installfunction epelcheck(){rpm -qa | grep epelif [ $? != 0 ]then$epelinstallelseecho "epel alread install"fi}function nginstall(){rpm -qa | grep nginxif [ $? != 0 ]then$installnginxelseecho "nginx already exist" fisleep 3}####nfs-utlis rpcbind installfunction nfsinstall(){rpm -qa | grep nfs-utilsif [ $? != 0 ]then$nsinstallelseecho "nfs rpcbind alread install"fi}#server restart block #服务启动模块function ngstart(){systemctl status nginx | grep runningif [ $? != 0 ]thenrestartnxecho "nginx server restart server successfully"elseecho "nginx server alread running"fi}function rpcbindrst(){restart=`systemctl start rpcbind`systemctl status rpcbind | grep runningif [ $? != 0 ]then$restartecho "restart rpcbind successfully!"elseecho "rpcbind alread running"fi}function nfserverrst(){nfsrestartserver=systemctl status nfs-utils |grep deadif [ $? != 0 ]thennfsrestartserverecho "restart nfs server successfully!!"elseecho "server alread running"fi}#read -p "please input nginx master serverIP address: " server1#read -p "please entry nginx second serverIP address: " server2#read -p "please entry nginx third serverIP address: " server3#Reverse proxy configure
####配置模块开始function ngconfigure(){sedconfig="sh /opt/sed.sh" #调用sed修改配置文件脚本 egrep "upstream" /etc/nginx/nginx.confif [ $? != 0 ]then$sedconfigelseecho "configure file already modify"fi}echo "#################nfs shared input################ "#调用mount挂载脚本function nfsshared(){nfssha="sh /opt/nfsservermountcfg.sh" #调用NFS挂载脚本$nfssha}#check epelepelcheck#nginx installnginstall#nginx server restartngstart#nfs installnfsinstall#rpcbind restartrpcbindrst#nfs server restartnfsrestart#nginx configurengconfigure#nfs sharednfsshared##############sed 修改脚本开始 ##################################!/usr/bin/bashread -p "please input nginx master serverIP address: " server1read -p "please entry nginx second serverIP address: " server2read -p "please entry nginx third serverIP address: " server3function restart(){systemctl restart nginxecho "restart nginx successfully!"}sed -ri "/http \{/a\ \ \ \ upstream tonycloud\{\n\ \ \ \ \ \ \ \ server $server1 weight=3;\n\ \ \ \ \ \ \ \ server $server2;\n\ \ \ \ \ \ \ \ server $server3; \}" /etc/nginx/nginx.confsed -ri '/^#/d' /etc/nginx/nginx.conf | sed -r '/^$/d'sed –i "/location \\/ {/a\ \ \ \ \ \ \ \ \ \ \ \ proxy_pass http://tonycloud;\n" /etc/nginx/nginx.confrestart######修改脚本结束############配置模块结束######
####nfs nginx 客户端安装脚本 #将脚本上传到客户端直接执行#!/usr/bin/bashfirewalstop="systemctl stop firewalld"selinxcl="setenforce 0" cmd3="touch /opt/3.txt"###########################################################inital########################firewalstop="systemctl stop firewalld"selinxcl="setenforce 0"##########客户端安装nfs nginx rpc模块 ######################client install nginx rpcbind ###################### remoteistepel="yum install epel-release -y"remoteistnginx="yum install nginx -y"remoterstnginx="systemctl start nginx" remoteistrpc="yum install rpcbind -y "remoterstrpc="systemctl start rpcbind.service" #初始化函数(关闭防火墙 SELINUX)function checkfw(){firewd="systemctl stop firewalld"echo "check firewall"systemctl status firewalld | grep runningif [ $? = 0 ]then$firewdecho "success close firewall"elseecho "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~firewall alread close~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"fi} #epel checkfunction epelcheck(){rpm -qa | grep epelif [ $? = 0 ]thenecho "##############################install epel ##############################################################"$remoteistepelelseecho "epel alread install "fi } #nginx install function nginstall(){rpm -qa | grep nginxif [ $? != 0 ]thenecho "##############install nginx ############################"$remoteistnginx && $remoterstnginxelseecho "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~nginx already exist~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"fisleep 3 } #RPC 安装模块function rpcinstall(){rpm -qa | grep rpcbindif [ $? != 0 ]thenecho "#######################install rpcbind ################################"$remoteistrpc && $remoterstrpcelseecho "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~client rpcbind already exist~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"fisleep 3 } ####客户端挂载模块str=$(printf "%-110s" "#")function shreadstore(){filecon=`cat /etc/exports`sharedirectory="/etc/exports"if [ -s $sharedirectory ]thenecho "$sharedirectory not empty >>>>>>>>>>> contents is $filecon"else echo "${str// /#}"echo "example: 192.168.100.0/24 "read -p "please input nfs store shared internet IP segment:" sharedIPecho "/share $sharedIP(rw,sync,fsid=0)" >> $sharedirectoryecho "successfully cofigure nfs store file ,please look /etc/exports files "sleep 3fi} function clientmount(){echo "remote host mount nfs store:"echo "default mount /opt"echo "example: 192.168.100.134"read -p "please input nfsServer IP address: " server1mountcmd="mount -t nfs $server1:/share /opt"# ssh $server2 ${mountcmd}${mountcmd}echo "$mountcmd mount successfully coming out "sleep 3exit}shreadstoreclientmount checkfwnginstallrpcinstall#nfs shared ip segmentshreadstore#nfs mountclientmountexit######################client install done##############################################
##################服务监控模块,只要监控服务 stop 则立刻start###
#!/usr/bin/bashnginxst="systemctl start nginx"date1=`date +%F\ \%H:%M:%S`nfsst="systemctl start nfs"#nginx server monitor#服务监控模块开始function nginxmonitor(){while :dosystemctl status nginx | grep running >> /dev/nullif [ $? -ne 0 ]thenecho "${date1} ##########nginx server will start" >> /opt/nginxmonitor.logsleep 0.3${nginxst}elseecho "${date1} ::::: nginx server alread start..... " >> /opt/nginxmonitor.logsleep 3clearfidone}function nfsmonitor(){while :dosystemctl status nfs | grep dead >> /dev/nullif [ $? -eq 0 ]thenecho "${date1} ########## nfs server will start " >> /opt/nfsmonitor.log${nfsst}sleep 0.3elseecho "${date1} ::::: nfs server alread start..... " >> /opt/nfsmonitor.logsleep 3clearfidone}nginxmonitor nfsmonitor##################服务监控模块结束