Как развернуть два проекта в одном решении на двух разных серверах с помощью Release Management DSC

У меня есть три проекта в одном решении, которое я хочу развернуть с помощью RM DSC:

  • служба Windows
  • WebUI
  • и проект БД

Для развертывания у меня есть три сервера Azure:

  • ящик SQL
  • и два сервера приложений

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

  1. Проект службы Windows на всех трех серверах
  2. веб-интерфейс в один из серверов приложений и
  3. Проект БД в поле SQL.

Моя конечная цель - копировать файлы, которые нужны только на каждом из серверов назначения. Например, я хотел бы хранить только файлы БД на сервере БД и аналогичным образом файлы WebUI только на сервере приложений.

1 ответ

Решение

Вы можете оформить заказ: непрерывное развертывание с использованием dsc-with-minimal-change

По сути, вы можете использовать конфигурацию, чтобы выбрать тип роли "сервер" и установить разные пакеты для каждого. Однако я считаю, что проще иметь DSC для каждого типа роли (он же веб-роль или роль БД) для инкапсуляции функциональности (даже за счет некоторого дублирования).

В Интернете есть несколько примеров установки БД / и т.д., вот пример установки веб-сайта: DSC Web Install

Однако я согласен с @Graham Smith в том, что касается отделения развертывания от предоставления (создание и настройка vm). Я бы сфокусировал ваши DSC на аспекте конфигурации предоставления и использовал бы второй шаг в вашем общем процессе для развертывания с помощью msdeploy и такого инструмента, как fluentmigrator для БД.

РЕДАКТИРОВАТЬ: Добавлен параметр загрузки файла, который хорошо работает на Azure (этот шаблон может быть использован для не-AzureVM)

Один из способов загрузки файлов - это обернуть нужные файлы в ресурс DSC. Например,

  1. Создайте ресурс DSC, содержащий файл / файлы, к которым вы хотите получить доступ. Я создал пример, который содержит Erlang, который я использую для установки здесь
  2. Импортируйте ресурс модуля DSC в ваш DSC: Import-DscResource -ModuleName Erlang
  3. Убедитесь, что ресурс DSC находится в пути вашего модуля
  4. Используйте Publish-AzureVMDscConfiguration для создания zip (который будет содержать импортированный ресурс DSC).
  5. Ваш ресурс DSC будет в пути модуля "$env:ProgramFiles\WindowsPowerShell\Modules\Erlang\otp_win32_17.5.exe"
Другие вопросы по тегам