我仅限于在此任务中使用原始模块,这是造成问题的原因。
我只是想从本地主机获取文件,然后将其保存到清单文件中的主机列表中。我不想从所有目标主机到源主机都设置ssh密钥,因此我希望scp从源到目标主机列表向外传播。我可以按照以下方式做些事情:
Map<Character, Double> map1 = new HashMap<>();
map1.put('A', 23.0);
map1.put('B', 50.0);
Map<Character, Double> map2 = new HashMap<>();
map2.put('A', 15.0);
map2.put('B', 40.0);
//method 1 : Result stored in third map
Map<Character, Double> map3 = new HashMap<>();
map1.keySet().forEach(key -> map3.put(key, map1.get(key) - map2.get(key)));
//method 2 : using collectors
Map<Character, Double> map4 = map1.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue() - map2.get(entry.getKey())));
//method 3 : Result stored in map1
map2.forEach((key, val) -> map1.merge(key, val, (val1, val2) -> val1 - val2));
System.out.println("map1 = " + map1);
System.out.println("map3 = " + map3);
System.out.println("map4 = " + map4);
但是然后我必须在两个位置定义主机列表,而使用动态列表则不想这样做。
有什么办法可以库存文件,例如:
raw: "scp {{ file }} {{ user_id }}@{{ item }}:."
with_items: "{{ list_of_hosts }}"
和一本剧本,例如:
[src-host]
hostA
[dest-hosts]
host1
host2
host3
[dest-hosts:vars]
user_id="foo"
file="bar"
编辑:基于注释1进行说明,由于目标(目标)主机的限制,我只能使用“原始”模块。