如何获取 ansible-playbook 模块执行的日志/详细信息? [英] How do I get logs/details of ansible-playbook module executions?

查看:50
本文介绍了如何获取 ansible-playbook 模块执行的日志/详细信息?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我执行以下操作.

$ 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"?或者脚本的返回/退出代码?

我的研究表明,可以编写一个插件来拦截模块执行回调或这些行上的某些内容并写入日志文件.我宁愿不要浪费我的时间.

My research shows me it would be possible to write a plugin to intercept module execution callbacks or something on those lines and write a log file. I would prefer to not waste my time with that.

例如类似于下面的标准输出(请注意,我正在运行 ansible 而不是 ansible-playbook):

E.g. something like the stdout in below (note that I'm running ansible and not ansible-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"
}

$

推荐答案

如果您在命令行上将 -v 标志传递给 ansible-playbook,您将看到每个的 stdout 和 stderr任务执行:

If you pass the -v flag to ansible-playbook on the command line, you'll see the stdout and stderr for each task executed:

$ ansible-playbook -v playbook.yaml

Ansible 还内置了对日志记录的支持.将以下行添加到您的 ansible 配置文件:

Ansible also has built-in support for logging. Add the following lines to your ansible configuration file:

[defaults] 
log_path=/path/to/logfile

Ansible 会在几个地方寻找配置文件:

Ansible will look in several places for the config file:

  • ansible.cfg 在您运行 ansible-playbook 的当前目录中
  • ~/.ansible.cfg
  • /etc/ansible/ansible.cfg
  • ansible.cfg in the current directory where you ran ansible-playbook
  • ~/.ansible.cfg
  • /etc/ansible/ansible.cfg

这篇关于如何获取 ansible-playbook 模块执行的日志/详细信息?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆