Ansible Facts

Ansible Facts是Ansible从受管主机自动探查到的变量

Ansible Facts由setup模块调取,其中包含的信息储存到可重复使用的变量中

借助Ansible Facts,可以方便的检索受管节点的状态,并根据其状态决定要执行的操作

事实提供如下相关信息:

  主机名称

  内核版本

  网络接口

  IP

  操作系统版本

  各种环境变量

  CPU数量

  提供或可用的内存

  可用的磁盘空间

  。。。

Ansible Facts可以成为playbook的一部分:

  • 可以根据当前内核版本来重新启动服务器
  • 可以根据可用的内存来定义MySQL配置文件
  • 可以根据主机名来创建用户
---
- name: facts
  hosts: dev
  tasks:
    - name: debug
      debug:
        msg: >
                The default IPv4 address of {{ ansible_facts.fqdn }}
                is {{ ansible_facts.default_ipv4.address }}

 

 

命令格式 

ansible localhost -m setup [-a "filter=facts_field"]

输出以JSON格式返回,每个值都存在一个Python字典中,管理员而后可以浏览字典来检索特定值:

  • 主机名:{{ ansible_hostname }}
  • IPv4: {{ ansible_default_ipv4.address }}
  • 主磁盘第一分区大小:{{ ansible_device.vda.partitions.vda1.size }}
  • DNS: {{ ansible_dns.nameservers }}
  • 内核版本: {{ ansible_kernel }}

 

Facts开关

facts在playbook中默认启用,可以手动关闭

---
- name: test
  hosts: dev
  gather_facts: false
  tasks:
  - ....