我为每个主机定义了一些变量。喜欢...
str.format
在其中一个角色中,我想定义一个变量,该变量是几个主机变量的组合。例如...
hosts:
- hostA:
vars:
self_ip: "192.168.1.10"
self_port: "8001"
- hostB:
vars:
self_ip: "192.168.1.11"
self_port: "8002"
我该怎么做?
我尝试将Jinja2用于如下循环:
all_endpoints: 192.168.1.10:8001,192.168.1.11:8002
这似乎正在创建一个字符串。没有清单。 有人可以告诉我怎么了吗?有没有办法使用ansible过滤器来实现这一目标?
答案 0 :(得分:0)
- set_fact:
all_endpoints: "{{ hosts|json_query('[].vars.[self_ip, self_port]') }}"
- set_fact:
touples: "{{ touples|default([]) + [ item.0 + ':' + item.1 ] }}"
loop: "{{ all_endpoints }}"
- debug:
var: touples
给予
"touples": [
"192.168.1.10:8001",
"192.168.1.11:8002"
]