主机规划
序号 | 主机名称 | 操作系统版本 | 内网IP | 外网IP(模拟) | 安装软件 |
---|---|---|---|---|---|
0 | 对外提供访问 | CentOS7.5 | 10.0.0.170 | keepalived【无主机,只有一个虚拟VIP】 | |
1 | ansi-haproxy01 | CentOS7.5 | 172.16.1.181 | 10.0.0.181 | zabbix-agent、haproxy |
2 | ansi-haproxy02 | CentOS7.5 | 172.16.1.182 | 10.0.0.182 | zabbix-agent、haproxy |
3 | ansi-web01 | CentOS7.5 | 172.16.1.183 | 10.0.0.183 | zabbix-agent、nginx+php、mysql(master) |
4 | ansi-web02 | CentOS7.5 | 172.16.1.184 | 10.0.0.184 | zabbix-agent、nginx+php、mysql(slave) |
5 | ansi-web03 | CentOS7.5 | 172.16.1.185 | 10.0.0.185 | zabbix-agent、nginx+php、mysql(slave)、memcached |
6 | ansi-manager | CentOS7.5 | 172.16.1.180 | 10.0.0.180 | Ansible、zabbix-server、zabbix-agent、mariadb「zabbix使用」 |
系统初始化:必要的系统初始化
基础组件包括:zabbix监控,mariadb(用于存放zabbix监控信息)
业务组件包括:MySQL、memcached、nginx、PHP、haproxy、keepalived
添加用户账号
说明:
1、 运维人员使用的登录账号;
2、 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放;
3、 该用户也被 ansible 使用,因为几乎所有的生产环境都是禁止 root 远程登录的(因此该 yun 用户也进行了 sudo 提权)。
1 | # 使用一个专门的用户,避免直接使用root用户 |
备注:记得在管理机 172.16.1.180 上实现对其他机器的免密登录。
Ansible 配置清单Inventory
1 | [yun@ansi-manager ansible_info]$ cat hosts_key |
系统架构
实战项目GitHub地址
该项目已经放在了GitHub上,地址如下:
1 | https://github.com/zhanglianghhh/ansible-example-lnmp |
如需要请自行访问或下载。
项目任务分解
获取需求并拿到机器的时候,这时需要我们做如下分析:
1、主机规划:每台主机用于部署什么模块【本文第一节实际已经规划好了】
2、普通用户创建与提权:如果机器是公司统一初始化的,那么可以不创建普通用户,只需提权即可。
3、ansible管理机到其他机器的免密登录。
4、具体任务分解:包括机器必要的初始化、基础组件部署与业务组件部署。如果公司对机器做了统一的初始化,那么视情况而定。
1 | ## 系统初始化 |
项目编写与后续验证步骤
请参见:
1 | https://github.com/zhanglianghhh/ansible-example-lnmp |
这里包含:涉及目录与文件说明;服务部署;停止服务【因为是个人电脑通过虚拟机实现的】;服务验证。
为了避免重复这里就不单独说了,参见上面地址即可。