对于在目标Junos机器上复制文件的 ansible 剧本,我需要使用原始模块和sftp/scp。
目标机器(Junos)没有 python,所以我只有ansible 端的原始模块来运行命令。而且我一直在尝试sftp/scp都需要在提示符下输入密码,但不能使用原始模块使其工作。
如果复制命令可以在一行中完成,那也可以,但目标机器也没有sshpass。所以,我希望得到任何解决方法,以便可以在ansible playbook的原始模块的提示下提供密码。
这是来自 Junos,在提示提供密码后 sftp 工作正常。
root@:~ # sftp <username>@host:/file/location/file destFile
<username>@host's password:
并且 playbook 对 raw 具有相同的命令,但是即使使用 (;/&&)为raw设置多个命令,也无法处理密码提示。
- name: "Copy config file on Junos"
# raw: sftp <username>@host:/file/location/file destFile && <password>
# raw: sftp <username>@host:/file/location/file destFile;<password>
raw: sftp <username>@host:/file/location/file destFile
register: disp
- name: "Print disp"
debug:
var: disp
简而言之,如何使用 ansible 的原始模块进行操作以允许在提示符上提供密码?