У меня два сервера, Dev
сервер и Production
сервер. В Production
на сервере работает живой сайт Django, а Dev
На сервере есть копия проекта Django. Я использую Dev
сервер для работы на сайте Django, внесения улучшений, исправления ошибок и т. д. Как только я буду удовлетворен тем, как Dev
версия работает, я перемещаю весь каталог Django из Dev
сервер и замените тот же каталог на Production
сервер. Два сервера не в той же локальной сети, поэтому процесс непростой.
С этим у меня есть несколько проблем.
Я думаю, мне нужно перейти в репозиторий GIT для этого процесса. Но мой вопрос в том, как мне все это настроить?
Production
сервер, вытащите из Dev
сервер, сделайте работу, а затем зафиксируйте? Тогда я бы вытащил из Production
сервер (тот же сервер, на котором размещено репо) для запуска текущей рабочей версии?Dev
Сервер, загружающий с того же сервера для работы с репо, затем загружает рабочую версию на Production
сервер? Production
сервер и Dev
сервер (третий сервер)?Спасибо за помощь :)
Я занимаюсь разработкой Django и GIT 18 месяцев. В течение этого периода я пытался разместить у себя репозиторий git, а сегодня я использую GITHUB для работы. Это проще и экономит время за небольшие деньги. Взгляните на мои соображения:
Если вы не являетесь экспертом по Linux с опытом работы с GIT, дешевле (учтите, что время - деньги) разместить свой проект на GITHUB. У них есть бесплатный хостинг GIT для публичных проектов (любой может их клонировать / форкнуть). У них также есть (дешевый) платный хостинг GIT, если вы хотите иметь частный репозиторий.
GITHUB (или другая хостинговая компания GIT) упростит настройку репозиториев, чтобы вы могли научиться работать с GIT по мере его использования (другими словами, из-за веб-интерфейса вам не нужно изучать больше, чем команду basig GIT синтаксис строки перед использованием GIT)
GIT - это система версий с распределенным контролем. Это означает, что каждое место, куда вы помещаете копию своего репозитория, будет иметь полную историю всего вашего кода, поэтому, если вы решите разместить свой собственный сервер GIT, не имеет значения размещать сервер DEV или PRD. Фактически, вы можете поместить его в свой собственный блокнот, не опасаясь потери данных, потому что у вас есть копия в DEV и PRD. Имейте в виду, что вы должны делать PULL-запросы на вашем DEV и на вашем сервере PRD с вашего сервера GIT.
Легко создавать сценарии FABRIC для обновления сервера DEV или PRD с вашего собственного компьютера. Все, что вам нужно сделать, это иметь что-то вроде этого в вашем fabfile.py:
def deploy_production(): with cd('/home/my_user/my_project'): run("git pull") # update to the newest version with prefix('source ~/.virtualenvs/my_env/bin/activate'): run('./manage.py collectstatic --noinput') def production(): """ Sets environment to production """ continue = confirm('Updating the production environment, continue?', default=False) if not continue: abort('Good bye - thanks for doing nothing on production!') env.hosts = ['my_server.my_domain.com.br'] env.key_filename = ['~/amazon/my_ssh_key.pem'] env.user = 'ubuntu' # Use this to run fabric update procedure: fab production deploy_production
Надеюсь, это поможет, хороший взгляд!
Если вы найдете эти ответы полезными, присвойте баллы.
Я предлагаю вам использовать систему управления исходным кодом, такую как git, как вы упомянули, выполнять свою работу локально и взглянуть на Ткань для развертывания. Ты можешь использовать git checkout-index
чтобы экспортировать код локально (через код в fabfile) перед его отправкой на сервер с помощью команды типа fab dev deploy
. Когда вы будете готовы к развертыванию в производственной среде fab prod deploy
. Вы можете поместить код в fabfile, чтобы переместить исходный код в нужное место, обновить зависимости, такие как Django (например, через pip), перезапустить uwsgi и т. Д.