-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