2016-03-26 6 views
2

В настоящее время я использую сценарий оболочки для загрузки файлов с FTP-сервера. Ansible выполнит мой скрипт и продолжит другие автоматизированные задания.Ansible для загрузки файлов с FTP

Пожалуйста, дайте мне знать лучший способ сделать это в Ansible playbook, используя «get_url» вместо «shell». Следующий синтаксис работает только для загрузки одного файла, но мои требования - загрузить несколько файлов и каталогов.

Оцените вашу помощь.

- name: FTP Download 
    get_url: url=ftp://username:[email protected]/2016/03/value/myfile dest=/home/user/03/myfile1 
    register: get_url_result 
+1

Похоже, 'get_url' не поддерживает рекурсивную загрузку. Я думаю, что 'wget' лучший вариант для загрузки каталога/моих требований. Я использую '- shell: wget -r -np -nH -cut-dirs = 1 ftp: // имя пользователя: пароль @ ftp.server.com/2016/03/*' – miki

ответ

1

Согласно get_url documentation, и, насколько я знаю, get_url не поддерживает рекурсивную загрузку.

Одна из возможных, как предлагалось @helloV, состоит в том, чтобы перебирать список с помощью with_items. Но для этого потребуется иметь статический список файлов или получить этот список, возможно, с wget.

Следовательно, вы можете просто использовать wget -m непосредственно, чтобы рекурсивно загрузить все файлы с одной задачей. См. How to recursively download a folder via FTP on Linux.

+0

Спасибо! Я буду продолжать использовать 'wget' – miki

0

Используйте list для urls (или dict для urls и dest), а затем цикл через него с помощью with_items.

Приведите пример для нескольких URL-адресов и файлов назначения.

+0

http://stackoverflow.com/ Вопросы/113886/how-do-you-recursively-ftp-a-folder-in-linux – helloV

+0

Спасибо за ответ, что лучший способ загрузить каталог и подкаталоги из одного «url: ftp.server.com». .. Я могу использовать «shell: wget -r -no-parent». Есть ли какие-либо опции в «get_url» – miki

Смежные вопросы