在一些中小企业中,往往发布一些新的产品,或搭建新的架构环境时,大部分采用一键搭建、部署、安装自动化无人值守服务,节约时间、减少成本、效率高等优势,下面是我下班后花了19个晚上时间写了一个自动化一键部署安装服务脚本,脚本写的不好,望大家多少包涵、指教。

要求:

  • 用户客户端通过浏览器访问到 http://www.test.com
  • 在客户端设置hosts解析到nginx前端负载均衡、反向代理服务器(proxy/lb),将用户请求轮询到LNMP Web服务器上,并做相对应的响应
  • 在两台web服务器上分别部署LNMP环境,数据库为独立机器,并授权远程用户访问;当用户上传图片、附件、头像、视频等,其数据将通过web服务器传到NFS存储器上
  • 在两台proxy(lb)机器上配置负载均衡、反向代理,即使机器宕机后备用机器自动接管服务。
  • 在备份服务器上实现对所有机器数据定时备份、时间同步、定时清理冗余数据(备份机器删除180天前数据,其他机器删除7天前数据)
  • 在代理向后端服务器发送请求信息时,可以识别代理的是哪台机器,同时实现让代理后端的服务器节点获取访问客户端用户的真实IP地址,日志等接收记录真实用户的IP,而不是代理服务器的IP
  • .........

一、企业系统架构需求:





中小型公司的组织架构 中小企业公司架构_java



注:本图中医省略路由、交换、防火墙等设备,若需要请自行添加或脑补即可。





中小型公司的组织架构 中小企业公司架构_java_02




 二、硬件设备及IP规划:




中小型公司的组织架构 中小企业公司架构_java_03


三、服务器工作规划:


中小型公司的组织架构 中小企业公司架构_java_04


 四、各机器目录规划:


中小型公司的组织架构 中小企业公司架构_java_05


五、用户规划:


中小型公司的组织架构 中小企业公司架构_java_06


 六、自动、手动部署任务清单、标准流程图:

         


中小型公司的组织架构 中小企业公司架构_中小型公司的组织架构_07


中小型公司的组织架构 中小企业公司架构_java_08


七、脚本样例:

分发机脚本:


中小型公司的组织架构 中小企业公司架构_中小型公司的组织架构_09


mysql、nfs、web、proxy(lb)、backup各机器脚本:


中小型公司的组织架构 中小企业公司架构_java_10


八、测试效果:



中小型公司的组织架构 中小企业公司架构_数据库_11


首先是脚本介绍及提示,然后是拷贝服务脚本及库文件等到分发机器上,如果中途拷贝文件时丢失或中断,会给出相应的提示以便排查处理。


中小型公司的组织架构 中小企业公司架构_linux_12


接着是检测本机防火墙状态,默认关闭,然后再收集IP地址。


中小型公司的组织架构 中小企业公司架构_数据库_13


提示用户若输入IP或其他错误,可按CTRL+C组合键退出可重新执行主脚本,若没问题,直接回车即可。


中小型公司的组织架构 中小企业公司架构_java_14


搭建yum仓库,通过Python_Simp1eHTTPServer模块实现yum源共享


中小型公司的组织架构 中小企业公司架构_linux_15


 pssh服务安装,用于批量分发文件,多线程执行指令


中小型公司的组织架构 中小企业公司架构_中小型公司的组织架构_16


中小型公司的组织架构 中小企业公司架构_nginx_17


以上为分发机系统初始化准备,以下为各服务一键安装:


中小型公司的组织架构 中小企业公司架构_linux_18


 一键安装mysql服务


中小型公司的组织架构 中小企业公司架构_数据库_19


中小型公司的组织架构 中小企业公司架构_中小型公司的组织架构_20


中小型公司的组织架构 中小企业公司架构_中小型公司的组织架构_21


中小型公司的组织架构 中小企业公司架构_linux_22


中小型公司的组织架构 中小企业公司架构_中小型公司的组织架构_23


 一键安装proxy(lb)负载均衡、反向代理服务:


中小型公司的组织架构 中小企业公司架构_数据库_24


 


中小型公司的组织架构 中小企业公司架构_linux_25


 


中小型公司的组织架构 中小企业公司架构_数据库_26


 一键安装web服务(nginx/php/blog): 


中小型公司的组织架构 中小企业公司架构_nginx_27


中小型公司的组织架构 中小企业公司架构_linux_28


中小型公司的组织架构 中小企业公司架构_中小型公司的组织架构_29


 


中小型公司的组织架构 中小企业公司架构_java_30


 客户端通过浏览器访问:www.test.com


中小型公司的组织架构 中小企业公司架构_java_31


中小型公司的组织架构 中小企业公司架构_nginx_32


 一键安装NFS存储服务:

 


中小型公司的组织架构 中小企业公司架构_数据库_33


 


中小型公司的组织架构 中小企业公司架构_linux_34


 客户端插入一章图片检测是否传到nfs存储器上了:

 


中小型公司的组织架构 中小企业公司架构_linux_35


 上传的图片已存至nfs机器上:


中小型公司的组织架构 中小企业公司架构_nginx_36


 


中小型公司的组织架构 中小企业公司架构_数据库_37


 一键安装backup备份、ntp时间同步、cron定时任务服务:


中小型公司的组织架构 中小企业公司架构_nginx_38


 


中小型公司的组织架构 中小企业公司架构_数据库_39


 


中小型公司的组织架构 中小企业公司架构_linux_40


检测各机器定时任务情况:

 


中小型公司的组织架构 中小企业公司架构_java_41


检测定时时间同步ok:


中小型公司的组织架构 中小企业公司架构_中小型公司的组织架构_42


中小型公司的组织架构 中小企业公司架构_linux_43


检测各机器定时备份数据及同步情况以web服务器为例:


中小型公司的组织架构 中小企业公司架构_中小型公司的组织架构_44


中小型公司的组织架构 中小企业公司架构_中小型公司的组织架构_45


中小型公司的组织架构 中小企业公司架构_中小型公司的组织架构_46


Is ok!