我正在尝试在单个主机上部署服务的多个实例。该服务有一个配置文件,我想在这个配置文件中包含它所属实例的索引。例如:
# main.yml
- name: Configure each Instance
template: src=config dest=/usr/service/etc/config@{{item}}-{{count}}
with_items:
- "A"
- "B"
- "C"
# templates/config
id={{count}}
因此,理想情况下,我的最终结果将是:
config@A-1
config@B-2
config@C-3
但我不知道如何将“count”变量放入其中。我查看过with_indexed_items
,但我不确定这是否是正确的方法。我还查看了使用如下列表列表的方法:
with_items:
- ["A", "1"]
- ["B", "2"]
- ["C", "3"]
但这看起来并不是最“Ansible”的方法。
答案1
我使用with_sequence
循环并将 A、B、C 值抽象到 vars 文件中来解决这个问题:
- name: Configure each Instance
template: src=config dest=/usr/service/etc/config@{{value}}-{{item}}
with_sequence: count={{num_instances}}
然后我的模板如下所示:
# templates/config
id={{item}}