我正在尝试让 Ansible 与 --limit 一起工作,为此我需要有关其他主机的事实,我正在使用fact_caching进行缓存。我应该运行什么命令,以便它只收集所有主机上的所有事实并缓存它们,而不运行任何任务?像这样的东西设置模块 http://docs.ansible.com/ansible/setup_module.html如果它缓存了它收集的事实,那就完美了,但似乎没有。
这是我解决问题的方法:
1.- 在您的剧本 (site.yml) 上启用事实收集:
gather_facts: yes
2.- 启用事实缓存 http://docs.ansible.com/ansible/playbooks_variables.html#fact-caching在 ansible.cfg 上:
2.1.- 选项 1 - 如果您有时间安装 redis,请使用此选项:
[defaults]
gathering = smart
fact_caching = redis
# two hours timeout
fact_caching_timeout = 7200
2.2.- 选项 2 - 现在使用它进行测试很简单,但比 redis 慢:
[defaults]
gathering = smart
fact_caching = jsonfile
fact_caching_connection = /tmp/facts_cache
# two hours timeout
fact_caching_timeout = 7200
3.- 更新或创建事实缓存。为此,只需一项任务即可创建一个新角色(缓存更新):执行ping。我们使用 ping 是因为它是最简单、最快的 ansible 任务,因此它将帮助我们快速更新缓存:
- name: Pinging server to update facts cache
ping:
问候,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)