我正在寻找一种方法来直接从 PyCharm 简化 django 应用程序的远程部署。
即使部署文件本身仅适用于远程主机的文件并上传,我也无法找到在服务器站点上运行其他命令的方法(如 manage.py syncdb)。
我正在寻找一种完全自动化的解决方案,只需单击(或命令)即可工作。
我正在寻找一种方法来直接从 PyCharm 简化 django 应用程序的远程部署。
即使部署文件本身仅适用于远程主机的文件并上传,我也无法找到在服务器站点上运行其他命令的方法(如 manage.py syncdb)。
我正在寻找一种完全自动化的解决方案,只需单击(或命令)即可工作。
我对 PyCharm 了解不多,所以也许你可以从 IDE 做点什么,但我想你可能想看看 fabric 项目(http://docs.fabfile.org/en/1.0.1 /index.html)
这是一个非常棒的python部署自动化工具。
这是我的织物脚本文件之一。请注意,我做了很多假设(这是我自己使用的),这完全取决于您希望如何设置项目,例如我使用 virtualenv、pip 和 south 以及我个人对如何设置的偏好部署和部署到哪里。
您可能希望对其进行返工或简化以满足您的需求。
您可以使用文件 > 设置 > 工具 > 外部工具来运行任意外部可执行文件。您可以编写一个通过 SSH 连接并发出 [set of] 命令的小命令。然后配置的工具将是可执行的
例如,在我基于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>