Ansible调试是在循环时提供所有元数据
我正试图从上一个循环的结果中获取调试消息,但我无法从中获得所需的信息。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
- 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: ""