Ansible:模块的详细输出

Ansible:模块的详细输出,ansible,ansible-2.x,Ansible,Ansible 2.x,我正在寻找一种方法,从Ansible模块中获得更详细的输出,以便成功执行,但唯一的例子是shell模块,它允许注册并稍后打印stdout和stderr。 虽然这是一种变通方法,但如果存在内置的Ansible模块,那么跳出外壳并不是一种好的做法 举一个例子,如果模块的输出更详细,那么: - name: upgrade all packages yum: name=* state=latest 这将使用yum模块更新所有包。但是,它没有显示更新了什么(如果有的话) 在其他模块中也可以观察到类似

我正在寻找一种方法,从Ansible模块中获得更详细的输出,以便成功执行,但唯一的例子是shell模块,它允许注册并稍后打印stdout和stderr。 虽然这是一种变通方法,但如果存在内置的Ansible模块,那么跳出外壳并不是一种好的做法

举一个例子,如果模块的输出更详细,那么:

- name: upgrade all packages
  yum: name=* state=latest
这将使用yum模块更新所有包。但是,它没有显示更新了什么(如果有的话)


在其他模块中也可以观察到类似的行为。因此,实际的问题是:是否有任何Ansible开关/设置可以强制在剧本中为单个任务提供更详细的输出?(我想选择在哪里获得详细的输出,并避免其他一切带来的噪音。)

一个想法是让另一个任务在成功后打印上一个任务的输出。我没有测试,但类似的东西可能会起作用:

 - name: upgrade all packages
   yum: name=* state=latest
   register: result
 - name: Show output
   when: result|succeeded
   debug: msg="{{ result.stdout_lines }}"

一种想法是让另一个任务在成功后打印上一个任务的输出。我没有测试,但类似的东西可能会起作用:

 - name: upgrade all packages
   yum: name=* state=latest
   register: result
 - name: Show output
   when: result|succeeded
   debug: msg="{{ result.stdout_lines }}"

好的,感谢@xeroqu,我现在可以自己回答这个问题了:

  - name: upgrade all packages
    yum: name=* state=latest
    register: result
  - name: Show output
    when: result|succeeded
    debug: msg="{{ result.results }}"
键位于
{{result.results}
中,而不是
{{result.stdout\u lines}
。更准确地说,模块似乎返回一个包含(至少?)以下内容的字典:

ok: [localhost] => {
   "msg": {
       "changed": false,
       "msg": "",
       "rc": 0,
       "results": [
          "Nothing to do here, all packages are up to date"
       ]
   }
}

这无疑给了我想要的冗长,可以根据具体情况应用。

好的,感谢@xeroqu,我现在可以自己回答:

  - name: upgrade all packages
    yum: name=* state=latest
    register: result
  - name: Show output
    when: result|succeeded
    debug: msg="{{ result.results }}"
键位于
{{result.results}
中,而不是
{{result.stdout\u lines}
。更准确地说,模块似乎返回一个包含(至少?)以下内容的字典:

ok: [localhost] => {
   "msg": {
       "changed": false,
       "msg": "",
       "rc": 0,
       "results": [
          "Nothing to do here, all packages are up to date"
       ]
   }
}
这无疑给了我想要的冗长,可以根据具体情况应用。

这几乎是正确的,谢谢。我会投赞成票,因为这让我走上了正确的方向。我会马上回答我自己的问题。这几乎是正确的,谢谢。我会投赞成票,因为这让我走上了正确的方向。我马上会回答我自己的问题。