Чем вы разворачиваете и деплоите django-проекты на локальной машине и на сервер?

Добрый день!

Добавил уточнение ниже.

Последнее время все чаще появляется необходимость разворачивания django-проектов на серверах и от этого становится тоскливо.
Каждый раз приходится ставить ubuntu, базу данных, пакеты, virtualenv, создавать директории, синхронизировать туда файлы. Перед этим надо на локальном компе сделать ряд манипуляций, начиная от создания virtualenv на локальной машине и заканчивая той же самой установкой нужных пакетов из pip.
Хочется чего-то универсального, чтобы из шаблона можно было быстро развернуть и на локальной машине, и потом залить на удаленную, предварительно ее настроив.
Чем вы пользуетесь для этого?

Уточнение:
На дев машине разработчика, то есть своей, я делаю
1. Устанавливаю базу данных
2. Создаю базу данных
3. Создаю virtualenv
4. Ставлю нужные пакеты
5. Создаю django проект и app внутри него
6. Перемещаю settings.py в пакет внутри проекта settings
7. Правлю settings, прописываю параметры базы данных
8. Правлю INSTALLED_APPS, MIDDLEWARE_CLASSES, TEMPLATE_CONTEXT_PROCESSORS
9. Правлю urls.py, добавляя нужные урлы из установленных приложений.

Давайте пока решим чем сделать такой шаблон, чтобы я просто указывал название нового проекта, а оно все делало?
  • Вопрос задан
  • 3532 просмотра
Пригласить эксперта
Ответы на вопрос 4
MintTea
@MintTea
Vagrant и Ansible. Один раз пишете плейбуки, затем новая машина для разработчика разворачивается командой vagrant up, новый сервер - ansible-playbook production.yml
Ответ написан
Pewget
@Pewget
Программист
Я сейчас использую собственным скриптом, который из свежеустановленного debian делает готовую к работу с django машину: ставит все пакеты, mysql, создает пользователя, nginx и т.д. Создавал скрипт просто - настраивал новый сервер и все команды записывал в файлик :)
Остается только сделать git clone, установить пакеты через pip и создать БД.
Все это значит около 30 минут на сервер, что довольно много, но мне приходится это делать не чаще раза в месяц, поэтому устраивает.

Но этот вариант явно не идеален и в дальнейшем планирую перейти на docker.
Ответ написан
Комментировать
kivsiak
@kivsiak
software engineer
Ansible для настройки окружения. Virtualenv pip freeze для синхронизации зависимостей. Fabfile для того чтобы разрулить все это на уровне приложения.
Ответ написан
@chemiron
Попробуйте makesite (https://github.com/klen/makesite). Пока использовал только для деплоя, но функционал позволяет и разворачивать новое окружение для разработки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы