带有{{item}}的Ansible复制模块

时间:2014-12-17 08:12:13

标签: copy ansible

我有一个变量的yml文件,就像这样。

- newHosts     
   - hostIP: 192.168.1.22
     filename: file1 
   - hostIP: 192.168.1.23   
     filename: file2   

我正在使用add_host:{{item.hostIP}} with_items {{newHosts}}。 我想用{{item.filename}}之类的东西将相应的文件复制到各自的主机,但是它会将所有文件复制到每个主机。我如何只将相应的文件复制到节点。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

您可以使用在循环的每次迭代中应用的条件:例如:

- hosts: all
  tasks:
  - name: copy file to appropriate server
    copy: src={{item.filename}} dest=/var/foo/{{item.filename}}
    with_items: newHosts
    when: item.hostIP == ansible_ssh_host