Ansible 尝试在playbook中注册输出时未定义变量
我试图注册一个变量,并将其输出到F5池的查询中,但出现以下错误:Ansible 尝试在playbook中注册输出时未定义变量,ansible,ansible-facts,Ansible,Ansible Facts,我试图注册一个变量,并将其输出到F5池的查询中,但出现以下错误: "<type 'list'>": "VARIABLE IS NOT DEFINED!", 您正在使用带有选项var:的debug:模块,这需要一个变量,而不是jinja2模板 因此,要么将其更改为: debug: var: item.members 或 正如@dgw所说,问题在于debug模块的var选项 这个剧本的作用是: - name: test rejectattr hosts: loca
"<type 'list'>": "VARIABLE IS NOT DEFINED!",
您正在使用带有选项
var:
的debug:
模块,这需要一个变量,而不是jinja2模板
因此,要么将其更改为:
debug:
var: item.members
或
正如@dgw所说,问题在于
debug
模块的var
选项
这个剧本的作用是:
- name: test rejectattr
hosts: localhost
gather_facts: no
vars:
members:
- { name: "one", state: "present" }
- { name: "two", state: "absent" }
- { name: "three", state: "present" }
tasks:
- name: FACTS OUTPUT
debug:
msg: "{{ members | rejectattr('state', 'match', '^present$') | map(attribute='name') | list }}"
谢谢你的回复。我会进一步调查的。 除此之外,我想我还可以用另一种方法解决这个问题
- name: FACTS OUTPUT
set_fact:
listado: "{{ item.members | rejectattr('state', 'match', '^present$') | map(attribute='name') | list }}"
with_items: "{{ bigip_device_facts.ltm_pools }}"
when: item.full_path == "/Common/mypool"
- debug: msg={{ listado }}
register: jkout
- name: Set a variable
debug:
msg: "jkvar={{ jkout }}"
这样做对吗?
谢谢
- name: test rejectattr
hosts: localhost
gather_facts: no
vars:
members:
- { name: "one", state: "present" }
- { name: "two", state: "absent" }
- { name: "three", state: "present" }
tasks:
- name: FACTS OUTPUT
debug:
msg: "{{ members | rejectattr('state', 'match', '^present$') | map(attribute='name') | list }}"
- name: FACTS OUTPUT
set_fact:
listado: "{{ item.members | rejectattr('state', 'match', '^present$') | map(attribute='name') | list }}"
with_items: "{{ bigip_device_facts.ltm_pools }}"
when: item.full_path == "/Common/mypool"
- debug: msg={{ listado }}
register: jkout
- name: Set a variable
debug:
msg: "jkvar={{ jkout }}"