LINUX.ORG.RU
 

Инструмент деплоинга для веброекта ?


0

1

Есть проект(сайт), написан на yii. Код лежит в svn.
Есть вебсервер (nginx+php-fpm).
Есть программисты, которые пишут код и комитят в svn.

Сейчас развертывание кода(стабильной версии) выглядит незатейливо :
человек заходит по ssh на вебсервер и делает svn update+ правка конфигов, установка прав и тп.

Хочется внедрить инструмент, который позволит автоматизировать все эти действия + избавит от необходимости использовать ssh.

Зы - можно конечно написать Makefile с кучей ssh,sed,awk, chown... но наверняка все уже придумали за нас :)

кстати, еще вопрос - как обычно деплоят БД?


[#]  

Инструмент называется fabric, а для БД берут django-south(sqlalchemy-migrate), но сперва переписывают всё на питоне.

А вообще для деплоймента ответ очевиден - используйте пакетный менеджер. Заверните свой проект в deb/rpm/что_там_у_вас и деплойтесь автоматически.

* ()
[#] Ответ на: комментарий от Snorg 07.02.2012 19:01:20  

вряд ли пакеты здесь подходят - речь идет не о разворачивании на новом чистом сервере, а о переодическом обновлении кода/контента на существующем.

***** ()
[#] Ответ на: комментарий от dreamer 07.02.2012 19:03:15  

Все приличные пакетные менеджеры прекрасно умеют обновлять пакеты, не только их ставить. Я так деплоился на дебиан: на новый тег в svn срабатывает триггер, пробегаются тесты, собирается новый deb, в конце версии которого дописывается номер ревизии из svn, этот deb-пакет автоматически кладётся репозитарий, а веб-сервер тупо по крону делает apt-get update && apt-get install webprojectname. Наверняка можно сделать и красивее без крона.

* ()
[#]  

Универсального средства нет. Все зависит от типа проекта, критичности, инфраструктуры.

Если надо обновить хомяк на одном сервере, вариантов много. Многие уже озвучивали здесь. Я обычно пишу простенький phing скрипт, который таки делает svn export на сервере, исполняет скрипты для БД миграции и меняет симлинки на новые версии.

Когда обновления и даун-тайм критичны, появляется очень много новых проблем с синхронизацией на всех машинах и, скорее всего, придется изучать досконально fabric, capistrano и все в подобном роде. Деплоймент БД в промышленных масштабах это вообще все очень индивидуально и тяжело

* ()
[#]  
bitfroster
>>-----Цитата---->>

кстати, еще вопрос - как обычно деплоят БД?

<<-----Цитата----<<

В Yii для этого есть миграции. Если при разработке появляются данные - phing'а зачастую хватает, попробуйте. Не будет хватать - можно перелезть на capistrano.

()
[#]  
resurtm
>>-----Цитата---->>

кстати, еще вопрос - как обычно деплоят БД?

<<-----Цитата----<<

Когда будешь заниматься разработкой системы автодеплоинга базы, то имей ввиду, что например Yii тот-же умеет миграции в БД.

* ()