使用Ansible复制模块进行远程到远程文件传输(同一远程主机)

时间:2019-05-29 22:03:22

标签: ansible remote-server ansible-2.x

我正在尝试使用Ansible的复制模块将特定远程目录下的所有文件移动到同一远程主机上的另一个远程目录。

目录和文件确实存在于远程主机上,我想我应该将Ansible复制模块与remote_src配合使用:是的,以便实现这一目标。

但是,到目前为止,我已经遇到了这种方法无法预料的问题-感谢您的帮助,谢谢!!

关注的任务

- name: copy remote to remote (same host)
  copy:
    src: "{{ item }}"
    dest: "{{ dir_base_path }}/go/to/my/nested/path"
    remote_src: yes
    owner: "{{ owner }}"
    group: "{{ group }}"
    mode: preserve
  with_fileglob:
    - "{{ dir_base_path }}/stay/at/parent_dir/*"
  when: status.changed and dir.stat.exists

远程目录结构

--> parent path
   -- all-the-files-I-need
   --`nested_directory
      -- need-to-copy-files here

观察到错误

TASK [playbook: copy remote to remote (same host)] ****************************************************************************************
 [WARNING]: Unable to find 'base_path/stay/at/parent_dir/' in expected paths (use -vvvvv to see paths)

版本信息

ansible --version
ansible 2.7.10
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.6/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.6.7 (default, Oct 22 2018, 11:32:17) [GCC 8.2.0]

1 个答案:

答案 0 :(得分:0)

根据fileglob的文档-与Ansible控制器上的本地系统文件匹配。要遍历远程节点上的文件列表,请使用查找模块。 请参阅:https://docs.ansible.com/ansible/latest/plugins/lookup/fileglob.html

您可以先使用find命令查找文件,然后使用寄存器存储,然后复制这些文件。