У меня есть git-хранилище с двумя Django 1.5 проекта: один для сайта, другой для REST api. Репозиторий выглядит следующим образом:Как развернуть два проекта django в одном хранилище git с шеф-поваром?
api_project/
www_project/
logs/
manage.py
my_app_1/
my_app_2/
The manage.py
файл по умолчанию www_project.settings
. Для запуска api_project
, я бегу:
DJANGO_SETTINGS_MODULE=api_project.settings ./manage.py shell
Я предполагаю, что может настроить 3 GIT репозиториев, один с общими приложениями, один для проекта апи и один для проекта WWW, используя Git подмодулей и все, но это действительно похоже overkill. До сих пор все работало нормально.
Но теперь я пытаюсь развернуть эту установку, используя Chef. Я хотел бы использовать кулинарные книгии запускать проекты django с gunicorn, но эти кулинарные книги, похоже, предназначены для развертывания только одного проекта за раз.
Вот что мой рецепт шеф выглядит для 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
Я просто хотел бы знать, как добавить еще один gunicorn Ressource для api_project. Кто-нибудь сталкивался с подобной проблемой? Не могли бы вы порекомендовать исправление моей локальной копии кулинарной книги application_python, чтобы разрешить несколько проектов в одном git-репо? Или я должен пройти через боль от создания 3 отдельных репозиториев git? Или любое другое решение?
Спасибо!
Столкнулся с аналогичным сценарием в прошлом. Хотя каждое решение в этом случае имеет свои плюсы и минусы, я бы рекомендовал иметь отдельные репозитории и создавать подключаемый пакет python или django-app для обычных вещей. – Amyth
Итак, вы рекомендуете маршрут «3 git repositories». Ну, я надеялся, что смогу этого избежать. Спасибо за ваш отзыв. – MiniQuark