首页 > 解决方案 > 尝试在剧本中注册输出时未定义变量

问题描述

我正在尝试将带有输出的变量注册到 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 }}"

标签: ansibleansible-facts

解决方案


您正在使用debug:带有选项的模块,var:这需要一个变量,而不是 jinja2 模板。

因此,要么将其更改为:

debug:
  var: item.members

或者

debug:
  msg: "{{ item.members }}"

推荐阅读