通常,当出现“Ansible json_query无法找到有效的语法”错误时,这表示您的json查询表达式有误。请确保您的表达式是正确的,并且使用的是正确的语法。以下是一个示例代码来解决这个问题:
- name: Example
hosts: localhost
gather_facts: no
vars:
tasks:
- name: task 1
result:
name: "task 1"
total_time: 15
- name: task 2
result:
name: "task 2"
total_time: 20
tasks:
- name: Example
debug:
var: tasks | json_query('[?result.total_time >= `20`]')
在上面的示例中,我们使用了“json_query”来过滤任何总计时间大于20的任务。请注意,json查询表达式必须用单引号而不是双引号括起来,并且使用反引号而不是引号来括住数值。这是因为在Jinja2模板中,双引号和反斜杠具有特殊含义,因此使用单引号和反引号可以避免这些问题。