Ansible 升级 2.1:gather_subset 错误

Ansible upgrade 2.1: gather_subset error

我最近在我们的开发环境中从 1.9.1 升级到 ansible 2.1。我使用 virtualenv 通过 pip 安装 ansible 2.1。最近 运行 剧本时,我收到此错误:

fatal: [xxxxx-dev.com]: FAILED! => {"changed": false, "failed": true, "msg": "unsupported parameter for module: gather_subset"}

我看到在 Ansible 2.1 中,他们添加了一项新功能来收集有关主机的有限信息,但默认情况下它将 gather_subset 设置为全部。因此,我没有在我的配置文件中设置这个值,并希望它默认为全部。

此故障只发生过一次,后续运行均成功。我还读到 here 如果 ansible 也通过 apt 单独安装,它可能会导致问题,但由于我使用的是 venv,我假设它将被迫使用 2.1 版。任何帮助表示赞赏。

折腾了两天,终于明白为什么会失败了

原因是我在 ansible.cfg 中有一个默认配置设置,它使 ansible 从 /usr/share/ansible 中获取系统 ansible 库,而不是我们安装库的 virtualenv。系统 ansible 库在我们 运行 剧本所在的主机上已过时,因此导致失败。我删除了设置以确保 ansible 仅获取安装在 venv 中的最新模块。