我正在写一本剧本,想在一个变量上循环一个角色,该变量从用户那里获取值。但是,该值可能并不总是一个项目列表,它可能是单个值,并且每当发生这种情况时都会引发错误。
我的任务:
- name: task name
include role:
name: role name
vars:
cluster_name: '{{ item }}'
loop: "{{ list_or_not }}"
loop_control:
loop_var: item
错误:
...无效的数据传递给“循环”,它需要一个列表...
答案 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 }}"