首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible "msg":“此模块需要key=value参数回显

Ansible "msg":“此模块需要key=value参数回显
EN

Stack Overflow用户
提问于 2016-06-30 04:23:14
回答 1查看 696关注 0票数 0

我刚开始学习ansible,并在跟踪医生。我在运行命令,我还没有详细地看过剧本之类的东西。我能够成功地与

代码语言:javascript
复制
ansible --private-key ../key.pem  -vvvv all -m ping -u root 

我有主机文件中的IP。所以我只是在运行文档中指定的另一个命令。

代码语言:javascript
复制
ansible --private-key ../key.pem  -vvvv all -m ping -u root  -a "/bin/echo batmaan"

回传

>> { " FAILED ":true,"msg":“此模块需要key=value参数('/bin/echo','batmaan')”}

有什么想法吗?

更新

我在使用-m shell之前使用了-a参数,它起了作用。我的不可接受版本是1.4.4。当我们说出完整的路径时,为什么要通过“外壳”呢?就连文档也什么也没说。这是一个特定版本的问题吗?请帮帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-30 10:18:20

在这里,ansible二进制代码是这样说的:

代码语言:javascript
复制
  -a MODULE_ARGS, --args=MODULE_ARGS
                        module arguments

  -m MODULE_NAME, --module-name=MODULE_NAME
                        module name to execute (default=command)

因此,在执行ansible localhost -m ping时,ansible调用ping模块来测试与主机的连接(在本例中为localhost)。

当您尝试ansible localhost -m ping -a "/bin/echo batmaan"时,您要求ansible使用/bin/echo, batmaan参数调用ping模块,这是错误的。

有一个shell模块可以在远程主机上执行命令,所以当您执行ansible localhost -m shell -a "/bin/echo batmaan"时,您要求ansible使用您的参数调用shell模块,后者用"/bin/echo batmaan"执行/bin/sh

请注意,要调用的默认模块是command (这与shell模块略有不同),它接受第一个参数并将其作为命令执行,参数如下(但不要处理这些参数),因此执行ansible localhost -a "/bin/echo batmaan"将以batmaan作为参数执行/bin/echo

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38113953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档