Удаленное развертывание с использованием круиз-контроля.Net и Nant

В настоящее время мы используем Cruise Control .Net и Nant для создания пакетов развертывания для нашего веб-сайта ASP .NET. По сути это просто версии и файлы, компилирует код, а затем создает zip-файл. Затем это до развертывания на удаленном рабочем столе на целевой машине, скачать файл zip, распаковать его и поместить содержимое в правильную папку IIS.

Мы хотим автоматизировать этот процесс развертывания, поэтому я написал пакетный файл для ручной работы. Он загружает zip-файл с помощью wget с нашего сервера сборки, распаковывает его, останавливает iis, заменяет веб-файлы и затем перезапускает iis. Проблема заключается в том, что этот файл должен быть запущен на самой целевой машине, и я хотел бы устранить необходимость прямого подключения к целевой машине.

Другое требование заключается в том, что мы можем повторно развернуть одну и ту же сборку на разных серверах. Поэтому я хочу выбрать предыдущую сборку и сказать "развернуть это на сервере X", не перестраивая сайт вообще. Это для случаев, когда сборка была протестирована на нашем сервере Teset, и мы хотим развернуть точно такую ​​же сборку, т.е. тот же zip-файл, на наших производственных серверах.

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

Я предполагаю, что идеальным сценарием было бы как-то подключить этап развертывания к нашей панели круиз-контроля, в которой раскрываются списки сборок и серверов для развертывания. Затем мы можем выбрать сервер сборки и целевой сервер, и сервер сборки (где не включен круиз-контроль) будет использовать psexec для развертывания выбранной сборки на целевой машине. Однако я не думаю, что это возможно.

У кого-нибудь есть предложения?

2 ответа

Я бы посмотрел на webdeploy. В последнее время он стал серьезным продуктом, и вы можете делать все, что только можно, через пользовательский интерфейс. Вот ссылка на подкаст + сообщения в блоге от парня, который довольно серьезно относится к развертыванию без щелчка.

Просто настройте свою работу круиз-контроля с дополнительным шагом exec, который вызывает Webdeploy Microsoft с правильными аргументами на нужный сервер. Затем разработчики могут войти в CC.NET и нажать кнопку "Force" для задания "build-and-deploy", которое будет собираться, а затем запустить этап webdeploy для этой конкретной сборки. У меня их куча работает на CC.net просто отлично. Дайте мне знать, если вы хотите конкретные детали конфигурации.

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