如何从PyCharm在远程主机上运行deploy命令?

时间:2011-06-18 22:54:39

标签: django deployment pycharm

我正在寻找一种直接从PyCharm简化django应用程序远程部署的方法。

即使部署文件本身只能使用远程主机和上传文件,我也无法找到在服务器站点上运行其他命令的方法(如manage.py syncdb)。

我正在寻找一种完全自动化的解决方案,可以单击(或命令)工作。

2 个答案:

答案 0 :(得分:1)

我对PyCharm了解不多,所以也许你可以从IDE做一些事情,但我想你可能想看一下这个面料项目(http://docs.fabfile.org/en/ 1.0.1 / index.html中)

这是一个非常棒的python部署自动化工具。

这是我的一个结构脚本文件。请注意,我做了很多假设(这是我自己使用的)完全取决于你想要如何设置你的项目,比如我使用virtualenv,pip和south以及我自己的个人偏好如何部署和部署到哪里。

您可能希望返工或简化以满足您的需求。

答案 1 :(得分:0)

您可以使用文件>设置>工具>外部工具可以运行任意外部可执行文件。您可以编写一个通过SSH连接并发出[set of]命令的小命令。然后配置的工具将是可执行的

例如,在我基于tornado的项目中,我使用supervisord运行实例,根据answer here,在{0}}代码更改时无法重新启动。

我最终在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>