2011-06-18 18 views
3

私はPyCharmから直接djangoアプリケーションのリモート展開を簡単にする方法を探しています。PyCharmからリモートホスト上でdeployコマンドを実行するには?

ファイル自体を展開してリモートホストでファイルをアップロードしてアップロードしても、サーバーサイト(manage.py syncdbなど)で追加のコマンドを実行する方法を見つけることができませんでした。

私は、完全に自動化されたソリューションを探しています。これは、シングルクリック(またはコマンド)で動作するソリューションです。

+1

あなたは、このための解決策を見つけましたか? –

+0

ねえ、あなたはこれに対する解決策を見つけましたか?つまり、リモートホスト上でプロセスを実行/再実行する方法はありますか? 'nohup python run.py&'のようなもの – venuktan

答えて

1

PyCharmについてよくわからないので、IDEから何かできることがありますが、おそらくファブリックプロジェクト(http://docs.fabfile.org/en)を見てみたいと思います/1.0.1/index.html)

これはPythonのデプロイメント自動化ツールです。

私のファブリックスクリプトファイルの1つです。私はvirtualenv、pip、southなどの自分のプロジェクトをどのように設定したいか、自分の個人的な好みの方法など、自分のプロジェクトをどのようにしたいのかに完全に依存していることを前提としています。およびどこに展開するかを決定します。

あなたのニーズを満たすために、それを再加工または簡略化したいと思うかもしれません。

0

ファイル>設定>ツール>外部ツールを使用して任意の外部実行可能ファイルを実行することができます。SSH経由で接続し、[set of]コマンドを発行する小さなコマンドを書くことができます。そして、設定さツールは、例えば

実行可能になり、私のプロジェクトでtornadoに基づいて、私はanswer hereによると、コード変更時に再起動することができない、supervisordを使用して、インスタンスを実行。

paramikoに小さなツールを作成しました。これはssh経由で接続し、supervisorctl restartを実行します。以下のコードは次のとおりです。Pycharmで

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() 

外部ツールの構成:

  • プログラム:<PYTHON_INTERPRETER>
  • パラメータ:<PATH_TO_SCRIPT> -s <SERVERNAME> -u <USERNAME> -p <PASSWORD>
関連する問題