#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
запуском на локальном компьютере вместо удаленного. Кто-нибудь может помочь?