主机规划
主机名称 | 操作系统版本 | 内网IP | 外网IP(模拟) | 安装软件 |
---|---|---|---|---|
ansi-manager | CentOS7.5 | 172.16.1.180 | 10.0.0.180 | ansible |
ansi-haproxy01 | CentOS7.5 | 172.16.1.181 | 10.0.0.181 | |
ansi-haproxy02 | CentOS7.5 | 172.16.1.182 | 10.0.0.182 | |
ansi-web01 | CentOS7.5 | 172.16.1.183 | 10.0.0.183 | |
ansi-web02 | CentOS7.5 | 172.16.1.184 | 10.0.0.184 | |
ansi-web03 | CentOS7.5 | 172.16.1.185 | 10.0.0.185 |
添加用户账号
说明:
1、 运维人员使用的登录账号;
2、 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放;
3、 该用户也被 ansible 使用,因为几乎所有的生产环境都是禁止 root 远程登录的(因此该 yun 用户也进行了 sudo 提权)。
1 | # 使用一个专门的用户,避免直接使用root用户 |
Ansible 配置清单Inventory
之后文章都是如下主机配置清单
1 | [yun@ansi-manager ansible_info]$ pwd |
Facts 概述
Ansible Facts 是 Ansible 在被托管主机上自动收集的变量。它是通过在执行 Ad-Hoc 以及 Playbook 时使用 setup 模块进行收集的,并且这个操作是默认的。
因为这个收集托管主机上的 Facts 比较耗费时间,所以可以在不需要的时候关闭 setup 模块。收集的 Facts 中包含了托管主机特有的信息,这些信息可以像变量一样在 Playbook 中使用。
收集的 Facts 中包含了以下常用的信息:
主机名、内核版本、网卡接口、IP 地址、操作系统版本、环境变量、CPU 核数、可用内存、可用磁盘 等等……。
使用场景:
- 通过 facts 检查 CPU,生成对应的 Nginx 配置文件
- 通过 facts 检查内存情况,定义不同的 MySQL 配置文件或 Redis 配置文件
- 通过 facts 检查主机 hostname,生成不同的 zabbix 配置文件
获取指定受控端的 facts 信息
1 | [yun@ansi-manager ansible_info]$ pwd |
如何在 playbook 中关闭 facts
1 | [yun@ansi-manager object03]$ pwd |
Facts 案例-获取主机名和网卡信息
获取受控端的主机名,内网地址和外网地址
1 | [yun@ansi-manager object03]$ pwd |
Facts 案例-模拟zabbix客户端配置
根据受控端主机名的不同,在受控端生成不同的配置文件
1 | [yun@ansi-manager object03]$ pwd |
受控端1配置文件查看
1 | [yun@ansi-haproxy01 ~]$ cat /tmp/zabbix_agentd_temp.conf |
受控端2配置文件查看
1 | [yun@ansi-haproxy02 ~]$ cat /tmp/zabbix_agentd_temp.conf |