Fabric で ssh エージェントを使用するカスタム cd() を実装するには?
私の展開スクリプトでは、ssh エージェントを実装するために、上記のように run()、sudo()、put() をパッケージ化しました。
from fabric.api import run, sudo, cd
PREFIX = "ssh user@remote:5044 '"
def custom_run(cmd):
new_cmd = PREFIX + cmd + "'"
run(new_cmd)
def custom_sudo(cmd):
new_cmd = PREFIX + cmd + "'"
sudo(new_cmd)
しかし、私が知っているように、コンテキストを管理するために、Fabric の cd() はグローバル変数 env.cwd を変更しました
run や sudo とは異なり、コマンドを直接実行します。
では、ssh エージェントで cd() を実装する方法はありますか?
$ ssh usr@1st-host "ssh usr@2nd-host 'cd pwd;cmd...'"