Ansible调试是在循环时提供所有元数据

Ansible调试是在循环时提供所有元数据,ansible,Ansible,我正试图从上一个循环的结果中获取调试消息,但我无法从中获得所需的信息。Ansible一直给我整个结果,而不是我要的那句话 以下是我正在使用的两个模块: - name: Make the curl call uri: url: https://www.theurl.com method: GET return_content: yes headers: XXXX: "xxxxxxxxxx" loop: "{{ simplelist }}" r

我正试图从上一个循环的结果中获取调试消息,但我无法从中获得所需的信息。Ansible一直给我整个结果,而不是我要的那句话

以下是我正在使用的两个模块:

- name: Make the curl call
  uri:
    url: https://www.theurl.com
    method: GET
    return_content: yes
    headers:
      XXXX: "xxxxxxxxxx"
  loop: "{{ simplelist }}"
  register: this



 - name: just testing
    debug:
      msg: "I just want to see: {{ item.json.section.test }}"
    loop: "{{ this.results}}"
正如您从msg中看到的,我只是试图输出特定的值,但Ansible给我的是:

{
"ansible_loop_var": "item",
"_ansible_no_log": false,
"item": {
    "content_length": "",
    "cookies": {},
    "via": "1.1 varnish",
    "connection": "",
    "vary": "Accept-Encoding",
    "x_timer": "",
    "access_control_allow_methods": "OPTIONS, HEAD, GET, PATCH, DELETE",
    "x_cache_hits": "0",
    "failed": false,
    "access_control_allow_credentials": "true",
    "content": blah blah blah,
    "json": { the json },  
    "changed": false,
    "msg": "I just want to see: False",

因此,它正在设置消息,正如您从最后一行看到的,它正在获得正确的值,但它没有输出该消息。我怎样才能得到要输出的消息?我进行了测试,我知道我可以得到该值,因为msg有False,我使用该值进行了fail/when测试。

您看到的看起来像是ansible playbook的详细输出,使用
-v[vv]
选项运行。您可以删除该选项以减少冗长

同时,即使在非详细模式下,无论您使用的是什么模块,在循环过程中,ansible都会为每次迭代输出一个
标签
,大致如下所示(注意屏幕的
(item=…)
部分)

默认情况下,标签是当前循环的完整项。但是您可以在
loop\u control
参数中更改此标签,这对于复杂的数据结构来说可能有点过于冗长。如果您确实想要一个空标签,您可以使用以下示例。但是您仍然会得到
ok:[server1]=>(item=)=>
在每个迭代输出之前

 - name: just testing
   debug:
     msg: "I just want to see: {{ item.json.section.test }}"
   loop: "{{ this.results }}"
   loop_control:
     label: ""

有关更多信息,请参见

我正在使用Ansible Tower,我已将详细设置为0(正常)。我必须将我的标签设置为item.json.section.test才能让它做我想做的事情,但它确实清理了我的控制台。
 - name: just testing
   debug:
     msg: "I just want to see: {{ item.json.section.test }}"
   loop: "{{ this.results }}"
   loop_control:
     label: ""