解析 ansible 事实时出现 ansible JMESPATH 错误
ansible JEMSPATH errors while parasing ansible facts
我正在尝试从下面的 ansible 事实中过滤所有包含 "RegButton-" 的字符串,并将输出用作下一个播放中的项目列表。
尝试使用 json_query 过滤器但失败并显示以下错误
可靠的事实
{
"ansible_facts": {
"srcgrpname": [
"RegButton-48773",
"test_vio",
"RegButton-23395",
"RegButton-520859",
"RegButton-743141",
"RegButton-297578",
"RegButton-186156"
]
},
"changed": false
}
剧本条目
- name: "Filter Regbutton policy Names"
set_fact:
srcgrpname2: "{{ resultid1 | json_query(query) }}"
vars:
query: "ansible_facts.srcgrpname[?contains(@, 'RegButton-') == `true`]"
我收到错误。
{
"msg": "JMESPathError in json_query filter plugin:\nIn function contains(), invalid type for value: RegButton-48773, expected one of: ['array', 'string'], received: \"unknown\"",
"_ansible_no_log": false
}
可以使用 select 和 regex。例如下面的任务
- set_fact:
srcgrpname2: "{{ ansible_facts.srcgrpname|
select('regex', '^RegButton-(.*)$')|
list }}"
- debug:
var: srcgrpname2
给予
"srcgrpname2": [
"RegButton-48773",
"RegButton-23395",
"RegButton-520859",
"RegButton-743141",
"RegButton-297578",
"RegButton-186156"
]
笔记
- 这是 contains 的未决问题。
- 可重现
"RegButton-48773, expected one of: ['array', 'string'], received: unknown"
- 见
我正在尝试从下面的 ansible 事实中过滤所有包含 "RegButton-" 的字符串,并将输出用作下一个播放中的项目列表。 尝试使用 json_query 过滤器但失败并显示以下错误
可靠的事实
{
"ansible_facts": {
"srcgrpname": [
"RegButton-48773",
"test_vio",
"RegButton-23395",
"RegButton-520859",
"RegButton-743141",
"RegButton-297578",
"RegButton-186156"
]
},
"changed": false
}
剧本条目
- name: "Filter Regbutton policy Names"
set_fact:
srcgrpname2: "{{ resultid1 | json_query(query) }}"
vars:
query: "ansible_facts.srcgrpname[?contains(@, 'RegButton-') == `true`]"
我收到错误。
{
"msg": "JMESPathError in json_query filter plugin:\nIn function contains(), invalid type for value: RegButton-48773, expected one of: ['array', 'string'], received: \"unknown\"",
"_ansible_no_log": false
}
可以使用 select 和 regex。例如下面的任务
- set_fact:
srcgrpname2: "{{ ansible_facts.srcgrpname|
select('regex', '^RegButton-(.*)$')|
list }}"
- debug:
var: srcgrpname2
给予
"srcgrpname2": [
"RegButton-48773",
"RegButton-23395",
"RegButton-520859",
"RegButton-743141",
"RegButton-297578",
"RegButton-186156"
]
笔记
- 这是 contains 的未决问题。
- 可重现
"RegButton-48773, expected one of: ['array', 'string'], received: unknown"
- 见