【问题标题】:ansible fetch is not working as expectedansible fetch 没有按预期工作
【发布时间】:2018-03-11 22:24:18
【问题描述】:

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

ansbile 在路径 /tmp/EM_Prereq_testbafffmqygx_root_Warning_20180311202123.txt/test.host.com/tmp/<actual file name> 中创建文件

但我希望将文件创建为/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 }

感谢您的投入

【问题讨论】:

  • "没有按预期工作" ― 你设置了 dest: '{{ item }}' ― 怎么不符合预期?

标签: ansible yaml


【解决方案1】:

见:http://docs.ansible.com/ansible/latest/fetch_module.html

您需要:flat: yes 如文档所述:允许您覆盖将主机名/路径/到/文件附加到目标的默认行为。如果 dest 以 '/' 结尾,它将使用源文件的基本名称,类似于复制模块。显然,这仅在文件名唯一的情况下才方便。

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

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

【讨论】:

    猜你喜欢
    • 2022-11-15
    • 2021-08-17
    • 2021-10-19
    • 2020-03-18
    • 2012-06-14
    • 2014-11-15
    • 1970-01-01
    • 2012-07-02
    • 2011-09-07
    相关资源
    最近更新 更多