Команда Fabric «выполнить» выполняется локально, а не удаленно

#python #fabric

Вопрос:

Я пытаюсь использовать ткань под WSL2 (Ubuntu). Проблема в том, что команда запуска в @task поведении выполняется локально, а не удаленно. Но если запустить без @task — выполняйте нормально.

Среда: Локальная машина под управлением WSL2, Ubuntu. Виртуальная среда, управляемая pipenv:

 $ fab --version
Fabric 2.6.0
Paramiko 2.7.2
Invoke 1.6.0
$ uname -a
Linux w01-alexey 5.10.43.3-microsoft-standard-WSL2 #1 SMP Wed Jun 16 23:47:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
 

удаленная машина, доступ по ключу, тот же пользователь, что и локальный:

 $ ssh 192.168.1.176
swasher@sandglass:~$
Linux sandglass 5.11.0-36-generic #40-Ubuntu SMP Fri Sep 17 18:15:22 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
 

СНАЧАЛА ПОПРОБУЙ, Попробуй, беги fabric test :

 from fabric import Connection, task

c = Connection('192.168.1.176')
@task
def test(c):
    c.run('uname -a')
 

Выход:

 (sandglass) swasher@w01-alexey:/mnt/c/Users/alexey/PycharmProjects/sandglass$ fab test
Linux w01-alexey 5.10.43.3-microsoft-standard-WSL2 #1 SMP Wed Jun 16 23:47:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
 

ВТОРАЯ ПОПЫТКА Теперь без @task :

 from fabric import Connection, task

c = Connection('192.168.1.176')
c.run('uname -a')
 

Бежать python fabfile.py :

Выход:

 (sandglass) swasher@w01-alexey:/mnt/c/Users/alexey/PycharmProjects/sandglass$ python fabfile.py
Linux sandglass 5.11.0-36-generic #40-Ubuntu SMP Fri Sep 17 18:15:22 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
 

Все выглядит так, как и должно быть.

Как вы можете видеть, код с @task запуском на локальном компьютере вместо удаленного. Кто-нибудь может помочь?