7.Ansible.facts变量采集被控端自身状态信息

7.Ansible.facts变量采集被控端自身状态信息

什么是facts

ansible会通过module setup来收集主机的系统信息,这些收集到的系统信息叫做facts,
这些facts信息可以直接以变量的形式使用。
自动采集,采集被控端主机的自身状态信息。
比如:主机名、cpu核心数、内存、硬盘等等等信息


步骤

1.先抓取被控端主机变量的值(变量都是被控端主机上已经定义好的)
2.推送配置文件之前,会先把配置文件中的变量进行引用,替换成具体的变量值
3.推送配置文件


案例

例如:部署nginx的时候,配置文件中的worker_processes的值应该与主机的CPU核心数保持一致

注意:每个机器的核心数都不一样,如果发给被控端的配置文件是写死的,CPU核心数与worker_processes的值不一致,就起不到预先想要的效果,所以就用到了facts变量来解决这一需求

在这里插入图片描述
例如:根据物理内存的总大小,生成 不同的memcached配置文件。
例如:根据被控端的主机IP地址,生成不同的redis配置文件。


查看facts变量

查看一下本机的各种facts变量:ansible localhost -m setup | less
可以看到每个变量都有对应的变量值,后期使用的时候直接引用这些定义好的变量即可

在这里插入图片描述


优化

如果说你开启了facts变量,你会发playbook执行很慢。

优化:
方法一.直接关闭
方法二.将facts提取的信息存储至redis中

方法二
1.在本地部署redis
安装redis
yum install redis -y

2.修改redis配置文件
vim /etc/redis.conf
redis部署在哪台机器上就写哪台机器的IP

在这里插入图片描述

3.重启redis服务
systemctl start redis
redis启动后会起来6379端口

4.然后尝试连接redis
redis-cli -h 192.168.51.180
-h参数是指定要连接的redis服务的IP地址

5.修改ansible的配置文件
vim /etc/ansible/ansible.cfg

facts有3种收集方式:
smart默认收集,他在已有的情况下就不再收集
implicit是默认收集,要禁止需要将gather_facts参数改为False状态
explicit默认不收集,要收集的话将gather_facts参数改为True状态
在这里插入图片描述

这里使用第一种
将facts变量的信息保存到redis中,保存1天,等于86400秒
保存退出

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值