📅  最后修改于: 2023-12-03 14:59:19.520000             🧑  作者: Mango
Ansible 是一种非常流行的自动化工具,它允许管理员使用简单易懂的语法自动化许多常见的系统管理任务,从部署应用程序到管理基础结构和云环境。
一个非常实用的功能是通过 Adhoc 命令收集远程节点的事实。这可以帮助管理员快速了解主机的基本信息,并在不登录到远程系统的情况下轻松执行诊断工作。
在本文中,我们将学习如何使用 Ansible Adhoc 命令来收集事实。
在继续之前,请确保您的系统已经安装了 Ansible。
Adhoc 命令是一些简单的单行命令,可以让您在不使用 Playbook 的情况下针对您的主机组执行有用的操作。
例如,要查看您的所有主机的 CPU 核心数,您可以运行以下命令:
ansible all -i inventory.ini -m setup -a 'filter=ansible_processor_cores'
在这个命令中:
ansible
是 Ansible 命令的命令名称。all
是要运行命令的主机组。-i inventory.ini
是指定 Ansible inventory 文件的选项。-m setup
是要使用的 Ansible 模块 (setup),它允许您收集有关远程节点的事实。-a 'filter=ansible_processor_cores'
是指定模块参数,以此来过滤收集出来的结果。运行命令后,您将看到输出类似下面这样的内容:
node-1 | SUCCESS => {
"ansible_facts": {
"ansible_processor_cores": 2
},
"changed": false
}
node-2 | SUCCESS => {
"ansible_facts": {
"ansible_processor_cores": 4
},
"changed": false
}
在输出中,您可以看到每个节点的返回结果和收集到的 CPU 核心数。Ansible 将这些信息放在一个名为 ansible_facts
的字典中,这些信息可以在编写 Playbook 时轻松调用。
您可以使用模块参数来过滤您收集到的信息。例如:
-a 'filter=ansible_distribution_version'
-a 'filter=ansible_all_ipv4_addresses'
-a 'filter=ansible_processor_vcpu'
更多的过滤器可以在官方网站查看到,将您需要的过滤器放在 -a
参数的值里即可。
使用 Ansible Adhoc 命令可以快速收集远程节点的事实,这可以帮助管理员快速诊断问题并了解基础设施的状态。在此基础上,您可以编写 Ansible Playbook 并利用所收集到的信息来管理您的基础结构。
参考资料: