Развертывание на виртуальных машинах Azure с помощью групп развертывания в Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

В более ранних версиях Azure Pipelines приложения, которые должны быть развернуты на нескольких серверах, требуют значительного объема планирования и обслуживания. Удаленное взаимодействие Windows PowerShell должно быть включено вручную, необходимые порты, открытые и агенты развертывания, установленные на каждом из серверов. Затем конвейеры должны управляться вручную, если развертывание требуется.

Все перечисленные выше проблемы были легко развивались при внедрении групп развертывания.

Группа развертывания устанавливает агент развертывания на каждом из целевых серверов в настроенной группе и предписывает конвейеру выпуска постепенно развертывать приложение на этих серверах. Для развертывания можно создать несколько конвейеров, чтобы последняя версия приложения была поэтапно доставлена нескольким группам пользователей для проверки новых возможностей.

Примечание.

Группы развертывания — это концепция, используемая в классических конвейерах. Если вы используете конвейеры YAML, см. статью "Среды".

В этом руководстве вы рассмотрите следующее:

  • Подготовка инфраструктуры виртуальной машины в Azure с помощью шаблона
  • Создание группы развертывания Azure Pipelines
  • Создание и запуск конвейера CI/CD для развертывания решения с помощью группы развертывания

Необходимые компоненты

  • Учетная запись Microsoft Azure.
  • Организация Azure DevOps.

Используйте демонстрационный генератор Azure DevOps для подготовки проекта учебника в организации Azure DevOps.

Настройка среды развертывания Azure

Следующие ресурсы подготавливаются в Azure с помощью шаблона ARM:

  • Шесть веб-серверов Виртуальные машины (виртуальная машина) с настроенными службами IIS
  • Виртуальная машина SQL Server (сервер базы данных)
  • Подсистема балансировки сетевой нагрузки Azure
  1. Щелкните ссылку "Развернуть в Azure ", чтобы инициировать подготовку ресурсов. Укажите все необходимые сведения и выберите " Покупка". Вы можете использовать любое сочетание разрешенных административных имен пользователей и паролей, так как они не используются повторно в этом руководстве. Имя префикса Env префикс присваивается всем именам ресурсов, чтобы убедиться, что эти ресурсы создаются с глобальными уникальными именами. Попробуйте использовать что-то личное или случайное, но если во время проверки или создания возникает ошибка конфликта именования, попробуйте изменить этот параметр и снова запустить его.

    Развертывание в Azure

    Снимок экрана: настройка среды развертывания Azure.

    Примечание.

    Для завершения развертывания потребуется примерно 10–15 минут. Если возникают ошибки конфликтов именования, попробуйте изменить параметр, указанный для имени префикса Env.

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

    Группа ресурсов развертывается в Azure.

  3. Запишите DNS-имя. Это значение необходимо на следующем шаге. С помощью кнопки копирования можно скопировать ее в буфер обмена.

    Развертывание SQL DNS в Azure.

Создание и настройка группы развертывания

Azure Pipelines упрощает упорядочение серверов, необходимых для развертывания приложений. Группа развертывания — это коллекция компьютеров с агентами развертывания. Каждый из компьютеров взаимодействует с Azure Pipelines для координации развертывания приложения.

Так как для конвейера сборки не требуется никаких изменений конфигурации, сборка активируется автоматически после подготовки проекта. При очереди выпуска позже используется эта сборка.

  1. Перейдите к проекту Azure DevOps, созданному генератором демонстрации.

  2. В разделе "Конвейеры" перейдите к группам развертывания.

    Переход к группам развертывания в разделе

  3. Выберите Добавить группу развертывания.

  4. Введите имя группы развертывания выпуска и нажмите кнопку "Создать". Создается скрипт регистрации. Вы можете зарегистрировать целевые серверы с помощью скрипта, предоставленного при работе самостоятельно. Однако в этом руководстве целевые серверы автоматически регистрируются как часть конвейера выпуска. Определение выпуска использует этапы развертывания приложения на целевых серверах. Этап — это логическая группировка задач, определяющих целевой объект среды выполнения, на котором будут выполняться задачи. Каждый этап группы развертывания выполняет задачи на компьютерах, определенных в группе развертывания.

  5. В разделе "Конвейеры" перейдите к выпускам. Выберите конвейер выпуска с именем "Группы развертывания" и нажмите кнопку "Изменить".

  6. Перейдите на вкладку "Задачи", чтобы просмотреть задачи развертывания в конвейере. Задачи организованы как три этапа, называемые этапом агента, этапом группы развертывания и этапом развертывания IIS.

  7. Выберите этап агента. На этом этапе целевые серверы связаны с группой развертывания с помощью задачи развертывания группы ресурсов Azure. Для запуска необходимо определить пул агентов и спецификацию. Выберите пул Azure Pipelines и последнюю спецификацию Windows.

    Настройка этапа агента

  8. Выберите задачу развертывания группы ресурсов Azure. Настройте подключение службы к подписке Azure, используемой ранее для создания инфраструктуры. После авторизации подключения выберите группу ресурсов, созданную для этого руководства.

    Создание подключения службы Azure

  9. Эта задача будет выполняться на виртуальных машинах, размещенных в Azure, и потребуется подключиться к этому конвейеру для выполнения требований группы развертывания. Для защиты подключения им потребуется личный маркер доступа (PAT). В раскрывающемся списке параметров пользователя откройте маркеры личного доступа на новой вкладке. Большинство браузеров поддерживают открытие ссылки на новой вкладке с помощью контекстного меню правой кнопкой мыши или ctrl+Click.

    Переход к личным маркерам доступа

  10. На новой вкладке выберите новый маркер.

  11. Введите имя и выберите область полного доступа. Нажмите кнопку "Создать" , чтобы создать маркер. После создания скопируйте маркер и закройте вкладку браузера. Вернитесь в редактор Azure Pipeline.

    Создание личного маркера доступа

  12. В разделе "Подключение к службе Azure Pipelines" нажмите кнопку "Создать".

    Добавление подключения к службе Azure Pipelines

  13. Введите URL-адрес Подключение ion для текущего экземпляра Azure DevOps. Этот URL-адрес похож https://dev.azure.com/[Your account]. Вставьте ранее созданный ранее личный маркер доступа и укажите имя подключения службы. Выберите " Проверить и сохранить".

    Создание подключения к службе Azure Pipelines

    Примечание.

    Чтобы зарегистрировать агент, необходимо быть членом роли Администратор istrator в пуле агентов. Удостоверение администратора пула агентов требуется только во время регистрации. Удостоверение администратора не сохраняется в агенте, и оно не используется при последующем обмене данными между агентом и Azure Pipelines. После регистрации агента не нужно продлевать личный маркер доступа, так как это необходимо только во время регистрации.

  14. Выберите текущий проект группы и созданную ранее группу развертывания.

    Настройка группы развертывания Azure Pipelines

  15. Выберите этап этапа группы развертывания. На этом этапе выполняются задачи на компьютерах, определенных в группе развертывания. Этот этап связан с тегом SQL-Svr-DB . Выберите группу развертывания из раскрывающегося списка.

    Настройка этапа группы развертывания

  16. Выберите этап развертывания IIS. На этом этапе приложение развертывается на веб-серверах с помощью указанных задач. Этот этап связан с тегом WebSrv . Выберите группу развертывания из раскрывающегося списка.

  17. Выберите задачу "Отключить сетевую подсистему балансировки нагрузки Azure". Так как целевые компьютеры подключены к NLB, эта задача отключит компьютеры от NLB до развертывания и повторно подключите их к NLB после развертывания. Настройте задачу для использования подключения Azure, группы ресурсов и подсистемы балансировки нагрузки (должна быть только одна).

  18. Выберите задачу "Управление веб-приложением IIS". Эта задача выполняется на целевых компьютерах развертывания, зарегистрированных в группе развертывания, настроенной для задачи или этапа. Он создает веб-приложение и пул приложений локально с именем PartsUnlimited , работающим под портом 80

  19. Выберите задачу развертывания веб-приложения IIS. Эта задача выполняется на целевых компьютерах развертывания, зарегистрированных в группе развертывания, настроенной для задачи или этапа. Он развертывает приложение на сервере IIS с помощью веб-развертывания.

  20. Выберите задачу Подключение Azure Network Load Balancer. Настройте задачу для использования подключения Azure, группы ресурсов и подсистемы балансировки нагрузки (должна быть только одна).

  21. Перейдите на вкладку "Переменные" и введите значения переменных , как показано ниже.

    Имя переменной Значение переменной
    имя_базы_данных PartsUnlimited-Dev
    DBPassword P2ssw0rd@123
    DBUserName sqladmin
    DefaultConnectionString Источник данных=[YOUR_DNS_NAME]; Initial Catalog=PartsUnlimited-Dev; Идентификатор пользователя=sqladmin; Password=P2ssw0rd@123; MultipleActiveResultSets=False; время ожидания Подключение ion=30;
    ServerName localhost

    Внимание

    Обязательно замените DNS-имя SQL Server (которое вы указали из портал Azure ранее) в переменной Default Подключение ionString.

    Значение по умолчанию Подключение ionString должно быть похоже на эту строку после замены DNS SQL:

    Data Source=cust1sqljo5zndv53idtw.westus2.cloudapp.azure.com;Initial Catalog=PartsUnlimited-Dev;User ID=sqladmin;Password=P2ssw0rd@123;MultipleActiveResultSets=False;Connection Timeout=30;

    Окончательный список переменных должен выглядеть примерно так:

    Настройка переменных конвейера

    Примечание.

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

Очередь выпуска и проверка развертывания

  1. Нажмите кнопку "Сохранить и подтвердить".

  2. Выберите "Создать выпуск " и подтвердите его. Следуйте выпуску до завершения. Затем развертывание будет готово для проверки.

  3. В портал Azure откройте одну из веб-виртуальных машин в группе ресурсов. Вы можете выбрать любой из них websrv в имени.

    Поиск веб-виртуальной машины

  4. Скопируйте DNS виртуальной машины. Azure Load Balancer распределяет входящий трафик между здоровыми экземплярами серверов, определенных в наборе балансировки нагрузки. В результате DNS всех экземпляров веб-сервера совпадает.

    Поиск домена веб-приложения

  5. Откройте новую вкладку браузера в DNS виртуальной машины. Убедитесь, что развернуто приложение запущено.

    Просмотр приложения

Итоги

В этом руководстве вы развернули веб-приложение в наборе виртуальных машин Azure с помощью Azure Pipelines и групп развертывания. Хотя этот сценарий охватывает несколько компьютеров, вы можете легко масштабировать процесс до сотен или даже тысяч компьютеров с помощью практически любой конфигурации.

Очистка ресурсов

В этом руководстве создан проект Azure DevOps и некоторые ресурсы в Azure. Если вы не собираетесь продолжать использовать эти ресурсы, удалите их с помощью следующих действий:

  1. Удалите проект Azure DevOps, созданный генератором демонстраций Azure DevOps.

  2. Все ресурсы Azure, созданные во время этого руководства, были назначены группе ресурсов, указанной во время создания. Удаление этой группы приведет к удалению ресурсов, которые они содержат. Это можно сделать с помощью интерфейса командной строки или портала.

Следующие шаги