情况:我有一些基于 Fabric 的工具,需要传递自定义环境变量才能通过 ssh 进入远程主机(例如,对于run()
之类的东西(。普通的香草 ssh 等价物将是
export VAR=foo; ssh -o SendEnv=VAR my.host.com
我知道 Fabric 包装了一个名为 paramiko 的 Python ssh 库,它本身似乎支持这一点,但我对 Fabric 文档的阅读并没有向我展示一种将正确的值传递给run()
并让它们传播到 paramiko 库的方法。有没有办法让我用 Fabric 实现我想要的东西?
这是可能的。Connection.run
方法接受kwargs
,尤其是env
字典。 这个 env var 集合将被传递到您的 SSH 会话中。
注意:Connection.run
的文档相当少。但幸运的是,它包装了 Invoke 的run
方法(与大多数其他 Fabric 方法一样(。 => 你可以在这里看看 Invoke 的run
方法