Как вы управляете производственными сайтами и настройками с помощью GIT? - PullRequest
1 голос
/ 17 августа 2011

Я имею дело с проектом django, который мы запускаем вживую, даже когда я пишу это.Рабочий сервер является линодом, и в рамках настройки у нас есть SSL и сертификаты, а также несколько отличий от разработки и контроля качества.

В моем settings.py у меня есть следующий код:

import socket
hostname = socket.gethostname().lower().replace('-', '_').split('.')[0]

try:
    exec("from %s_local_settings import *" % hostname)
except ImportError:
    pass

, который загружает локальные настройки для этого конкретного ящика с линодами.Но на том же линоде у нас будет еще один экземпляр проекта (тот, который мы размещаем для клиента).Этот первый экземпляр похож на рекламу / демонстрацию / обучение.Итак, мой милый маленький взломать имя узла не сработает ....

Как вы справляетесь с такого рода проблемами в производственной среде?Скоро у нас будет резервная копия с зеркальными базами данных, поэтому сложность продолжает расти, и я не уверен, как легко отслеживать и поддерживать все изменения.

Я использую git и создалветвь с именем production-www, я предполагаю, что по мере продвижения вперед я сливаюсь с master в ветку production-www, и файлы, относящиеся к этой установке, не будут перезаписаны (за исключением файла имени узла, которыйУ меня нет решения на данный момент).

Кто-нибудь делает что-нибудь проще или умнее, чем это?

Ответы [ 2 ]

2 голосов
/ 17 августа 2011

Зафиксируйте пример файла settings.py в хранилище (например, settings.py.example), затем скопируйте и отредактируйте с реальным именем хоста для каждого развертывания - попытка обнаружить такие вещи, как имя хоста, пути и т. Д., Может быстро запутаться.

Новые развертывания не будут засорять его, так как он не находится в репозитории, но вы, вероятно, скажете git игнорировать сам «settings.py», чтобы случайно не зафиксировать файл настроек разработки.

0 голосов
/ 17 августа 2011

Я возился с Silk Deployment , который представляет собой набор инструментов Python, основанный на Fabric , который использует Git для синхронизации конфигураций при развертывании. Он предназначен для использования с Django, и это очень, очень круто. Стоит посмотреть!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...