首页 > 解决方案 > 如何提高ansible速度?

问题描述

我有1000台服务器。当我运行 ansible 时,收集事实需要很多时间。有没有人有解决方案?我可以将收集的事实存储到文件中然后从中读取吗?

第二个问题是,起初我可以用我的密钥 ssh 到 1000 台服务器,但一段时间后它不接受我的密钥,我应该打开新会话,所以我运行 10 台服务器的 10 台服务器。我应该怎么办?

标签: ansible

解决方案


Ansible 支持许多缓存插件,您可以使用这些插件来保存事实,这样就不需要每次都收集它们。

例如,将以下内容添加到您ansible.cfg的目录中以缓存为 JSON 文件.facts

[defaults]
gathering = smart
fact_caching = jsonfile
fact_caching_connection = ./.facts
fact_caching_timeout = 86400

这些fact_caching_timeout设置控制缓存信息被视为有效的时间。记住这一点很重要:例如,如果您向主机添加新的网络接口,它不会显示在 ansible 事实中,直到 (a) 先前缓存的信息过期或 (b) 您明确强制收集事实.


推荐阅读