如何仅在 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
我正在使用 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