Ansible 可复制文件

Ansible 可复制文件,ansible,Ansible,如何将文件从机器a复制到不同位置的机器B和机器C。 即: 在机器A上,我有文件abc,我想将其复制到机器B的/tmp区域和机器C的/op区域,假设库存的结构如下: [remote-servers] 192.168.X.1 192.168.X.10 192.168.X.20 192.168.X.30 运行了以下复制任务: - name: copy the file to the remote machine hosts: remote-servers copy: src: /pa

如何将文件从机器a复制到不同位置的机器B和机器C。 即:


在机器A上,我有文件abc,我想将其复制到机器B的/tmp区域和机器C的/op区域,假设库存的结构如下:

[remote-servers]
192.168.X.1
192.168.X.10
192.168.X.20
192.168.X.30
运行了以下复制任务:

- name: copy the file to the remote machine
  hosts: remote-servers
  copy:
    src: /path/to/file
    dest: /path/to/dest

当您在角色中封装任务时,应该很容易将路径定义为变量,并在“主机变量”下的playbook中将其设置为主机变量。有关一般信息,请参见,特别是剧本角色和Include语句。在那之后,为了更深入的理解,我试着在清单文件中映射机器的目标路径,但不知道如何在playbook中使用它。ie:cat ansible_主机[webserver]sm niraj dst=/home/niraj vl sm dst=/tmpThanks。但是,如果所有机器的目标路径都不同,那么过程会是什么呢?在我的情况下,所有机器上的目标路径都不同在我的情况下:在机器A上,我有文件abc,我想将其复制到机器B的/tmp区域和机器CI的/opt区域。这两个主机都有相同的操作系统?可能是,也可能不是,但如果您愿意,也可以为我提供任何情况下的解决方案。提前感谢并感谢您对此所做的努力。您必须在不同的时间条件下编写两个不同的任务,并在不同的位置复制。检查当前远程主机的ip地址时的条件。您可以使用以下命令获取当前远程主机的ip地址:-hostvars[inventory\u hostname]['ansible\u default\u ipv4']['address']或hostvars[inventory\u hostname]['ansible\u default\u ipv6']['address']