Мне нужно развернуть свой код php / html / css / etc на нескольких серверах, и я ищу варианты программного обеспечения, которое позволяет легко и безопасно развертывать на нескольких серверах.
Также помогает, если его можно привязать к моему SVN.
Какие-либо предложения?






Настройка аутентификации с открытым ключом без пароля с помощью ssh позволит вам очень быстро перенести ваши файлы на любой из ваших серверов (или автоматически с помощью сценария оболочки).
Вот простой урок: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html
Я раньше использовал Студия автоматизированной сборки для подобной задачи. Это дает вам большую гибкость в том, что вы можете делать.
Я согласен - настройте свое svn-дерево и используйте rsync поверх ssh, чтобы скопировать дерево в удаленные места. rsync сделает его быстрым и эффективным, копируя только изменения, а не полные файлы.
Вы хотите экспортировать свое svn-дерево в какой-либо каталог, а затем rsync оттуда в дерево каталогов удаленного хоста.
Я также забыл упомянуть, что если вы используете rsync, вы можете настроить rsync для использования ssh, поэтому вы будете передавать только те файлы, которые были изменены, экономя время и пропускную способность.
Если вы работаете в Redhat или Debian, подумайте о том, чтобы упаковать свой код в RPM или Debs. Затем создайте репозиторий yum или dpkg и поместите туда свои пакеты. Затем вы можете использовать управление пакетами вашей системы для обновления / отката и т. д. Вы даже можете использовать кукольный для автоматизации процесса.
Если вы хотите привязать его к Subversion, вы можете создать ветку для каждой новой версии. Используйте сценарии фиксации для создания RPM, когда в каталоге появляется новая ветка.
Capistrano очень удобен для этого. Некоторые люди используют его (1, 2, 3) для развертывания кода PHP, о чем свидетельствует выполнение Быстрый поиск.
Я второй Капистрано. Он невероятно мощный и гибкий. В нашем текущем проекте Capistrano используется для развертывания на разных серверах, а также на нескольких серверах. Мы передаем два аргумента команде cap: 1) имя набора параметров конфигурации, зависящих от машины, для запуска и 2) название действия для запуска
в итоге выглядит так:
cap -f deploy.rb live deploy
или же
cap -f deploy.rb dev deploy
Конечно, вариант использования по умолчанию - развертывание на множестве машин одновременно - это пустяк с Capistrano, и вам не нужно иметь Capistrano на машинах, на которых вы развертываете. В общем, вкусная техника.
Я отметил сообщение о том, как развернуть ваши веб-сайты с помощью Subversion: http://blog.lavablast.com/post/2008/02/I2c-for-one2c-welcome-our-new-revision-control-overlords!.aspx
Я обнаружил, что capistrano очень легко использовать после настройки. Файл конфигурации может сначала немного сбивать с толку для более сложных сред, но вскоре он становится полезным. Развертываю на 14 серверах на продакшене. Я также использую несколько сред для развертывания на промежуточном сервере. Одна причуда, в Ruby есть ошибка, которая мешает параллельному развертыванию, но серийно не так уж и плоха с экспортом svn.
Вы также можете использовать kwateeSDCM, который является бесплатным и позволяет удаленную установку через ssh. Он также позволяет централизованно управлять конфигурацией конкретного сервера и делать обновления незаметными.
Настройка Capistrano слишком сложна. Мы обнаружили, что KwateeSDCM очень прост в использовании с простым веб-интерфейсом и без скриптов. Мы в кратчайшие сроки подготовили конфигурацию развертывания для настройки Dev и QA на серверах Windows и Linux.
doddle (имя существительное): неформальный (брит.) что-то легко выполнимое :) -bit.ly/fU2WSI