我的清单中有此主机组
[test-node]
usprz3-sec-asept-dz03.prz.foo.com
usprz3-sec-asept-dz04.prz.foo.com我想通过.j2模板在一个文件中打印这些主机名,我不想遍历列表,我只想在一个地方打印组中的第一个项目,在另一个地方打印第二个项目。有没有像下面这样的方法可以给我想要的效果?
[test-node].0 should print usprz3-sec-asept-dz03.prz.foo.com
[test-node].1 usprz3-sec-asept-dz04.prz.foo.com我的ansible版本是ansible 2.5.4
谢谢。
发布于 2019-03-26 12:34:07
Special Variables中提供了组和主机的列表。下面的任务
- template:
src: test-template.j2
dest: test.txt和模板(test-template.j2)
{% for item in groups['test-node'] %}
[test-node].{{loop.index}} {{ item }}
{% endfor %}提供:
> cat test.txt
[test-node].1 usprz3-sec-asept-dz03.prz.foo.com
[test-node].2 usprz3-sec-asept-dz04.prz.foo.com发布于 2019-03-26 20:49:21
以Vladimir为例,您可以将列表中的第一个主机打印为
{{ groups['test-node'].0 }}这将打印usprz3-sec-asept-dz03.prz.foo.com
和第二个主机作为
{{ groups['test-node'].1 }}这将打印usprz3-sec-asept-dz04.prz.foo.com
https://stackoverflow.com/questions/55349570
复制相似问题