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

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

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

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

11 ответов

Решение

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

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

Вот простое руководство: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html

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

в конечном итоге выглядит так:

cap -f deploy.rb live deploy

или же

cap -f deploy.rb dev deploy

Конечно, вариант использования по умолчанию - развертывание на нескольких машинах одновременно - это пустяк с Capistrano, и вам не нужно иметь Capistrano на машинах, на которых вы развертываете. В общем, вкусная технология.

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

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

Я согласен - настройте ваше дерево SVN и используйте rsync поверх SSH, чтобы скопировать дерево в удаленные места. rsync сделает это быстро и эффективно, копируя только изменения, а не полные файлы.

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

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

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

Я также забыл упомянуть, что если вы используете rsync, вы можете настроить rsync на использование 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.

Другие вопросы по тегам