Ansible 尝试在playbook中注册输出时未定义变量

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

我试图注册一个变量,并将其输出到F5池的查询中,但出现以下错误:

"<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 }}"