我正在寻找一种直接从PyCharm简化django应用程序远程部署的方法。
即使部署文件本身只能使用远程主机和上传文件,我也无法找到在服务器站点上运行其他命令的方法(如manage.py syncdb)。
我正在寻找一种完全自动化的解决方案,可以单击(或命令)工作。
答案 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>