Есть ли решение для развертывания веб-сайтов IIS, похожих на Capistrano?

Capistrano - отличное решение для создания сценариев, которые автоматически развертывают веб-сайт и/или базу данных. Но, это также очень * nix centric, и из того, что я прочитал, вероятно, будет больше проблем, чем стоит заставить его работать с сервером Windows. Есть ли аналогичное решение, которое позволит мне развернуть веб-сайт ASP.Net на сервере IIS и базе данных SQL Server?

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

Ответ 1

Мы используем файлы msi, созданные программой установки Factory. Это в значительной степени позволяет вам устанавливать любые параметры настройки, которые вам нужны. Мы также смотрим, как использовать AntHill Pro, который, вероятно, больше связан с тем, что вы ищете, но это большие деньги.

Все в IIS может быть изменено с помощью скриптов vb. Что касается бесплатного маршрута, который, вероятно, самый дешевый. Я уверен, что вы можете использовать это в сочетании с пакетными файлами и небольшим пользовательским программированием, и вы можете развернуть все, что вам нужно, для iis и sql-сервера.

Ответ 2

Я использовал Capistrano с ASP.NET и IIS. Чтобы получить его работу, я установил Cygwin на целевые компьютеры и модифицировал Capistrano, чтобы снести и настроить виртуальные каталоги в IIS при отпускании или откате.

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

Ответ 3

Я не знаю о чем-то с таким количеством функций, как Capistrano, но там старый добрый nant

Ответ 4

Это определенно не полный инструмент, как Capistrano, но powershell предоставит вам возможность выполнять скрипты и т.п., Вам просто нужно будет script частей развертывания.

Ответ 5

Не совсем то, что вы ищете, но Hudson в сочетании с MSBuild и webdeploy (aka MSDeploy) может удовлетворить ваши потребности в дополнение к непрерывной интеграции. Это путь, который я принимаю. Я надеюсь, что Hudson создаст пакеты через MSDeploy, которые сохраняются локально и вытесняются на промежуточный сервер, когда сборка завершается успешно. Затем позже выведите одно нажатие на push пакетов для производства.

Обновление: это оказалось довольно простым. Вместо того, чтобы создавать пакеты, у меня есть msdeploy, чтобы вывести успешные сборки на сервер разработки. Затем может быть создана отдельная задача, позволяющая push-отладку msdeploy от разработки до производства (или промежуточного промежуточного сервера).