我最近在开发环境中从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中看到,他们添加了一项新功能来收集有关主机的有限事实,但默认情况下会为所有人设置literal style block scalar。因此,我没有在配置文件中设置此值,并希望它默认为全部。
此故障仅发生一次,后续运行成功。我也读过gather_subset如果ansible也是通过apt单独安装的,它可能会引起问题,但由于我使用的是venv,我认为它将被强制使用2.1版本。任何帮助表示赞赏。
答案 0 :(得分:3)
经过两天的挣扎,我终于明白了为什么失败了。
原因是我在ansible.cfg中有一个默认的配置设置,它是从/ usr / share / ansible而不是virtualenv安装库来安装ansible系统的ansible库。系统ansible库在我们运行playbook的主机上已经过时,从而导致失败。我删除了该设置以确保ansible选择仅安装在venv中的最新模块。