Развертывание на несколько серверов

Мне нужно развернуть код php / html / css / etc на несколько серверов, и я рассматриваю свои варианты программного обеспечения, которое позволяет легко и безопасно развертывать несколько серверов.

Также помогает, если он может быть привязан к моему SVN.

Какие-либо предложения?

Капистрано очень удобен для этого. Некоторые используют его ( 1 , 2 , 3 ) для развертывания PHP-кода, о чем свидетельствует быстрый поиск .

Настройка аутентификации с использованием sys-кода без пароля позволит вам быстро скопировать ваши файлы на любой из ваших серверов (или быть автоматическим с помощью сценария оболочки).

Вот простой учебник: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html

Если вы работаете в Redhat или Debian, подумайте о том, чтобы упаковать свой код в RPM или Debs. Затем создайте репозиторий yum или dpkg и разместите там свои пакеты. Затем вы можете использовать управление пакетами своей системы для выполнения обновлений / откатов и т. Д. Вы даже можете использовать марионетку для автоматизации процесса.

Если вы хотите связать его с подрывной деятельностью, вы можете создать ветвь для каждой новой версии. Используйте сценарии фиксации для создания RPM, когда появляется новая ветка в каталоге.

Я второй Капистрано. Это невероятно мощный и гибкий. Наш текущий проект использует Capistrano для развертывания на разных серверах, а также на нескольких серверах. Мы передаем два аргумента команде cap: 1) имя набора настраиваемых параметров конфигурации машины для запуска и 2) имя выполняемого действия

заканчивается следующим образом:

cap -f deploy.rb live deploy 

или

 cap -f deploy.rb dev deploy 

Разумеется, случай использования по умолчанию – развернуть сразу на множество машин – это переезд с Capistrano, и вам не нужно иметь Capistrano на машинах, на которых вы развертываете. В целом, вкусные технологии.

Я использовал Automated Build Studio раньше для аналогичной задачи. Это дает вам большую гибкость в том, что вы можете сделать.

Я соглашаюсь – установите ваше дерево svn и используйте rsync over ssh, чтобы скопировать дерево в удаленные местоположения. rsync сделает его быстрым и эффективным, только копируя изменения, а не полные файлы.

Вы хотите экспортировать дерево svn в некоторый каталог, а затем rsync оттуда в дерево каталогов удаленного хоста.

Я также забыл упомянуть, что если вы используете rsync, вы можете настроить rsync на использование ssh, поэтому вы будете передавать только те файлы, которые были изменены, сэкономить время и пропускную способность.

Вы также можете использовать kwateeSDCM, который является бесплатным и позволяет удаленную установку через ssh. Он также позволяет вам управлять конфигурацией, специфичной для сервера, из центрального местоположения и делать обновления без видимых.

Я отметил сообщение о том, как развернуть ваши сайты с помощью Subversion: http://blog.lavablast.com/post/2008/02/I2c-for-one2c-welcome-our-new-revision-control-overlords!.aspx

Я нашел capistrano очень простым в использовании после его настройки. Конфигурационный файл может быть немного запутанным сначала для более сложных сред, но вскоре он становится полезным. Я развертываю до 14 серверов на производстве. Я также использую несколько сред для развертывания на промежуточном сервере. Одна из причуд, в Ruby есть ошибка, которая прерывает параллельное развертывание, но серийно не так уж плохо при экспорте svn.

Настройка Capistrano слишком сложна. Мы обнаружили, что KwateeSDCM очень прост в использовании с простым веб-интерфейсом и без скриптов. У нас есть наша конфигурация развертывания, сделанная в кратчайшие сроки для конфигурации Dev и QA на серверах Windows и Linux.