当前位置: 首页 > 知识库问答 >
问题:

如何获取ansible-playbook模块执行的日志/详细信息?

金子轩
2023-03-14
$ 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

$

我的研究表明,可以编写一个插件来拦截模块执行、回调或那些行上的东西,并编写一个日志文件。我不想把时间浪费在那上面。

例如。类似于下面的stdout(注意,我运行的是ansible,而不是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"
}

$

共有1个答案

居晗日
2023-03-14

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

$ ansible-playbook -v playbook.yaml

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

[defaults] 
log_path=/path/to/logfile

Ansible将在几个地方查找配置文件:

    null
 类似资料:
  • 问题内容: 如果一切正常,或者某些任务进行了某些更改,则ansible-playbook运行将返回0。 我正在寻找一种方法,以便在上次运行期间发生更改时在命令行中获取信息。 有人知道这种方法吗? 背景是我想通过Jenkins管道监视我的服务器,并在发生更改时得到警报。 谢谢你的帮助。 问题答案: 使用如Ansible标准输出回调插件,这样Ansible将JSON格式返回机器可分析输出。 例如: 将

  • 问题内容: 通过命令行运行Xcode单元测试用例时,我可以看到以下日志。 命令: 日志: 当通过jenkins execute shell执行时,如果没有显示详细日志,则显示以下信息。 如何在Jenkins环境中获取测试用例的详细信息? 问题答案: 问题已解决, 实际上,Jenkins是以不可见的来宾用户身份运行的,没有访问系统资源的许可。因此,该构建未安装在模拟器中。 我使用了Jenkins应用

  • 问题内容: 在WooCommerce中,从以下代码行: 如何从订单ID获取WooCommerce订单详细信息? 问题答案: 3.0版以上的WOOCOMMERCE订单 自Woocommerce大型主要更新3.0+以来,事情已经发生了很多变化: 对于 对象,无法像以前一样直接访问属性,并且会引发一些错误。 现在,对象实例需要使用new 以及 getter和setter方法。 此外,还有一些用于订购商品

  • 问题内容: 我要获取exe / dll / sys文件的“文件描述”和“版权”,如右键单击文件并选择属性时,在“详细信息”选项卡中所示。 问题答案: 使用Windows API,您可以调用VerQueryValue以获取该信息。JNA有一个用于访问此API的类,称为Version。 这另一个问题有一些代码示例可以帮助您入门: 获取.exe的版本信息 这是一个读取产品名称的C代码示例,您可以将其转换

  • 学习如何使用ansible--我需要为集群部署准备服务器。 在所有节点上安装相同的程序集,依此类推。这部分没有问题,一切都解决了。我是通过Ansible-Playbook来做的。在每个节点上,需要在文件/etc/sysconfig/network中执行 也许一些建议,帮忙?

  • 不能站在巨人的肩膀上的编程语言不是好语言,支持重用机制会节省调研重复的工作上浪费大量的时间,当然也会提高可维护性。 Playbook的支持两种重用机制,一种是简单的直接重新利用静态的Playbook脚本,例外一种是类似于编程语言中函数的机制。 include语句 - 重用静态的Playbook脚本,使用起来简单、直接。 role语言 - Playbook的“函数机制”,使用方法稍复杂、功能强大。是