文章目录
- 需求分析
-
- 具体业务(135分)说明
-
- 搭建跳板机服务(5分)
- 搭建NTP时间同步服务/内部共享上网(5分)
- 一键完成本套集群部署(Ansible/Saltstack/Shell/docker、K8S)(15分)
- MySQL数据库环境搭建,主从复制服务搭建(5分)
- MHA高可用(10分)
- 将网站项目的Session会话存储至Redis(5分)
- Rsync全网备份项目/异地备份(10分)
- NFS提供静态站点存储(5分)
- NFS共享存储数据实时复制到backup(5分)
- 搭建Nginx+Keepalived负载高可用(10分)
- Nginx+Tomcat搭建Jpress(5分)
- Nginx+PHP搭建WeCenter、WordPress(10分)
- 实现全站HTTPS加密访问项目(10分)
- firewalld仅允许对外提供SSH服务的10.0.0.61访问(5分)
- Zabbix完成集群的基础/应用/Web/自动化监控(10分)
- 完整集群架构日志收集功能(ELK/日志易)(10分)
- 完整集群架构自动化上线代码(Gitlab/Jenkins)(10分)
- 环境说明
- 实验记录
- 注:
需求分析
具体业务(135分)说明
搭建跳板机服务(5分)
跳板机(也就是管理机),搭建内容:免密连接内网中的其他机器+安装Ansible
搭建NTP时间同步服务/内部共享上网(5分)
“内部共享上网”是什么??
“搭建NTP时间同步服务”:是否下面这样做可行?
将ntp1机器安装chrony数据同步服务作为NTP服务端,其它机器也可安装chrony,把ntp1机器作为上游NTP服务器
一键完成本套集群部署(Ansible/Saltstack/Shell/docker、K8S)(15分)
使用Ansible一个剧本,一次执行,一次性自动全部这些业务需求
MySQL数据库环境搭建,主从复制服务搭建(5分)
这里先使用mariadb,出两机器分别作为主库、从库
MHA高可用(10分)
将网站项目的Session会话存储至Redis(5分)
Rsync全网备份项目/异地备份(10分)
需要备份项目的哪些内容??(Web应用中用户上传数据一定需要?日志?数据库数据?干脆直接在Web01和Web02都把Web应用的站点目录都打包备份到备份服务器可以吗??然后在db01上把数据库的所有数据导出打包备份到备份服务器可以吗??)
NFS提供静态站点存储(5分)
或许是共享存储用户上传的一些静态文件即可?
NFS共享存储数据实时复制到backup(5分)
这里是指:为了简单实现NFS服务器的高可用,把backup服务器作为NFS服务器的备用机,仅仅是简单单向把共享数据实时复制到backup服务器中,还没有高可用的操作,backup也不算是NFS的高可用的备用机
搭建Nginx+Keepalived负载高可用(10分)
lb01和lb02组成一个负载均衡服务器的高可用,keepalived根据nginx的状态来判断是否启用自动接管程序
Nginx+Tomcat搭建Jpress(5分)
Jpress是Java代码开发,Nginx处理Jpress的静态请求,Tomcat处理Jpress的动态请求
Nginx+PHP搭建WeCenter、WordPress(10分)
实现全站HTTPS加密访问项目(10分)
所有http的都需要重定向到https来访问
firewalld仅允许对外提供SSH服务的10.0.0.61访问(5分)
指架构内网中的机器的防火墙只允许管理机IP(10.0.0.61?不是172.16.1.61?)且SSH服务通过
(或许只是为了测试firewalld的功能罢了)
Zabbix完成集群的基础/应用/Web/自动化监控(10分)
指定一个机器安装Zabbix,监控一台机器
完整集群架构日志收集功能(ELK/日志易)(10分)
E:用一台机器安装ElasticSearch服务,浏览器访问网址:https://10.0…0.51:9200/,出现下面的内容即可:
完整集群架构自动化上线代码(Gitlab/Jenkins)(10分)
单独一台机器实现Gitlab自动上线代码或者实现Jenkins
环境说明
测试环境结构图(“架构”?)
管理机
- IP:
- 外网10.0.0.61
- 内网:172.16.1.61
- 业务内容:
- 作为跳板机:免密访问内网中的机器
- 下发自动化部署任务给下面内网中被管理的机器
- 3
负载均衡服务器
- IP:
- 内网IP:172.16.1.5(lb01服务器)和172.16.1.6(lb02服务器)
- 不需要外网IP
- 业务内容:
- 负载均衡,分发流量到Web服务器中
- 自身的高可用
Web服务器
- IP:
- 内网IP:172.16.1.7(web01服务器)、172.16.1.8(web02服务器)、172.16.1.9(要不要web03服务器??????)
- 业务内容:
-
web01和web02上:Nginx+PHP搭建WeCenter和WordPress;使得web01和web02实现负载均衡集群支持两个Web应用(WeCenter和WordPress)的高响应能力
-
在web01和web02上:安装Tomcat、JDK,tomcat的对应目录存放Jpress的war包;Nginx作为项目的默认入口地址以及存放jpress的静态文件;保证Tomcat仅处理Jpress的动态代码,那种图片网页CSS等静态文件的请求则由Nginx来处理
-
把两个Web应用的用户上传数据的目录挂载到NFS的共享目录中
-
web01和web02上都直接把两个Web应用的站点目录打包备份到备份服务器中(这样可以吗?)
-
数据库服务器
缓存数据服务(是否需要单独一台机器??)
- IP:
- 内网IP:172.16.1.51??
- 不需要外网IP
- 业务内容:
- 使用Redis服务实现Web应用的会话保持
关系数据服务
- IP:
- 内网IP:172.16.1.51和172.16.1.52
- 不需要外网IP
- 业务内容:
- 使用关系型数据库(这里使用Mariadb)存储基本的Web应用中的数据
- 主从复制
- MHA高可用????????????
- 是否再需要将整个数据库备份到备份服务器中???
共享存储服务器
- IP:172.16.1.31(这里暂不实现共享存储服务器的高可用)
- 业务内容:
- 搭建用于共享存储两个Web应用的用户上传的文件(静态文件)的共享目录
- 使用sersync将以上两个目录实时同步到备份服务器的对应目录中(仅仅是实现实时同步的操作)
备份服务器
- IP:172.16.1.41(这里暂不实现备份服务器的高可用)
- 业务内容:
- 备份目录1存放WeCenter应用的站点目录备份数据(包含web01和web02传来的),并校验
- 备份目录2存放WordPress应用的站点目录备份数据(包含web01和web02传来的),并校验
- 是否需要备份目录3存放数据库服务器传来(由那个数据库服务器传来?)的WeCenter和WordPress的数据库的sql文件的压缩包??
监控服务器
- IP:
- 内网IP:172.16.1.71
- 不需要外网IP
- 业务内容:
- 使用Zabbix监控一台服务器(哪台服务器??)的…
日志收集服务器(Logstash服务需要单独一台机器??)
ElasticSearch服务器
- IP:
- 内网IP:172.16.1.81
- 不需要外网IP
- 业务内容:
- ????
Kibana服务器
- IP:
- 内网IP:172.16.1.82
- 不需要外网IP
- 业务内容:
- ????
自动化上线代码服务器
- IP:
- 内网IP:172.16.1.91
- 不需要外网IP
- 业务内容:
- 使用Gitlab或Jenkins自动化部署代码,上线到环境中去????
实验记录
搭建跳板机服务