Практическое руководство. Развертывание приложения в виртуальной среде
Visual Studio Lab Management можно использовать для автоматического развертывания приложения в виртуальной среде. Можно воспользоваться особым лабораторным шаблоном для определения построения, чтобы построить приложение, а затем развернуть его в виртуальной среде. Этот процесс позволит установить последнее построение приложения в чистой среде, благодаря использованию известного состояния виртуальной среды. Затем пользователи могут вызвать приложение в этой среде, а разработчик может выполнить ручные или автоматические тесты с помощью Microsoft Test Manager.
Примечание
Если после построения и развертывания приложения требуется выполнить автоматические тесты, выполните действия, описанные в разделе Практическое руководство. Настройка и запуск запланированных тестов после построения и развертывания приложения.
Чтобы создать рабочий процесс построения для построения и развертывания приложения, выполните следующие процедуры.
Проверка наличия необходимых компонентов
Создание определения построения и запуск построения
Подключение к среде из результатов построения
Примечание
Лабораторный шаблон можно использовать только для определения построения с триггерами "Ручной", "Внесен в план" или "Прокрутка построений".Триггеры "Прокрутка построений" использовать не рекомендуется, поскольку даже в случае непрохождения теста может начаться следующая прокрутка построения или может остановиться работа всей системы построения.Триггеры "Условный возврат" и "Непрерывная интеграция" не поддерживаются.
Предварительные требования
Перед настройкой рабочего процесса построения для построения и развертывания приложения необходимо убедиться в том, что перечисленные ниже задачи выполнены.
Необходимые действия
Настройте Lab Management, включая контроллер построений и контроллер тестирования: Первая настройка Lab Management.
Создайте виртуальные машины для своей среды, добавьте в них агенты, а затем сохраните эти виртуальные машины в общей папке библиотеки: Практическое руководство. Создание и хранение виртуальных машин и шаблонов, предназначенных для Lab Management.
Импортируйте виртуальные машины или шаблоны в командный проект из SCVMM: Практическое руководство. Импорт виртуальной машины или шаблона из диспетчера SCVMM.
Создайте среду, использующую эти виртуальные машины в необходимых ролях, выберите выполнение тестов и использование рабочего процесса для этой среды и запустите среду: Практическое руководство. Создание среды из виртуальных машин или шаблонов.
Примечание
На каждой виртуальной машине следует установить и настроить все необходимое программное обеспечение в соответствии с ролью, для которой она была выбрана.Выбор роли для виртуальной машины не приводит к установке необходимого программного обеспечения.
(Рекомендовано.) Создайте снимок среды, которая будет использоваться для рабочего процесса в качестве чистого состояния: Практическое руководство. Сохранение текущего состояния среды. Перед созданием этого снимка выполните следующие действия.
Убедитесь, что на виртуальных машинах среды установлены последние обновления операционных систем.
Воспользуйтесь командой gpupdate /force для всех виртуальных машин в среде, подключенной к домену, и проверьте, внесены ли все изменения в пользовательских политиках. Без выполнения этой команды скрипты развертывания могут работать неправильно. Возможно также неправильное выполнение тестов.
Убедитесь, что состояние среды — "Выполняется", а состояние возможности рабочего процесса — "Готово".
Примечание
Если виртуальные машины в этом снимке присоединены к домену и снимок используется дольше срока действия пароля для контроллера домена, возможность присоединения виртуальных машин к домену может быть потеряна.Дополнительные сведения см. в разделе Практическое руководство. Сохранение текущего состояния среды.
Убедитесь, что проекты кода и тестовые проекты для приложения возвращены в систему управления версиями: Помещение файлов под контроль системы управления версиями.
Создайте для своего приложения определение построения, которое можно использовать для выполнения построения. Затем можно будет выбрать это определение построения или определенное построение, созданное с помощью этого определения построения при создании рабочего процесса построения с помощью лабораторного шаблона: Создание базового определения построения.
Создание построения, развертывание и тестирование рабочего процесса с помощью лабораторного шаблона определения построения
Чтобы создать, развернуть и протестировать рабочий процесс, выполните следующие действия.
Шаг |
Действие |
---|---|
1 |
Создайте базовое определение построения |
2 |
Создайте другое определение построения для создания, развертывания и тестирования рабочего процесса |
3 |
Добавьте сведения о рабочем процессе |
4 |
Поместите определение построения для рабочего процесса в очередь |
Создание базового определения построения
Сначала необходимо создать определение построения для кода в приложении, которое требуется развернуть. Если создание приложения должно осуществляться каждый раз, отключите тесты в этом определении, поскольку они будут выполняться из рабочего процесса с помощью лабораторного шаблона.
Создание определения построения для приложения
В меню Построение выберите Новое определение построения.
На вкладке Общие в поле Имя определения построения укажите имя в текстовом поле Описание и добавьте соответствующее описание.
Выполните действия, описанные в теме Создание базового определения построения.
Создание определения построения для рабочего процесса
Далее следует создать другое определение построения для построения, развертывания и тестирования рабочего процесса как показано на следующем рисунке.
Для создания рабочего процесса следует выбрать файл LabDefaultTemplate, выбрав отображение сведений для шаблона процесса построения, как показано на следующем рисунке.
Создание определения построения для рабочего процесса
В меню Построение выберите Новое определение построения.
На вкладке Общие в поле Имя определения построения укажите имя в поле Описание и добавьте соответствующее описание.
Выберите параметры на вкладках Триггер и Рабочая область, Параметры построения по умолчанию и Политика сохранения, как описано в разделе Создание базового определения построения.
Примечание
На вкладке Параметры построения по умолчанию для рабочего процесса путь к месту, в котором должно храниться построение, вводить не нужно, поскольку при использовании лабораторного шаблона результаты построения не создаются.Транзитный каталог указывать не нужно, снимите флажок Мои копии файлов построения.
Чтобы получить возможность выбора лабораторного шаблона для определения построения на вкладке Процесс в разделе Шаблон процесса построения выберите параметр Показать подробности.
Отобразится раскрывающийся список.
Выберите шаблон. Это файл процесса построения, определяющий рабочий процесс.
Чтобы создать рабочий процесс для развертывания приложения в виртуальной среде с помощью определения построения, выберите файл LabDefaultTemplate.xaml из раскрывающегося списка для Файл процесса построения.
Добавление сведений о рабочем процессе
Теперь можно добавить подробные сведения о рабочем процессе, как показано на следующем рисунке.
Укажите необходимые сведения, следуя указаниям мастера "Параметры рабочего процесса лаборатории".
Теперь можно поставить это построение в очередь, чтобы запустить для него рабочий процесс, и просмотреть ход выполнения этого процесса.
Добавление сведений о рабочем процессе
Чтобы ввести данные для рабочего процесса, в группе Параметры процесса построения выберите Параметры процесса лаборатории и нажмите кнопку с многоточием (…).
Откроется мастер "Параметры рабочего процесса лаборатории", в котором необходимо ввести сведения о рабочем процессе.
На вкладке Среда выберите виртуальную среду, в которой необходимо развернуть приложение.
Примечание
Эта среда должна быть активной.При использовании среды, хранящейся в библиотеке следует эту среду следует развернуть для активации.Также рекомендуется создать для рабочего процесса отдельную среду, с которой не будут работать другие пользователи.Это позволит предотвратить проблемы с возвратом рабочего процесса построения к определенному снимку среды в момент, когда среда используется, и с выполнением скриптов развертывания в среде, когда другой пользователь выполняет тест.
(Рекомендовано.) Если необходимо, чтобы лабораторное определение построения обеспечивало восстановление известного состояния среды, выберите параметр Вернитесь к определенному снимку среды и нажмите кнопку с многоточием (…) для выбора определенного снимка.
Откроется диалоговое окно Выбрать снимок среды. Выберите снимок среды и нажмите кнопку ОК.
Важно!
Чтобы обеспечить согласованное выполнение тестов при каждом построении из известного состояния среды, рекомендуется восстанавливать снимок.Это позволит сократить число недоразумений при определении причины непрохождения теста.Например, избежать ситуаций, когда другой пользователь меняет текущую среду, добавив в нее программное обеспечение, которое может приводить к непрохождению тестов.
Нажмите кнопку Далее.
При необходимости использовать это определение рабочего процесса для построения приложения при каждой постановке в очередь этого определения рабочего процесса, выполните следующие действия.
Выберите параметр Использовать построение Team Foundation и определение, которое было создано ранее.
Выберите Поставить новое построение в очередь.
При необходимости использовать в этом определении рабочего процесса имеющееся построение без повторного построения приложения выполните следующие действия.
Выберите параметр Использовать построение Team Foundation и определение, которое было создано ранее.
Выберите параметр Выберите существующее построение. Затем выберите построение в раскрывающемся списке. В списке отображаются имеющиеся построения, созданные с помощью выбранного определения построения.
Выберите конфигурацию построения в поле Выберите конфигурацию построения.
Примечание
Конфигурации построения задаются при создании определения построения для приложения.При наличии нескольких конфигураций нужную конфигурацию можно выбрать в этом списке.
В случае необходимости задать расположение построения выберите параметр Используйте построение из заданного местоположения и укажите UNC-путь существующего построения.
Нажмите кнопку Далее.
Чтобы развернуть приложение в рамках рабочего процесса, установите на вкладке Развертывание флажок Развернуть построение.
Чтобы добавить скрипты или команды, необходимые для развертывания приложения, нажмите кнопку Добавить. Выберите виртуальную машину, для которой необходимо добавить скрипт или команду.
Теперь можно добавить скрипты или команды для каждой виртуальной машины в среде. Например, в приложении с клиентом Windows может использовать скрипт, копирующий исполняемый файл в расположение, которое будет использоваться закодированным тестом пользовательского интерфейса для выполнения тестов на виртуальной машине. При наличии веб-сервера нужно запустить скрипт или выполнить команду для развертывания этой части приложения.
Со скриптами можно использовать следующие переменные.
$(BuildLocation) – это расположение построения. Если было задано использование построения из общего расположения, данная переменная будет представлять соответствующий путь. Для других параметров это будет полный путь к построению на основе выбранной для него конфигурации, а также расположение для сохранения построения в определении построения. При построении приложения в рамках рабочего процесса ее можно использовать для доступа к новейшим файлам, созданным построением.
$(InternalComputerName_<имя_виртуальной_машины>) — используется для получения имени компьютера для виртуальной машины, которая входит в состав виртуальной среды. Возможна ситуация, когда имя виртуальной машины известно, а имя компьютера — нет. Если скрипт развертывания для настройки веб-сервера требует указать имя компьютера, можно передать скрипту это выражение в качестве аргумента. Например, если имя виртуальной машины для веб-сервера — VM1, а имя компьютера — MyWebServer, можно указать $(InternalComputerName_VM1) в качестве аргумента скрипта, и скрипту будет передано значение MyWebServer.
$(ComputerName_<имя_виртуальной_машины>) — это полное имя домена виртуальной машины. Это выражение можно использовать для доступа к компьютеру даже извне виртуальной среды. Ее можно предавать в качестве аргумента для настройки веб-сервера. Например, если в качестве имени виртуальной машины для веб-сервера используется VM1, чтобы передать полное имя домена виртуальной машины, следует ввести в качестве аргумента скрипта $(ComputerName_VM1).
Если используется сетевая изоляция среды, выражение $(InternalComputerName_<имя_виртуальной_машины>) имеет одинаковое значение для каждого экземпляра виртуальной машины в этой среде, но выражение $(ComputerName_<имя_виртуальной_машины>) имеет другое значение. Например, имя компьютера для виртуальной машины может иметь значение MyWebServer в каждой копии среды, однако полное имя домена будет уникальным: VM_<уникальный_идентификатор>.domain_name.com.
Важно!
Если необходимо добавить команду, которая выполняется из окна Windows, например mkdir, или запускает пакетный файл, команда должна начинаться с cmd /c.Например, cmd /c $(BuildLocation)\copyexe $(BuildLocation), где copyexe – это пакетный файл copyexe.bat, копирующий исполняемый файл в локальный каталог на виртуальной машине.
Если для скрипта или команды требуется особая рабочая папка, можно ввести ее имя в поле Рабочий каталог.
Примечание
После развертывания приложения убедитесь в возможности выполнения тестов исходя из расположения файлов.Например, если закодированный тест пользовательского интерфейса запускает клиентское приложение Windows, убедитесь, что исполняемый файл находится в правильном каталоге для выполнения тестов.
Возможно также, нужно будет проверить правильность имен машин в среде для данного приложения.Например, возможно нужно будет проверить, настроен ли в виртуальной машине, выполняющей роль веб-сервера, доступ к экземпляру сервера базы данных на виртуальной машине, выполняющей роль такого сервера базы данных.
(Рекомендовано.) Чтобы после развертывания приложения, но до выполнения каких-либо тестов сделать снимок, выполните следующие действия:
Установите флажок После развертывания построения сделайте снимок среды.
Важно!
В случае запуска данного определения построения в рамках еженощного рабочего процесса вскоре с каждой виртуальной машиной будет связано множество снимков.Это приведет к снижению производительности виртуальной машины.Кроме того, для каждой виртуальной среды может быть сохранено не более 50 снимков.Поэтому старые снимки нужно регулярно удалять.
В поле Введите имя снимка введите имя для данного снимка.
Примечание
Этот снимок можно использовать для подключения к среде и повторного выполнения теста в случае необходимости изучения проблемы.Это также могут сделать другие участники команды.Часто такой снимок оказывается удобным для повторного выполнения теста в чистой системе с установленным приложением. Это позволяет проанализировать происходящие события или даже проверить правильность установки приложения.
Нажмите кнопку Далее.
Нажмите кнопку Готово.
Нажмите кнопку Сохранить для сохранения определения построения.
Созданное определение построения появится в папке Построения в Сред. Командный обозреватель.
Размещение определения построения для рабочего процесса в очереди
Теперь можно поставить это построение в очередь, чтобы запустить для него рабочий процесс, и просмотреть ход выполнения этого процесса.
Размещение определения построения для рабочего процесса в очереди
Чтобы запустить определение построения для построения, развертывания и тестирования приложения, щелкните правой кнопкой мыши определение лабораторного построения в папке "Построения" и щелкните Поставить новую сборку в очередь.
Откроется диалоговое окно Поставить построение в очередь.
Проверьте сведения о рабочем процессе построения и щелкните Очередь.
Откроется представление "Обозреватель построений".
Чтобы в процессе построения отображалось представление "Сводка построения", щелкните дважды построение.
Это позволит просматривать состояние по мере построения.
(Необязательно.) При необходимости просматривать среду в процессе построения откройте средство Microsoft Test Manager, найдите Центр лабораторий и щелкните Лаборатория, а затем выберите в списке свою среду. На изображении для используемой среды, а также в подробных сведениях о среде над этим изображением можно просматривать ход построения, как указано ниже.
При выборе этого параметра восстанавливается снимок.
При выборе этого параметра создается снимок состояния после развертывания.
Состояние возможностей (если возможность готова, отображается зеленая стрелка).
Тесты по мере их выполнения, если эти тесты взаимодействуют с пользовательским интерфейсом.
Если рабочий процесс построения завершается успешно, отображается зеленая галочка. В случае ошибок можно нажать кнопку Просмотреть журнал для просмотра подробных сведений.
Подключение к среде из результатов построения
Иногда, после завершения рабочего процесса построения, необходимо подключиться к среде для проверки работы приложения. Подключаться можно к среде в состоянии, зафиксированном в снимке состояния среды после развертывания, если в рабочем процессе построения был выбран соответствующий параметр, либо к среде в текущем состоянии, как показано на следующем рисунке.
Подключение к среде из результатов построения
В папке Построения в Сред. Командный обозреватель, щелкните правой кнопкой мыши определение построения и выберите команду Просмотреть построения.
Откроется представление Обозреватель построений.
Для просмотра завершенного построения перейдите на вкладку Завершено.
Дважды щелкните построение, которое нужно просмотреть.
Откроется представление "Сводка построения".
Щелкните ссылку рядом с полем "Просмотр снимка среды <название и номер построения>".
Откроется диалоговое окно Подключиться к среде.
При необходимости подключиться к среде в состоянии, зафиксированном в снимке, сделанном после развертывания приложения, щелкните Подключиться к снимку в данной среде.
Примечание
При подключению к этому снимку все изменения, внесенные после создания этого снимка состояния после развертывания, будут отменены.При необходимости сохранить любые изменения, сначала подключитесь к среде в текущем состоянии и сделайте снимок перед возвратом к снимку состояния после развертывания.Сведения о создании снимка см. в разделе Практическое руководство. Сохранение текущего состояния среды.
При необходимости подключиться к среде в этом текущем состоянии, Подключиться к среде в ее текущем состоянии.
Нажмите кнопку Подключить.
Это приведет к отображению средства просмотра среды (Microsoft) и подключению к среде. Теперь развернутым приложением можно пользоваться.