【问题标题】:How to run a deploy command on remote host from PyCharm?如何从 PyCharm 在远程主机上运行部署命令?
【发布时间】:2011-09-17 23:15:02
【问题描述】:

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

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

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

【问题讨论】:

  • 您找到解决方案了吗?
  • 嘿,你找到解决方案了吗?我的意思是有没有办法在远程主机上运行/重新运行进程?类似nohup python run.py &

标签: django deployment pycharm


【解决方案1】:

我对 PyCharm 了解不多,所以也许你可以从 IDE 做点什么,但我想你可能想看看 fabric 项目 (http://docs.fabfile.org/en/ 1.0.1/index.html)

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

这是我的织物脚本文件之一。请注意,我做了很多假设(这是我自己使用的),这些假设完全取决于您希望如何设置项目,例如我使用 virtualenv、pip 和 south 以及我个人对如何设置的偏好部署以及部署到哪里。

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      • 2021-05-29
      • 2019-12-31
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      相关资源
      最近更新 更多