Я работаю с разработкой Django и GIT в течение 18 месяцев. В течение этого периода я пытался разместить у себя репозиторий git, а сегодня я использую GITHUB для работы. Это проще и экономит время за небольшие деньги. Посмотрите на мои соображения:
Если вы не являетесь экспертом по Linux и не имеете опыта в GIT, дешевле (считайте, что время - деньги) разместить ваш проект на GITHUB. У них есть бесплатный хостинг GIT для публичных проектов (любой может их клонировать / форкнуть). У них также есть (дешевый) платный хостинг GIT, если вы хотите иметь частный репозиторий.
GITHUB (или другая хостинговая компания GIT) упростит настройку репозиториев, чтобы вы могли научиться работать с GIT по мере его использования ( Другими словами, благодаря веб-интерфейсу вам не нужно изучать больше, чем базовый синтаксис командной строки 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
Надеюсь, это поможет, хороший вид!
Если вы сочтете эти ответы полезными, присвойте баллы.
Имейте в виду, что вы должны делать 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
Надеюсь, это поможет, хороший вид!
Если вы сочтете эти ответы полезными, присвойте баллы.
Имейте в виду, что вы должны делать 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, как вы упомянули, выполнять свою работу локально и взглянуть на Fabric для развертывания. Вы можете использовать git checkout-index
для локального экспорта кода (через код в файле fabfile) перед его отправкой на сервер с помощью команды типа fab dev deploy
. Когда вы будете готовы к развертыванию в производственной среде fab prod deploy
. Вы можете поместить код в fabfile, чтобы переместить исходный код в нужное место, обновить зависимости, такие как Django (например, через pip), перезапустить uwsgi и т. Д.