有一个ansible剧本。我想修改它以满足我的需要。问题是这样的。我想根据剧本数据在系统中设置自己的字段。我在那里输入数据,如下所示:
- name: dicts
hosts: all
list_items:
- {item1: "aaa", item2: "bbb"}
- {item1: "ccc", item2: "ddd"}
tasks:
- name: Start Program
command: "./my_app.py {{ item.item1 }} {{ item.item2 }}"
with_items: {{ list_items }}
在这种形式中,Playbook 抱怨设置 list_items 列表。错误 未找到预期的指示符“-”。从逻辑上讲,似乎不需要这个连字符。如何纠正这样的剧本以使其正确阅读?
UPD。还有另一种错误:
with_items:
- {{ foo }}
Should be written as
with_items:
- "{{ foo }}"
此修复让我回到第一个错误
更新:对评论的疑问 - 这样的配置会起作用吗?
- name: dicts
hosts: all
vars:
list_items:
- { item1: aaa, item2: bbb }
- { item1: ccc, item2: ddd }
tasks:
- name: Start Program
command: "./my_app.py {{ item.item1 }} {{ item.item2 }}"
with_items: "{{ list_items }}"
您忘记了 中的引号
with_items
。它需要是这样的with_items: "{{ list_items }}"
:另外,您没有告诉 Ansible
list_items
- 是一个变量。你需要把它写在vars:
.更正后的剧本如下所示: