如何遍历可能具有单个值的变量?

时间:2019-08-12 10:28:54

标签: ansible

我正在写一本剧本,想在一个变量上循环一个角色,该变量从用户那里获取值。但是,该值可能并不总是一个项目列表,它可能是单个值,并且每当发生这种情况时都会引发错误。

我的任务:

- name: task name
  include role:
    name: role name
  vars:
    cluster_name: '{{ item }}'
  loop: "{{ list_or_not }}"
  loop_control:
    loop_var: item

错误:

  

...无效的数据传递给“循环”,它需要一个列表...

2 个答案:

答案 0 :(得分:1)

您是否尝试过:“ |列表”过滤器? 抱歉,目前无法测试。

答案 1 :(得分:0)

您可以测试变量是否为字符串,如果是,则将其转换为单项列表。像这样:

---
- hosts: localhost
  gather_facts: false
  tasks:
    - set_fact:
        list_or_not: ["{{ list_or_not }}"]
      when: list_or_not is string

    - debug:
        msg: "{{ item }}"
      loop: "{{ list_or_not }}"