我正在尝试将一个变量与F5池的查询的输出一起注册,我得到了这个错误:
"<type 'list'>": "VARIABLE IS NOT DEFINED!", 我做错了什么?感谢您的帮助。谢谢!
---
- name: GRAB F5 FACTS
hosts: f5
connection: local
gather_facts: no
tasks:
- name: Collect BIG-IP facts
bigip_device_facts:
gather_subset: ltm-pools
provider: "{{ prov }}"
register: bigip_device_facts
- name: FACTS OUTPUT
debug:
var: "{{ item.members | rejectattr('state', 'match', '^present$') | map(attribute='name') | list }}"
register: jkout
with_items: "{{ bigip_device_facts.ltm_pools }}"
when: item.full_path == "/Common/mypool"
- name: Set a variable
debug:
msg: "jkvar={{ jkout }}"发布于 2019-03-25 23:23:52
您正在使用带有选项var:的debug:模块,并且这需要一个变量,而不是一个jinja2模板。
因此,要么将其更改为:
debug:
var: item.members或
debug:
msg: "{{ item.members }}"发布于 2019-03-26 03:39:48
正如@dgw所说,问题出在debug模块的var选项上。
https://docs.ansible.com/ansible/latest/modules/debug_module.html#parameters
此攻略适用于:
- 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 }}"发布于 2019-03-26 15:41:07
感谢您的回复。我会进一步调查的。除此之外,我想我还能用另一种方法解决这个问题。
- 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 }}"这是一种正确的做法吗?谢谢!!
https://stackoverflow.com/questions/55339043
复制相似问题