4

私はもともと .NET 開発者で、Visual Studio からソフトウェアをリリースする必要があったとき、デバッグ フックが削除され、リポジトリ ファイルが残されていることを確認するために、ソフトウェアをリリース モードに切り替える必要がありました。最終的に、本番環境にプッシュする準備が整ったクリーンなファイル セットが作成されました。

Django に切り替えて 3 か月近く使用した後、最初のアプリをデプロイする準備が整いました。私はそれについてかなりの読書をしました。デバッグを False に設定する方法と、production_setting.py を使用する方法、および Apache で WSGI を使用してデプロイする方法を知っています。

しかし、私がまだ理解していないのは、リリースをプッシュするための優れたプロセスです。

私が今知っていることで、リリースのために次のことを行います。

  • すべてのファイルを手動でアップロード ディレクトリにコピーします (非表示の mercurial ディレクトリを除く)。
  • それらをすべて圧縮する
  • それらをSCP経由でUbuntuサーバーに送信します
  • サーバーへのログイン
  • zipファイルを解凍してすべてを配置する
  • setting_production.py を変更して資格情報を入力する

これは Django 展開の健全なプロセスですか? :)
参考までに、私は Aptana Studio 3.2.1 を使用しています。

ヒントをありがとう

4

2 に答える 2

2

Fabricを調べることができます。ドキュメントはそれを次のように説明しています

... アプリケーションの展開やシステム管理タスクでの SSH の使用を合理化するための Python (2.5 以降) ライブラリとコマンドライン ツール。

それはあなたが望むすべてのことをすることができます。

「デプロイ」タスクにはおそらくいくつかのサブタスク (_upload_tar_from_hg()など_migrate() )がありますが、全体像は次のようになります。

from fabric.api import * 

env.release_name = 'foo_bar-1.0'
env.deployment_path = '/var/www/django/%s' % env.release_name    

def deploy():
    local('hg archive -t tgz $s.tar.gz' % env.release)
    put('%s.tar.gz' % env.release, env.deployment_dir)
    run('cd %s && tar -xzvf %s.tar.gz' % (env.deployment_path, env.release))
    local('rm %s.tar.gz' % env.release)
    run('cd %s/%s && ln -s settings_production.py settings.py' % (env.deployment_path, env.release))

settings_production.pyこれは、ソース管理に別のファイルを用意することに依存していますが、これは適切ではない可能性があります。Fabric はテキスト ファイル内を検索して置換できます。また、local_settings.pyアプローチを使用して設定を組み合わせることができます。

Fabric のチュートリアルをチェックして、ギャップを埋めてください (サーバーの接続の詳細を指定するなど)。セットアップが完了したら、実行するだけです。

fab deploy

プロセスは自動的に進行します。

: メタデータなしで Mercurial からアーカイブを作成することhgは、コマンドを使用して 1 ステップで完了しますhg archive) 。

于 2012-08-06T14:33:16.277 に答える
1

ターゲット サーバーにリモート Mercurial リポジトリをセットアップします。通常、「hg」ユーザーで SSH キーを使用するのが最も安全な方法です。シェル アクセスをそのユーザーに制限し、リポジトリへのアクセスのみを許可することができるからです。

そのレポにプッシュし、post-receive フックを使用して、Web サーバーが提供するフォルダーにプッシュをチェックアウトします (必要に応じて Web サーバーをリロードします)。

アプリが運用サーバー上にあるかどうかを確認する条件を設定ファイルに入れ (ファイルまたは環境変数の確認など)、関連する設定 (settings_prod.py または settings_dev.py) を読み込むこともできます。

于 2012-08-09T00:27:18.283 に答える