asible中的事实管理(变量)

事实介绍

所谓“事实”,就是已经存在的,已经被定义好的。
事实包括:主机名称、内核版本、网络接口、IP地址等 。

打印ansible_facts
在这里插入图片描述
执行结果:
在这里插入图片描述
将事实全部打印了出来。几乎包含了主机的所有信息。

再playbook上的书写中,通常可以使用字典的形式对事实进行动态调用。

也可以使用 setup模块显示主机信息:
在这里插入图片描述

事实的调用

演示:
要求打印本地的ipv4地址,域名信息:
在这里插入图片描述
在这里插入图片描述
当playbook中没有使用事实时,可以选择禁用收集主机信息(gather_facts: no)来加快playbook执行时间。

创建自定义信息

除了主机信息外,我们也可以自己定义事实:
定义方法:
首先在/etc/ansible下建立存放自定义事实的目录(facts.d),在目录中新建自定义文件,自定义的事实文件必须以.fact结尾才能被系统识别!
方法:INI格式和JSON格式
INI格式更偏向于人阅读的舒适,JSON更易于与机器进行交流。
所以在定义事实时,推荐选择JSON。

在这里插入图片描述
新建自定义事实:
新建:/etc/ansible/facts.d/test.fact
在这里插入图片描述
定义完成后,保存退出。
使用ansible localhost -m setup 来查看本机事实:
可以看到我们定义的事实:
在这里插入图片描述
在使用中需要调用时依旧使用字典的调用方式即可。

魔术变量

hostvars:包含受管主机的变量,可以获取受管主机变量的值。

演示:在本机获取serverc.westos.com主机的值:
在这里插入图片描述

group_names:可以列出当前受管主机的所属的主机组。
groups:可以列出当前清单。
inventory_hostname:可以列出清单中配置的当前受管主机的名称。

演示:使用自定义事实的方法安装应启动apache:
思路:

  • 第一步:创建自定义事实文件并拷贝)到受管主机的自定义事实目录(受管主机须安装ansible),自定义事实文件中包括安装包名称,服务名称,状态,是否开机启动等信息。

使用file模块建立自定义事实存放目录
使用copy模块将定义的事实文件拷贝到受管主机的自定义事实存放目录。

  • 第二步:创建主playbook,在主playbook中进行对apache的安装。 在使用yum模块中,可以直接以字典的形式使用自定义的变量。最终完成安装。

这样的话,大大提高了playbook的复用性。如果安装其他包的时候,就不用修改playbook,直接修改在定义事实文件即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值