在Ansible中,可以使用json_query
过滤器从结果中检索多个数组值。下面是一个示例代码,演示如何使用json_query
过滤器从结果中检索多个数组值:
- name: Retrieve multiple array values from result
hosts: localhost
gather_facts: False
tasks:
- name: Execute command and register result
command: echo '{"response": {"data": {"array1": [1, 2, 3], "array2": [4, 5, 6]}}}'
register: command_result
- name: Retrieve multiple array values using json_query
debug:
msg: "{{ command_result.stdout | from_json | json_query('response.data.[array1, array2]') }}"
在上述示例中,首先使用command
模块执行一个命令,并将结果注册到command_result
变量中。然后,通过使用过滤器链将命令结果解析为JSON对象,并使用json_query
过滤器从结果中检索array1
和array2
的值。最后,通过debug
模块打印检索到的数组值。
运行上述代码后,将会输出以下结果:
ok: [localhost] => {
"msg": [
[
1,
2,
3
],
[
4,
5,
6
]
]
}
注意,json_query
过滤器使用的是JMESPath查询语法,可以根据需要自定义查询语句来检索特定的数组值。
下一篇:Ansible从jinja2模板