我使用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
同时,如果事实收集时间真的成了一个问题,你应该考虑切换到持久事实缓存插件,并审查你的收集策略