Ansible use'raw'模块从一台主机到主机列表(最好在清单中)

时间:2019-07-26 10:13:53

标签: ansible

我仅限于在此任务中使用原始模块,这是造成问题的原因。

我只是想从本地主机获取文件,然后将其保存到清单文件中的主机列表中。我不想从所有目标主机到源主机都设置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进行说明,由于目标(目标)主机的限制,我只能使用“原始”模块。

0 个答案:

没有答案