Можно ли использовать Nant для развертывания на разных серверах? - PullRequest
2 голосов
/ 17 августа 2011

Можно ли использовать Nant для развертывания приложения на другом наборе серверов на основе какого-либо свойства / параметра?

Что мне нужно сделать для NANT: среда состоит из 1 или более серверов.У нас есть несколько сред (dev, qa, prod).Пакет содержит несколько проектов веб-сайтов.

Когда NANT запрашивается для сборки для DEV, ему необходимо собрать проекты и правильно настроить файл web.config для работы в среде DEV (строки подключения и т. Д.),Кроме того, каждый проект веб-сайта необходимо развернуть на правильном сервере для этой среды.

Кроме того, можно ли использовать NANT для создания всех моих проектов один раз, а затем развертывать его несколько раз (развернуть в Dev, QAСреды Prod?) (Т. Е. Сборка и развертывание выполняются в разное время, и после того, как сборка будет создана, развертывание может быть запущено для этого пакета сборки несколько раз)

Ответы [ 2 ]

1 голос
/ 18 августа 2011

Посмотрите на мой ответ здесь для управления конфигурацией: Если у меня есть несколько файлов build.xml для одного проекта (dev, staging, production)

В основном вам нужно environment configs для DEV, QA, PREPROD, PROD и т. Д., Укажите среду, которую вы хотите развернуть во время развертывания (скажем, из командной строки через -D:environment=DEV), которая будет использовать соответствующую конфигурацию и развертывание.

Build once, deploy everywhere - это общий подход, который вы используетедолжен следовать.Сборка и развертывание должны быть отдельными целями.При необходимости используйте инструмент CI (например, Jenkins, TeamCity) для создания приложения.Выставьте приложение сборки (zip, tar, war и т. Д.) Как артефакты.В цели развертывания загрузите необходимый артефакт и выполните развертывание.

1 голос
/ 18 августа 2011

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

Файлы копируются из источника в место назначения.Затем указанный файл конфигурации (Web.config.dev, Web.config.qa, Web.config.production) копируется в место назначения и переименовывается в Web.config.

...