Ansible的事实收集机制允许您从远程主机收集系统信息,如操作系统版本、硬件信息等。以下是一个包含代码示例的解决方法:
facts.yml
的playbook文件,并添加以下内容:---
- name: Collect Facts
hosts: your_host # 替换为您的目标主机
gather_facts: yes
tasks:
- name: Display facts
debug:
var: ansible_facts
ansible-playbook facts.yml
这将收集目标主机的事实并将其显示在终端上。
示例输出:
TASK [Display facts] ********************************************************************************************************
ok: [your_host] => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.1.100"
],
"ansible_architecture": "x86_64",
"ansible_default_ipv4": {
"address": "192.168.1.100",
"alias": "eth0",
"broadcast": "192.168.1.255",
"gateway": "192.168.1.1",
"interface": "eth0",
"macaddress": "00:0c:29:4a:9d:58",
"mtu": 1500,
"netmask": "255.255.255.0",
"network": "192.168.1.0",
"type": "ether"
},
// 其他事实
}
}
这样,您可以使用ansible_facts
变量中的值来编写具有条件逻辑的任务,或者将它们存储在变量中以供后续使用。
这是一个简单的例子,您可以根据自己的需求扩展它。