как вызвать метод удаленной ткани в django

Мне нужно вызвать метод ткани на удаленной машине через django. Я имею в виду, когда пользователь отправляет данный запрос, получите имя хоста удаленной машины. Что-то вроде этого:

def get_hostname(request): hostname = os.system('fab remote_server hostname') return hostname 

3 Solutions collect form web for “как вызвать метод удаленной ткани в django”

Для большего контроля и гибкости вы должны использовать ткань как библиотеку. см .: http://docs.fabfile.org/en/1.3.3/usage/library.html

 import fabric.api as fab from fabric.network import disconnect_all from contextlib import contextmanager @context_manager def ssh(settings): with settings: try: yield finally: disconnect_all() def hostname(request, host='somehost', user='someuser', pw='secret'): with ssh(fab.settings(host_string=host, user=user, password=pw)): return fab.run('hostname') 

Если на сервере есть необходимые части для ткани, вы можете просто импортировать файл fabfile при вызове функции напрямую.

(Это всего лишь некоторый код, о котором я мечтал YMMW)

 import fabfile as f #Your fabfile must be somewhere it can be imported def get_hostname(request): hostname = f.remote_server(hostname) return hostname 

Вы также можете импортировать и использовать ткань непосредственно из django

Проверьте fabric.tasks.execute() после версии 1.3.

  • Ткань - sudo -u
  • Как вы используете pip, virtualenv и Fabric для развертывания?
  • Подключение к узлу, указанному в ~ / .ssh / config при использовании Fabric
  • Ошибка Paramiko: ошибка при чтении протокола SSH
  • В Mac OS X, simple_install fabric и / или easy_install pycrypto не удается из-за ошибки компоновщика «незаконное перемещение текста»,
  • Выполнение задачи из PyCharm
  • Ткань запрашивает пароль, хотя я могу использовать SSH с учетными данными
  • Проблемы с активацией виртуального сервера на сервере через Fabric
  • Python - лучший язык программирования в мире.