最佳答案
假设我执行以下命令。
$ cat test.sh
#!/bin/bash
echo Hello World
exit 0
$ cat Hello.yml
---
- hosts: MyTestHost
tasks:
- name: Hello yourself
script: test.sh
$ ansible-playbook Hello.yml
PLAY [MyTestHost] ****************************************************************
GATHERING FACTS ***************************************************************
ok: [MyTestHost]
TASK: [Hello yourself] ********************************************************
ok: [MyTestHost]
PLAY RECAP ********************************************************************
MyTestHost : ok=2 changed=0 unreachable=0 failed=0
$
我确信这是成功的。
如何在远程主机(MyTestHost)上看到脚本回显/打印的“ Hello World”?或者脚本的返回/退出代码?
我的研究表明,我们可以编写一个插件来拦截模块执行回调,或者在这些行上编写一个日志文件。我不想在这上面浪费时间。
例如下面的 stdout (注意,我运行的是可执行的而不是可执行的-playbook) :
$ ansible plabb54 -i /project/plab/svn/plab-maintenance/ansible/plab_hosts.txt -m script -a ./test.sh
plabb54 | success >> {
"rc": 0,
"stderr": "",
"stdout": "Hello World\n"
}
$