Ansible:在给定特定主机目标组的情况下,在两个远程主机之间同步文件

时间:2019-02-28 12:06:26

标签: ansible ansible-2.x ansible-inventory ansible-facts

我想在两个远程主机之间同步(复制)文件:

在我的剧本下,我根据每个任务案例在多个小组中运行我的任务。

我的剧本看起来像这样:

---
- hosts: myHosts
  gather_facts: true
  become: true
  become_user: "{{ ansi_user }}"
  vars:
    - buildServer_host : "127.78.11.04"
  roles:
    #... Different roles
    ...
    - { role: myRole }

我的库存文件如下:

[myHosts]
myGroupA
myGroupB
myGroupC

在myRole下,我已完成此任务:

 - name: Copy  jars to API server 
   synchronize:
    src: "{{ Workspace_GEN_COLIS }}/{{item.item}}/target/{{item.stdout}}"
    dest: "/opt/application/i99was/{{RCD_DEF_VERSION}}/{{item.item}}.jar"
   with_items: "{{ jarFileNames.results }}"
   when:
    - ansible_host in groups['myGroupB']
   delegate_to: "{{buildServer_host }}"

如您所见:我想将文件从我的“ buildServer_host” 传输到另一个远程目的地,该目的地仅为组“ myGroupB”

这失败了,我也不知道为什么。

似乎无法理解:ansible_host in groups['myGroupB']作为目标主机

建议?

1 个答案:

答案 0 :(得分:-1)

proxy_to绰绰有余,您不需要when条件,因为委托将在您在proxy_to值中选择的主机上完成。