Можно ли передавать переменные среды на удаленный ssh-сервер при выполнении задач Fabric? - PullRequest
0 голосов
/ 11 октября 2019

Ситуация: у меня есть некоторые основанные на Fabric инструменты, которые должны передавать пользовательские переменные среды для ssh на удаленные хосты (например, для run()). Простой ванильный ssh-эквивалент будет

export VAR=foo; ssh -o SendEnv=VAR my.host.com

Я знаю, что Fabric упаковывает библиотеку Python ssh под названием paramiko, которая сама по себе, кажется, поддерживает это, но мое чтение документации Fabricне показал мне способ передать правильные значения в run() и заставить их распространяться в библиотеку paramiko. Есть ли способ для меня, чтобы достичь того, что я хочу с Fabric?

1 Ответ

0 голосов
/ 19 октября 2019

Это возможно. Метод Connection.run принимает kwargs, особенно словарь env. Эта коллекция env vars будет передана в ваш сеанс SSH.

Примечание: документация по Connection.run довольно минимальна. Но, к счастью, он обернул run метод Invoke (как и большинство других методов Fabric). => Вы можете взглянуть на run метод Invoke здесь

...