Как в Ansible заставить один удаленный узел подключаться к другому удаленному узлу?
Моя цель - скопировать файл с удаленного узла a на удаленный узел b. и распакуйте его в цель, однако один из файлов очень большой.
Обычно это происходит путем извлечения на контроллер, копирования с контроллера на удаленный b , тогда разархивирование недопустимо.В идеале я хотел бы сделать из _remote_a_ что-то вроде:
ssh remote_b cat filename | tar -x
Это чтобы ускорить процесс.Для этого я могу использовать модуль оболочки, однако моя главная проблема заключается в том, что таким образом я теряю обработку Ansible параметров SSH-соединения.Я должен вручную передать закрытый ключ SSH, если таковой имеется, или пароль неинтерактивным способом, или что-то еще _remote_b_.Есть ли лучший способ сделать это без многократного копирования?
Кроме того, в этом случае необходимо выполнить это по SSH.
Обновление / уточнение: На самом деле я знаю, как это сделать из оболочкии я мог бы сделать то же самое в ansible.Мне просто интересно, есть ли лучший способ сделать это более похожим на ответ.Файл, о котором идет речь, действительно большой.Основная проблема заключается в том, что когда ansible выполняет команды на удаленных хостах, я могу настроить все в инвентаре.Но в этом случае, если бы я хотел подобный уровень конфигурируемости / гибкости, когда речь идет о параметрах этого установленного вручную ssh-соединения, мне пришлось бы написать его с нуля (может быть, даже как ANSI-модуль) или что-то подобное.В противном случае, например, попытка просто использовать ssh hostname command
потребует ввода пароля без пароля или секретного ключа по умолчанию, где я не смог бы изменить путь к закрытому ключу, используемый в инвентаре, без добавления этого вручную, а для плагина ssh-подключения фактически естьдве возможные переменные, которые могут использоваться для установки закрытого ключа.