【问题标题】:Ansible for download the files from FTPAnsible 用于从 FTP 下载文件
【发布时间】:2016-07-14 04:07:48
【问题描述】:

目前,我正在使用 shell 脚本从 FTP 服务器下载文件。 Ansible 将执行我的脚本并继续其他自动化作业。

请告诉我在 Ansible playbook 中使用“get_url”而不是“shell”的最佳方法。以下语法仅适用于下载单个文件,但我的要求是下载多个文件和目录。

感谢您的帮助。

- name: FTP Download
  get_url: url=ftp://username:password@ftp.server.com/2016/03/value/myfile dest=/home/user/03/myfile1
  register: get_url_result

【问题讨论】:

  • 看来get_url 不支持递归下载。我认为wget 是下载目录/我的要求的最佳选择。我正在使用- shell: wget -r -np -nH --cut-dirs=1 ftp://username:password@ftp.server.com/2016/03/*

标签: ansible ansible-playbook


【解决方案1】:

根据get_url documentation,据我所知get_url不支持递归下载。

正如@helloV 所建议的,一种可能性是使用with_items 循环遍历一个列表。但这需要有一个静态文件列表或以某种方式获取此列表,可能使用wget

因此,您可以简单地直接使用wget -m,以便通过一项任务递归下载所有文件。见How to recursively download a folder via FTP on Linux

【讨论】:

  • 谢谢!我会继续使用wget
【解决方案2】:

list 用于urls(或dict 用于urlsdest),然后使用with_items 循环遍历它。

举几个 URL 和目标文件的例子。

【讨论】:

  • 感谢您的回复,从单个“url:ftp.server.com”下载目录和子目录的最佳方法是什么...我可以使用“shell:wget -r ——没有父母”。 “get_url”中是否有任何可用选项
猜你喜欢
  • 2014-08-05
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-10
  • 2018-06-22
相关资源
最近更新 更多