5

Fabricは、 Djangoプロジェクトの展開と Ubuntuスライスの初期構成の両方で、私の最適な展開ツールになりました。ただし、Fabricを使用した現在のワークフローはあまりDRYではありません。

  1. fabfile.pyあるDjangoプロジェクトから別のプロジェクトにコピーし、
  2. 各プロジェクトの必要に応じて を変更しますfabfile.py(たとえば、webserver_restartタスクを Apache から Nginx に変更する、ホストと SSH ポートを構成するなど)。

このワークフローの利点の 1 つは、 がGitリポジトリfabfile.pyの一部になることです。したがって、とpipの間に、再作成可能な virtualenvとデプロイ プロセスがあります。このアドバンテージは残しつつ、DRYを増やしていきたいです。次の方法でワークフローを改善できるようです。fabfile.py requirements.txt

  1. およびpip installで定義された一般的なタスクを実行できるfabfile.py
  2. 各プロジェクトのホスト構成情報をfab_config含むファイルを用意し、必要に応じてタスクをオーバーライドする

FabricワークフローのDRY性を高める方法について何か推奨事項はありますか?

4

1 に答える 1

2

私はこの方向で、接続情報を含むクラスベースの「サーバー定義」を使用していくつかの作業を行い、メソッドをオーバーライドして特定のタスクを別の方法で実行できるようにしました。次に、ストック fabfile.py (決して変更されません) は、サーバー定義オブジェクトで適切なメソッドを呼び出すだけです。

于 2010-04-05T12:25:51.707 に答える