0

2 つのDjango 1.5 プロジェクトを含む git リポジトリがあります。1 つはウェブサイト用、もう 1 つは REST API 用です。git リポジトリは次のようになります。

api_project/
www_project/
logs/
manage.py
my_app_1/
my_app_2/

ファイルのmanage.pyデフォルトはwww_project.settings. を起動するにはapi_project、次を実行します。

DJANGO_SETTINGS_MODULE=api_project.settings ./manage.py shell

git サブモジュールなどを使用して、共通アプリ用、api プロジェクト用、www プロジェクト用の 3 つの git リポジトリをセットアップできると思いますが、実際にはやり過ぎのようです。今まで、すべてがうまくいきました。

しかし、今はChefを使用してこのセットアップをデプロイしようとしています。applicationおよびapplication_pythonクックブックを使用し、django プロジェクトをgunicornで実行したいのですが、これらのクックブックは一度に 1 つのプロジェクトのみをデプロイすることを意図しているようです。

www_project のシェフのレシピは次のようになります。

application "django_app" do
    path "/var/django"
    owner "django"
    group "django"
    repository "git.example.com:blabla"
    revision "master"
    migrate true
    packages ["libevent-dev", "libpq5" , "git"]
      # libevent-dev for gevent (for gunicorn), libpq5 for postgresql
    environment "DJANGO_SETTINGS_MODULE" => "www_project.settings"
      # for syncdb and migrate

    django do
        local_settings_file "www_project/settings.py"
        settings_template "settings.py.erb"
        purge_before_symlink ["logs"]
        symlinks "logs" => "logs"
        collectstatic true
        database do
            database "blabla"
            engine "postgresql_psycopg2"
            username "django"
            password "super!password"
        end
        database_master_role "blabla_postgresql_master"
        migration_command "/var/django/shared/env/bin/python manage.py" +
           " syncdb --noinput && /var/django/shared/env/bin/python" +
           " manage.py migrate"
    end

    gunicorn do
        app_module "www_project.wsgi:application"
        preload_app true
        worker_class "egg:gunicorn#gevent"
        workers node['cpu']['total'].to_i * 2 + 1
        port 8081
        proc_name "blabla_www"
    end
end

api_project に別の gunicorn リソースを追加する方法を知りたいだけです。誰かが同様の問題に遭遇しましたか? 1 つの git リポジトリで複数のプロジェクトを許可するために、application_python クックブックのローカル コピーにパッチを適用することをお勧めしますか? それとも、3 つの個別の git リポジトリをセットアップするという苦労を経験する必要がありますか? または他の解決策はありますか?

ありがとう!

4

1 に答える 1