Как запустить команду развертывания на удаленном хосте из PyCharm?

Я ищу способ упростить удаленное развертывание приложения django непосредственно из PyCharm.

Даже если развертывание самих файлов работает только с файлом с удаленного хоста и загрузкой, мне не удалось найти способ запуска дополнительных команд на сайте сервера (например, manage.py syncdb).

Я ищу полностью автоматизированное решение, которое будет работать одним щелчком мыши (или командой).


person sorin    schedule 18.06.2011    source источник
comment
Вы когда-нибудь находили решение для этого?   -  person johnildergleidisson    schedule 22.03.2012
comment
эй, ты нашел решение для этого? Я имею в виду, есть ли способ запустить/повторно запустить процесс на удаленном хосте? что-то вроде nohup python run.py &   -  person venuktan    schedule 27.03.2014


Ответы (2)


Я мало знаю о PyCharm, поэтому, возможно, вы могли бы сделать что-то из IDE, но я думаю, вы, вероятно, захотите взглянуть на проект Fabric (http://docs.fabfile.org/en/1.0.1). /index.html)

Это отличный инструмент автоматизации развертывания Python.

Вот один из моих файлов сценария ткани. Обратите внимание, что я делаю много предположений (это мои собственные, которые я использую), которые полностью зависят от того, как вы хотите настроить свой проект, например, я использую virtualenv, pip и юг, а также мои личные предпочтения в отношении того, как развернуть и куда развернуть.

Вы, вероятно, захотите переработать или упростить его, чтобы он соответствовал вашим потребностям.

person John    schedule 19.06.2011

Вы можете использовать Файл > Настройки > Инструменты > Внешние инструменты для запуска произвольных внешних исполняемых файлов. Вы можете написать небольшую команду, которая подключается через SSH и выдает команду [набор]. Тогда настроенный инструмент будет исполняемым

Например, в моем проекте, основанном на tornado, я запускаю экземпляры, используя supervisord, который, согласно ответить здесь, не может перезапуститься после изменения кода.

В итоге я написал небольшой инструмент на paramiko, который подключается через ssh и запускает supervisorctl restart. Код ниже:

import paramiko
from optparse import OptionParser


parser = OptionParser()
parser.add_option("-s",
                  action="store",
                  dest="server",
                  help="server where to execute the command")
parser.add_option("-u",
                  action="store",
                  dest="username")
parser.add_option("-p",
                  action="store",
                  dest="password")

(options, args) = parser.parse_args()

client = paramiko.SSHClient()
client.load_system_host_keys()
client.connect(hostname=options.server, port=22, username=options.username, password=options.password)
command = "supervisorctl reload"
(stdin, stdout, stderr) = client.exec_command(command)
for line in stdout.readlines():
        print line
client.close()

Конфигурация внешнего инструмента в Pycharm:

  • программа: <PYTHON_INTERPRETER>
  • параметры: <PATH_TO_SCRIPT> -s <SERVERNAME> -u <USERNAME> -p <PASSWORD>
person RebelWithoutAPulse    schedule 19.06.2016