ansible fetch没有按预期工作

时间:2018-03-11 22:24:18

标签: ansible yaml

在远程主机上,我在/ tmp下有很多文件,名称如EM_Prereq *,我想将所有这些文件复制到我的ansible服务器下的当前ansible工作目录或/ tmp / results目录下。 我使用下面的代码,工作正常,但它创建文件的路径不同于我的预期。

在路径/tmp/EM_Prereq_testbafffmqygx_root_Warning_20180311202123.txt/test.host.com/tmp/<actual file name>

中创建文件的ansbile

但我希望将文件创建为/tmp/results/<file name>

--- - name: 'vij' hosts: 'all' gather_facts: 'false' tasks: - name: 'ls files' shell: "ls -l /tmp/EM_Prereq_*|awk '{print $(NF)}'" register: 'filetocopy' - name: 'fetch files' fetch : src: '{{ item }}' dest: '{{ item }}' with_items: '{{ filetocopy.stdout_lines }}'

输出低于

changed: [test.host.com] => (item=/tmp/EM_Prereq_testbafffmqygx_root_Warning_20180311202123.txt) => { "changed": true, "checksum": "1f7edc7c9704add9f3b191c70a6eb81aa4ff3e14", "dest": "/tmp/EM_Prereq_testbafffmqygx_root_Warning_20180311202123.txt/oc-129-158-67-48.compute.oraclecloud.com/tmp/EM_Prereq_testbafffmqygx_root_Warning_20180311202123.txt", "item": "/tmp/EM_Prereq_testbafffmqygx_root_Warning_20180311202123.txt", "md5sum": "de1bcca72d0c391f203d2956e672f51d", "remote_checksum": "1f7edc7c9704add9f3b191c70a6eb81aa4ff3e14", "remote_md5sum": null }

感谢您的输入

1 个答案:

答案 0 :(得分:1)

请参阅:http://docs.ansible.com/ansible/latest/fetch_module.html

您需要: flat:yes 正如文档所述:允许您覆盖将hostname / path /追加到目标的默认行为。如果dest以'/'结尾,它将使用源文件的基名,类似于复制模块。显然,如果文件名是唯一的,这只是方便的。

 - name: 'fetch files'
   fetch :
     src: '{{ item }}'
     dest: '/tmp/results/'
     flat: yes
   with_items: '{{ filetocopy.stdout_lines }}'

编辑:您还希望目标目录为'/ tmp / results /',而不是{{item}}