Как загрузить файл на сервер, которого нет в инвентаре?

#ansible #sftp #scp

#ansible #sftp #scp

Вопрос:

Иногда нам нужно загрузить журналы приложения, которые распределены между несколькими локальными машинами Unix, на сервер поставщика. Все машины являются частью одного и того же инвентаря и могут выполнять архивирование журналов и прямую загрузку архивов.

Сервер работает под управлением Unix и принимает только SCP и SFTP, поэтому synchronize модуль (который использует rsync ) не будет работать.

Существует a net_put -module, но, похоже, он предназначен для загрузки на специальные сетевые устройства — пытаясь его использовать, я получаю загадочные ошибки ansible_network_os

Я, конечно, могу использовать command модуль, но разве нет чего-то специально предназначенного для SCP- и / или SFTP-серверов?

Комментарии:

1. Учитывая ваши требования, использование scp или sftp с командным модулем представляется наиболее подходящим решением.

Ответ №1:

Нет, нет модуля для scp или sftp, и я действительно не вижу, чтобы это принесло большую пользу. sftp и scp просты в использовании command , и базовые команды на самом деле не поддерживают то, что может потребоваться модулю, например, пропустить загрузку, если файл на удаленном компьютере не изменится.

Комментарии:

1. Я мог видеть, как paramiko можно использовать разумно и пропускать загрузки на основе временных меток и размеров файлов (как rsync и раньше). Но, если никто еще этого не сделал, я буду использовать command 🙁