Fabricを使用したDjangoプロジェクトの展開

プロジェクトの1つでは、ステージブランチからステージングサーバーにコードを定期的にアップロードする必要があります。 私たちは手動でそれを始めました-あなたはsshを介して入り、git push origin段階を行い、必要に応じてデータベースを更新してからApacheを再起動します。 今週の終わりまでに、彼らは1つのチームでこれらすべてのアクションを実行するのが良いと判断しました。 私はブログを調べました-今、彼らはこの目的でFabricライブラリを使用することについて非常に積極的に書いています(これはRuby on RailsのCapistranoに類似しています)。

インストール方法


pipまたはeasy_install経由でファブリックライブラリをインストールし、fabアプリケーションのシンボリックリンクを作成するか、PATHのPythonディストリビューションにbinファイルを含むフォルダーを追加します。 以下は、Mac OS X +ポートの簡単なチュートリアルです。

sudo pip-2.6 install fabric
sudo ln -s /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/fab /usr/bin/fab


ファブリックの機能


ファブリックを使用すると、サーバーのグループでさまざまなsshアクションを実行できます。 アクションはfabfile.pyファイルに記述されており、単なる通常のPython関数です。 通常、fabfile.pyはプロジェクトのルートフォルダー(manage.py、settings.py、urls.pyなどの隣)に配置されます。

from fabric.api import *

env . hosts = [ 'moodbox.com' ]

def deploy ():
local( 'hg push' )
with cd( 'hgreps/vorushin_ru' ):
run( 'hg update' )
run( '/etc/init.d/apache2 reload' )


vorushin_ruプロジェクト(このブログのコードはDjangoで記述されています)を使用してフォルダーからfab deployを実行すると、まずローカルコンピューターからプッシュが行われ、次にサーバー上のsshを介して更新が行われ、その後Apacheが再起動されます。

あらゆる種類の微妙な


まず、sshは証明書を通過する必要があります。 ssh-keygenssh認証済みキーを参照してください。

次に、別のサーバーからプルする必要がある場合は、sshを呼び出すときに-Aオプションを追加する必要があります。 詳細-lincolnloop.com/blog/2009/sep/22/easy-fabric-deployment-part-1-gitmercurial-and-ssh

第三に、開発チームが一度に1つずつ行う場合、プロジェクトファイルには開発者グループ全体に対する書き込み権限が必要です。 詳細-lincolnloop.com/blog/2009/oct/7/easy-fabric-deployment-part-2

第4に、Apacheで複数のプロジェクトを起動する場合、touch your.wsgiで再起動することをお勧めします(mod_wsgiがdaemon_modeで動作するように設定されている場合)。

私のブログの元の記事はvorushin.ru/blog/10-razvertyvanie-django-proektov-c-pomoshyu-fabricです

Source: https://habr.com/ru/post/J76619/


All Articles