ansible-管理事实

ansible事实

Ansible事实是Ansible在受管主机上自动检测到的变量。事实中含有与主机相关的信息,可以像play中的常规变量、条件、循环或依赖于从受管主机收集的值的任何其他语句那样使用。
 

为受管主机收集的一些事实可能包括·

主机名称,内核版本,网络接口,IP地址,操作系统版本,各种环境变量,CPU数量,提供的或可用的内存,可用磁盘空间
 

通常,每一个play在执行任务的时候会自动运行setup模块收集事实

查看为受管主机收集的事实的一种方式是,运行一个收集事实并且使用debug模块显示的变量值

Ansible事实的实例

事实变量
短主机名ansible_facts['hostname']
完全限定的域名ansible_facts['fqdn']
主要IPV4地址基于路由ansible_facts['default_ipv4']['address']
所有网络接口的名称列表ansible_facts['interfaces']
/dev/vda1磁盘分区的大小ansible_facts['devices']['vda']['partitions']['vda1']['size']
当前运行的内核的版本

ansible_facts['kernel']

也可以将中括号换成点

ansible_facts['devices']['vda']['partitions']['vda1']['size']可以等同于

ansible_facts.devices.vda.partitions.vda1.size

创建自定义事实

默认情况下,setup模块从个受管主机的/etc/ansible/facts.d目录下的文件和脚本中加载自定义事实,各个文件或者脚本必须以.fact结尾才能使用。动态自定义事实脚本必须输出JSON格式的事实,且必须是可执行程序

可以使用INI格式编写静态自定义事实文件。

也可以使用JSON格式提供

 自定义事实是储存在ansible_facts.ansible_local变量中

例如保存在/etc/ansible/facts.d/demo.fact

可以使用ansible_facts.ansible_local.demo.users.user1的值为joe

 魔法变量

有一些变量并非事实或者setup配置,但是也是由ansible自动设置。这些魔法变量可以用于获取与特定受管主机相关的信息

常用的:

hostvars
包含受管主机的变量,可以用于获取另一台受管主机的变量的值。如果还没有为受管主机收集事实,则它不会包含该主机的事实。

group_names
列出当前受管主机所属的所有组。

groups
列出清单中的所有组和主机。

inventory_hostname
包含清单中配置的当前受管主机的主机名称。这可能因为各种原因而与事实报告的主机名称不同。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值