如何仅在Ansible中获取自定义事实



我使用Ansible来配置远程节点。现在,我需要从这些节点获得一些信息,以便在ansible master上做出决策。

所以,我尝试了自定义事实。

1. Created facts.d directory in /etc/ansible/
2. Created a file test.facts in facts.d directory.
3. Response of the test.facts is JSON.
4. Execution permission is given for the facts file.

它起作用了。但是,我觉得它很慢,因为它也收集了默认的事实。

有没有办法单独接收test.facts文件的自定义事实?

您不能仅限于特定的.fact文件,但您可以轻松地:

  • 过滤掉除ansible_local事实之外的任何内容
  • 限制为包含上述事实的子集

虽然我不太确定这会对性能产生非常明显的影响,但在我的本地机器上进行了一些盲目尝试后,以下似乎有效:

ansible localhost -m setup -a 'gather_subset=!all,!min,virtual' -a filter=ansible_local

同时,如果事实收集时间真的成了一个问题,你应该考虑切换到持久事实缓存插件,并审查你的收集策略

最新更新