Ansible:每个实例的模板文件中的索引值

Ansible:每个实例的模板文件中的索引值

我正在尝试在单个主机上部署服务的多个实例。该服务有一个配置文件,我想在这个配置文件中包含它所属实例的索引。例如:

# 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}}

相关内容