-2
如何实现在Fabric中使用ssh代理的自定义cd()?使用ssh代理的fabric cd()
在我的部署脚本,我打包的run(),须藤(),把()像上面实现SSH代理:
from fabric.api import run, sudo, cd
PREFIX = "ssh [email protected]:5044 '"
def custom_run(cmd):
new_cmd = PREFIX + cmd + "'"
run(new_cmd)
def custom_sudo(cmd):
new_cmd = PREFIX + cmd + "'"
sudo(new_cmd)
不过据我所知,管理背景下,面料的CD()改变全局变量env.cwd
不像run或sudo,直接执行一些命令。
那么,有没有什么办法可以用ssh代理实现cd()?
$ ssh [email protected] "ssh [email protected] 'cd pwd;cmd...'"
织物将CD以执行命令之前在env.cwd目录,所以我不明白你想解决什么问题。 –
请解释你正在尝试解决什么问题。在我看来,你正试图在织物中重新实现织物,这是没有意义的。 –
对不起我的错误! PREFIX是''ssh user @ remote:5044'“''user'remote:5044',所以我的问题是如何通过ssh和excute命令重新实现fabric cd()进入第三个主机的目录,而不是目标主机指定env.host。 – shymonk