Мне нужно развернуть код 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.