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

How to get Custom Facts only in Ansible?

我正在使用 Ansible 配置远程节点。现在,我需要从这些节点获取一些信息以在 ansible master.

做出决定

所以,我尝试了 Custom Facts。

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

同时,如果事实收集时间真的成为一个问题,您应该考虑切换到 persistent facts cache plugin and review your gathering strategy