Sorting ansible中2个列表的所有组合
我在ansible中有两个变量作为列表Sorting ansible中2个列表的所有组合,sorting,ansible,Sorting,Ansible,我在ansible中有两个变量作为列表 host_list: - 1.1.1.1 - 2.2.2.2 port_list: - 443 - 80 我想得到第三个变量作为列表: all_comb = [[1.1.1.1, 443], [1.1.1.1, 80], [2.2.2.2, 443], [2.2.2.2, 80]] 如何在Ansible中获取它?您可以将与_nested或查询('nested',listA,listB)循环一起使用,请参见以下两种实现:
host_list:
- 1.1.1.1
- 2.2.2.2
port_list:
- 443
- 80
我想得到第三个变量作为列表:
all_comb = [[1.1.1.1, 443], [1.1.1.1, 80], [2.2.2.2, 443], [2.2.2.2, 80]]
如何在Ansible中获取它?您可以将
与_nested
或查询('nested',listA,listB)
循环一起使用,请参见以下两种实现:
带有嵌套的\u:
- name: merge lists
set_fact:
merged_list: "{{ merged_list|default([]) + [item] }}"
with_nested:
- "{{ host_list }}"
- "{{ port_list }}"
- name: display result
debug:
var: merged_list
- name: merge lists
set_fact:
merged_list: "{{ merged_list|default([]) + [item] }}"
loop: "{{ query('nested', host_list, port_list) }}"
- name: display result
debug:
var: merged_list
PLAY [localhost] ******************************************************************************************************************************************************************************************************
TASK [merge lists] ****************************************************************************************************************************************************************************************************
ok: [localhost] => (item=[u'1.1.1.1', 443])
ok: [localhost] => (item=[u'1.1.1.1', 80])
ok: [localhost] => (item=[u'2.2.2.2', 443])
ok: [localhost] => (item=[u'2.2.2.2', 80])
TASK [display result] *************************************************************************************************************************************************************************************************
ok: [localhost] => {
"merged_list": [
[
"1.1.1.1",
443
],
[
"1.1.1.1",
80
],
[
"2.2.2.2",
443
],
[
"2.2.2.2",
80
]
]
}
带查询:
- name: merge lists
set_fact:
merged_list: "{{ merged_list|default([]) + [item] }}"
with_nested:
- "{{ host_list }}"
- "{{ port_list }}"
- name: display result
debug:
var: merged_list
- name: merge lists
set_fact:
merged_list: "{{ merged_list|default([]) + [item] }}"
loop: "{{ query('nested', host_list, port_list) }}"
- name: display result
debug:
var: merged_list
PLAY [localhost] ******************************************************************************************************************************************************************************************************
TASK [merge lists] ****************************************************************************************************************************************************************************************************
ok: [localhost] => (item=[u'1.1.1.1', 443])
ok: [localhost] => (item=[u'1.1.1.1', 80])
ok: [localhost] => (item=[u'2.2.2.2', 443])
ok: [localhost] => (item=[u'2.2.2.2', 80])
TASK [display result] *************************************************************************************************************************************************************************************************
ok: [localhost] => {
"merged_list": [
[
"1.1.1.1",
443
],
[
"1.1.1.1",
80
],
[
"2.2.2.2",
443
],
[
"2.2.2.2",
80
]
]
}
后者的结果:
- name: merge lists
set_fact:
merged_list: "{{ merged_list|default([]) + [item] }}"
with_nested:
- "{{ host_list }}"
- "{{ port_list }}"
- name: display result
debug:
var: merged_list
- name: merge lists
set_fact:
merged_list: "{{ merged_list|default([]) + [item] }}"
loop: "{{ query('nested', host_list, port_list) }}"
- name: display result
debug:
var: merged_list
PLAY [localhost] ******************************************************************************************************************************************************************************************************
TASK [merge lists] ****************************************************************************************************************************************************************************************************
ok: [localhost] => (item=[u'1.1.1.1', 443])
ok: [localhost] => (item=[u'1.1.1.1', 80])
ok: [localhost] => (item=[u'2.2.2.2', 443])
ok: [localhost] => (item=[u'2.2.2.2', 80])
TASK [display result] *************************************************************************************************************************************************************************************************
ok: [localhost] => {
"merged_list": [
[
"1.1.1.1",
443
],
[
"1.1.1.1",
80
],
[
"2.2.2.2",
443
],
[
"2.2.2.2",
80
]
]
}
干杯使用过滤器
-设置事实:
所有目录:{{主机列表}产品(端口列表)}
很高兴听到这个消息:)