2014-12-12 3 views
0

Я занимаюсь выпускным проектом, где я должен автоматизировать развертывание циклов внутри компании, в которой я работаю. Инструментом, который они хотят использовать, является Microsoft Release Management.Непрерывная доставка с Microsoft Release Management

Однако, когда я смотрю дальше на функции, которыми обладает Управление выпуском, возникает больше вопросов, чем ответов.

Некоторые справочные данные.

Все среды, которые компания собирается переместить в центр обработки данных и будут работать на виртуальных машинах (VMware). Они могут использовать инструмент vCloud для создания и управления виртуальными машинами.

Чтобы все было просто, на данный момент существует четыре условия: 1 dev, 2 тестирования и 1 прием. Эти четыре среды всегда работают, поэтому я полагаю, что Release Management не имеет проблем с подключением к этому серверу, и я могу без проблем создавать шаблоны выпуска.

Теперь наступает сложная часть. В то же время развертывание выполняется в среде dev, в которой они хотят создать новую виртуальную машину (с сценариями powershell, какой-то копией dev) и сделать то же самое развертывание в этой среде. Этот скрипт должен взаимодействовать с сторонним инструментом или с REST API, предоставляемым хостинг-провайдером. Я знаю, что сценарий должен запускаться внутри серверного компонента в шаблоне выпуска. Поэтому я знаю 2 известных обходных пути для этого. Я могу запустить этот скрипт в моем шаблоне выпуска, когда я развернусь в dev, или я могу использовать выделенный сервер для запуска всех скриптов, чтобы создать новую виртуальную машину.

Что я могу развернуть в этой новой среде, не сообщая руководству по выпуску вручную, что есть новый сервер? Этот процесс должен быть полностью автоматизирован.

ответ

0

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

Подход, который я принял, заключается в использовании конфигурации желаемого состояния и использовании сервера «трамплинов» (rm-dsc-launcher) в сочетании с пользовательским сценарием PowerShell, который я написал. В моем случае это был Лазурный. В вашем случае это VMWare. Независимо от этого:

  1. Я создал сценарий конфигурации желаемого состояния и любые пользовательские ресурсы DSC, необходимые для настройки моей среды и установки моего программного обеспечения. Это проверяется на исходное управление и переносится на сокращение сборки, поэтому оно доступно во время развертывания.
  2. Я создал пользовательский инструмент/действие под названием «среда обеспечения», которая принимает все необходимые параметры для создания новой виртуальной машины.
  3. Я создал собственный инструмент под названием «Выполнять сценарий DSC» и использовал его в компоненте для двоичных файлов моего приложения. Одним из параметров является путь к сценарию развертывания. Вы можете получить доступ к пути к двоичным файлам/сценариям, передав значение $(PackageLocation) в качестве параметра для компонента.

Это не самое красивое решение в мире, но оно функционально.

Смежные вопросы