ansible - Ansible:如何通过主机组中的索引号获取主机
问题描述
我在清单中有这个主机组
[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
谢谢你。
解决方案
组和主机列表在特殊变量中可用。下面的任务
- 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
推荐阅读
- c++ - 英特尔编译器无法识别来自 gcc 的 avxintrin.h 的标识符
- protractor - 有没有办法在量角器脚本中运行备用“it”块?如果我们能做到,那么怎么做?
- php - $ Composer 找不到 mongodb 扩展,需要 Mongodb 扩展
- android - 如何为 Lua 的 VM/编译器重新编译已编译的字节码列表?
- spring - Spring reactive - 如何在调用方法中处理 mono.error
- python - keras模型H5在理论上是如何工作的
- jmeter - 带有 Webscoket 的 HTTPS 在 Blazemeter 中不起作用,但适用于 Jmeter 脚本
- javascript - How to get the value of a select option, and use it to query an array, to populate another input
- git - 在 Windows 上将 SourceTree 连接到 AWS CodeCommit
- itfoxtec-identity-saml2 - 无法构建 IdentitySaml2 项目