博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自动部署、监控nginx nfs 服务
阅读量:2269 次
发布时间:2019-05-09

本文共 6444 字,大约阅读时间需要 21 分钟。

自动部署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##################服务监控模块结束

转载于:https://www.cnblogs.com/tonycloud/articles/6623450.html

你可能感兴趣的文章
蚂蚁上市延期!还想进阿里做技术专家?这套java面试题送给你
查看>>
终于学完了2021年阿里内部480道全套java面试题及答案
查看>>
面试官:熟悉Redis吗,项目中你是如何对Redis内存进行优化的
查看>>
JVM 实战学习总结:JVM 的分代模型:年轻代、老年代、永久代
查看>>
面试官:聊聊 Spring 中的线程安全性
查看>>
一篇文教你在 Java 中利用 redis 实现分布式全局唯一标识服务
查看>>
深入浅出数据库事务和4种隔离级别
查看>>
对限频限流的思考
查看>>
15天内4面阿里,成功拿下offer,分享个人面经
查看>>
万字长文,带你深入浅出五种负载均衡策略。
查看>>
看图搞懂微服务架构
查看>>
详解:java工具之解析yaml文件
查看>>
双非末流渣渣一本年初裸辞,5面阿里最终定级P7,扎心的辛酸历程
查看>>
包教包会:搭建RocketMQ双主双从同步集群,
查看>>
赞!期待已久的《架构解密:从分布式到微服务》终于出第2版了
查看>>
5年Java程序员,五面蚂蚁险拿offer定级P7,大厂面试不过如此?
查看>>
大厂面试必问!HashMap 怎样解决hash冲突?
查看>>
颠覆认知!阿里架构师居然是这样定义微服务、分布式构架构的
查看>>
面试屡屡碰壁,痛定思痛闭关修炼!半年后4面阿里成功拿offer
查看>>
幸亏阿里学长的这份Java多线程笔记,才能让我轻松拿下阿里一面
查看>>