Как развернуть два проекта в одном решении на двух разных серверах с помощью Release Management DSC
У меня есть три проекта в одном решении, которое я хочу развернуть с помощью RM DSC:
- служба Windows
- WebUI
- и проект БД
Для развертывания у меня есть три сервера Azure:
- ящик SQL
- и два сервера приложений
В настоящее время я могу успешно развернуть все три проекта на всех трех серверах, но для некоторых новых указаний от начальника, я должен развернуть мои проекты следующим образом:
- Проект службы Windows на всех трех серверах
- веб-интерфейс в один из серверов приложений и
- Проект БД в поле SQL.
Моя конечная цель - копировать файлы, которые нужны только на каждом из серверов назначения. Например, я хотел бы хранить только файлы БД на сервере БД и аналогичным образом файлы WebUI только на сервере приложений.
1 ответ
Вы можете оформить заказ: непрерывное развертывание с использованием dsc-with-minimal-change
По сути, вы можете использовать конфигурацию, чтобы выбрать тип роли "сервер" и установить разные пакеты для каждого. Однако я считаю, что проще иметь DSC для каждого типа роли (он же веб-роль или роль БД) для инкапсуляции функциональности (даже за счет некоторого дублирования).
В Интернете есть несколько примеров установки БД / и т.д., вот пример установки веб-сайта: DSC Web Install
Однако я согласен с @Graham Smith в том, что касается отделения развертывания от предоставления (создание и настройка vm). Я бы сфокусировал ваши DSC на аспекте конфигурации предоставления и использовал бы второй шаг в вашем общем процессе для развертывания с помощью msdeploy и такого инструмента, как fluentmigrator для БД.
РЕДАКТИРОВАТЬ: Добавлен параметр загрузки файла, который хорошо работает на Azure (этот шаблон может быть использован для не-AzureVM)
Один из способов загрузки файлов - это обернуть нужные файлы в ресурс DSC. Например,
- Создайте ресурс DSC, содержащий файл / файлы, к которым вы хотите получить доступ. Я создал пример, который содержит Erlang, который я использую для установки здесь
- Импортируйте ресурс модуля DSC в ваш DSC:
Import-DscResource -ModuleName Erlang
- Убедитесь, что ресурс DSC находится в пути вашего модуля
- Используйте Publish-AzureVMDscConfiguration для создания zip (который будет содержать импортированный ресурс DSC).
- Ваш ресурс DSC будет в пути модуля
"$env:ProgramFiles\WindowsPowerShell\Modules\Erlang\otp_win32_17.5.exe"