【问题标题】:Fetching file from remote server to local using Ansible script使用 Ansible 脚本从远程服务器获取文件到本地
【发布时间】:2018-03-20 09:48:16
【问题描述】:

Ansible 自动化脚本:

tasks:
     - name:  copying catalina.out to /tmp/jagthish location
       fetch:
          src:
            - yes
            - /usr/tomcat/tomcat8/logs/catalina.out
          dest: /tmp/jagthish/

错误信息:

任务执行期间发生异常。要查看完整的回溯,请使用 -vvv。错误是:AttributeError:“list”对象没有属性“startswith”
致命:[ip]:失败! => {"failed": true, "msg": "模块执行期间意外失败。", "stdout": ""}

我尝试将文件 (catalina.out) 从远程服务器复制到本地服务器。它显示上述错误。

【问题讨论】:

    标签: ansible


    【解决方案1】:

    您不能为fetch modulesrc 参数提供列表。它需要一个字符串中的文件路径。

    你似乎想要这个:

    - name:  copying catalina.out to /tmp/jagthish location
      fetch:
        src: /usr/tomcat/tomcat8/logs/catalina.out
        dest: /tmp/jagthish/
        flat: yes
    

    【讨论】:

    • - name: 复制 catalina.out 到 /tmp/jagthish 位置 fetch: src: /usr/tomcat/tomcat8/logs/catalina.out dest: /tmp/jagthish/ 我之前试过这个命令。但它会复制整个目录/usr。我只想复制那个(catalina.out)文件。
    • 仅在 playbook 中执行所有命令。问题是它复制了整个目录。对于复制模块,它可以工作。但是 fetch 模块正面临这个问题。
    • docs.ansible.com/ansible/latest/fetch_module.html 。是的,我了解获取模块手册。它声明它只复制文件而不是目录。现在我也执行了但它复制了整个目录。在本地机器中,整个目录被复制 /tmp/jagthish/ip/usr/tomcat/tomcat8/logs/calalina.out.am 只需要 catalina.out 文件。
    • 不能同时拥有同名的目录和文件。提供正确的路径。
    • 在远程机器 catalina.out 文件位置是 /usr/tomcat/tomcat8/logs .. 在日志目录 catalina.out 文件在那里。这是你问的路径?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 2012-02-17
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    相关资源
    最近更新 更多