Ansible:模块执行期间意外失败“find()正好需要2个参数(3个给定)”

Posted

技术标签:

【中文标题】Ansible:模块执行期间意外失败“find()正好需要2个参数(3个给定)”【英文标题】:Ansible: Unexpected failure during module execution "find() takes exactly 2 arguments (3 given)" 【发布时间】:2018-10-18 04:28:28 【问题描述】:

任务执行期间发生异常。看到完整的 回溯,使用 -vvv。错误是:TypeError: find() 恰好需要 2 参数(给定 3 个)致命的:[smuc8562]:失败! => “失败”:真, "msg": "模块执行过程中出现意外失败。", "stdout": ""

我们在尝试使用 win_package 模块运行 Ansible playbook 时遇到此错误。

 - name: Install JDK -  jdk_exe 
    win_package:
      path: ' jdk_exe '
      arguments: /s ADDLOCAL="ToolsFeature,SourceFeature"
      product_id: " jdk_product_id "
      state: present

Ansible 大师:使用 Python 2.6.9 运行的 SUSE Linux x64 Windows 目标:Windows Server 2012 R2

win_package 的其他实例工作正常。

我们尝试了原始命令,并将 win_package 替换为 win_command,但问题仍然存在。

【问题讨论】:

你试过把所有的arguments放在引号里吗? - arguments: '/s ADDLOCAL="ToolsFeature,SourceFeature"' 是的,我们得到了同样的错误 【参考方案1】:

将 Python 升级到 2.7.14 即可解决问题。

【讨论】:

以上是关于Ansible:模块执行期间意外失败“find()正好需要2个参数(3个给定)”的主要内容,如果未能解决你的问题,请参考以下文章

playbookname中命令执行失败可以怎么处理

使用 find (ansible) 模块读取多数组

Ansible-----条件判断与错误处理

模块解析失败:在部署Heroku时出现意外令牌(14:6)

网络自动化之Ansible模块的构建-1

使用 Nodejs Sharp 模块时出错。模块解析失败:意外字符 '' (1: 0)