Развертывание в Azure Stack Hub Служба приложений с помощью Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 г. - Azure DevOps Server 2019 г.
В этой статье описывается настройка конвейера CI/CD для развертывания приложения в службах приложений в экземпляре Azure Stack Hub с помощью Azure Pipelines.
В этой статье вы узнаете, как создать или проверить:
- Учетные данные субъекта-службы Azure Stack Hub для конвейера.
- Веб-приложение в экземпляре Azure Stack Hub.
- Подключение службы к экземпляру Azure Stack Hub.
- Репозиторий с кодом приложения для развертывания в приложении
Предварительные требования
- Доступ к экземпляру Azure Stack Hub с включенным поставщиком Служба приложений.
- Решение Azure DevOps, связанное с клиентом Azure Stack Hub.
Создание или проверка имени субъекта-службы
Имя субъекта-службы предоставляет учетные данные на основе ролей, чтобы процессы за пределами Azure могли подключаться к ресурсам и взаимодействовать с ними. Вам потребуется имя субъекта-службы с доступом участник и атрибутами, указанными в этих инструкциях, для использования с конвейером Azure DevOps.
У пользователя Azure Stack Hub нет разрешения на создание имени субъекта-службы. Вам потребуется запросить этот субъект у оператора облака. Здесь приведены инструкции, позволяющие создать имя субъекта-службы, если вы являетесь оператором облака, или проверить имя субъекта-службы, если вы являетесь разработчиком, используя имя субъекта-службы в рабочем процессе, предоставленном оператором облака.
Оператору облака потребуется создать имя субъекта-службы с помощью Azure CLI.
Следующие фрагменты кода написаны для компьютера Windows с помощью командной строки PowerShell с Azure CLI для Azure Stack Hub. Если вы используете CLI на компьютере Linux и bash, удалите расширение строки или замените \
их на .
Подготовьте значения следующих параметров, используемых для создания имени субъекта-службы:
Параметр Пример Описание endpoint-resource-manager "https://management.orlando.azurestack.corp.microsoft.com" Конечная точка управления ресурсами. суффикс-storage-endpoint "orlando.azurestack.corp.microsoft.com" Суффикс конечной точки для учетных записей хранения. suffix-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" DNS-суффикс службы Key Vault. endpoint-active-directory-graph-resource-id "https://graph.windows.net/" Идентификатор ресурса Active Directory endpoint-sql-management https://notsupported Конечная точка управления sql Server. Для этого заголовка необходимо задать значение https://notsupported
профиль 2019-03-01-hybrid Профиль, используемый для этого облака. Откройте программу командной строки, например Windows PowerShell или Bash, и выполните вход. Используйте следующую команду:
az login
register
Используйте команду для новой среды или команду ,update
если вы используете существующую среду. Используйте следующую команду.az cloud register ` -n "AzureStackUser" ` --endpoint-resource-manager "https://management.<local>.<FQDN>" ` --suffix-storage-endpoint ".<local>.<FQDN>" ` --suffix-keyvault-dns ".vault.<local>.<FQDN>" ` --endpoint-active-directory-graph-resource-id "https://graph.windows.net/" ` --endpoint-sql-management https://notsupported ` --profile 2019-03-01-hybrid
Получите идентификатор подписки и группу ресурсов, которые вы хотите использовать для имени субъекта-службы.
Создайте имя субъекта-службы с помощью следующей команды с идентификатором подписки и группой ресурсов:
az ad sp create-for-rbac --name "myApp" --role contributor ` --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} ` --sdk-auth
Если у вас нет прав облачного оператора, вы также можете войти с помощью имени субъекта-службы, предоставленного вашим оператором облака. Вам потребуется идентификатор клиента, секрет и идентификатор клиента. С помощью этих значений можно использовать следующие команды Azure CLI, чтобы создать объект JSON, содержащий значения, необходимые для создания подключения к службе.
az login --service-principal -u "<client-id>" -p "<secret>" --tenant "<tenant-ID>" --allow-no-subscriptions az account show
Проверьте полученный объект JSON. Для создания подключения к службе вы будете использовать объект JSON. Объект JSON должен иметь следующие атрибуты:
{ "environmentName": "<Environment name>", "homeTenantId": "<Tenant ID for the SPN>", "id": "<Application ID for the SPN>", "isDefault": true, "managedByTenants": [], "name": "<Tenant name>", "state": "Enabled", "tenantId": "<Tenant ID for the SPN>", "user": { "name": "<User email address>", "type": "user" } }
Создание целевого веб-приложения
- Войдите на портал Azure Stack Hub.
- Последовательно выберите Создать ресурс>Интернет+мобильные устройства>Веб-приложение.
- Выберите Подписка.
- Создайте или выберите группу ресурсов.
- Введите имя приложения. Имя приложения будет отображаться в URL-адресе приложения, например:
yourappname.appservice.<region>.<FQDN>
- Выберите стек среды выполнения для приложения. Среда выполнения должна соответствовать коду, который вы планируете использовать для веб-приложения.
- Выберите операционную систему (ОС), в котором будет размещена среда выполнения и приложение.
- Выберите или введите регион для экземпляра Azure Stack Hub.
- Выберите план в зависимости от экземпляра Azure Stack Hub, региона и ОС приложения.
- Выберите Review + Create (Просмотреть и создать).
- Просмотрите веб-приложение. Нажмите кнопку создания.
- Выберите Перейти к ресурсу.
- Запишите имя приложения. Вы добавите имя в документ yml, определяющий конвейер в репозитории.
Создание подключения службы
Создайте подключение к службе. Вам потребуются значения из имени субъекта-службы и имя подписки Azure Stack Hub.
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите Параметры проекта, а затем — Подключения к службам.
Выберите Подключения к> службеСоздать подключение к службе.
Выберите Azure Resource Manager, а затем нажмите кнопку Далее.
Выберите Субъект-служба (вручную).
Выберите Azure Stack в разделе Среда.
Заполните форму, а затем выберите Проверить и сохранить.
Присвойте подключению службы имя. (Для создания конвейера yaml потребуется имя подключения службы.)
Создание репозитория и добавление конвейера
Если вы еще не добавили код веб-приложения в репозиторий, добавьте его сейчас.
Откройте репозиторий. Выберите репозиторий и нажмите кнопку Обзор.
Выбор конвейеров
Выберите Создание конвейера.
Выберите Azure Repos Git.
Выберите репозиторий.
Выберите Простейший конвейер.
Вернитесь в репозиторий и откройте
azure-pipelines.yml
.Добавьте следующий yaml:
# Starter pipeline # Start with a minimal pipeline that you can customize to build and deploy your code. # Add steps that build, run tests, deploy, and more: # https://aka.ms/yaml trigger: - main variables: azureSubscription: '<your connection name>' VSTS_ARM_REST_IGNORE_SSL_ERRORS: true steps: - task: AzureWebApp@1 displayName: Azure Web App Deploy inputs: azureSubscription: $(azureSubscription) appName: <your-app-name> package: '$(System.DefaultWorkingDirectory)'
Примечание
Чтобы игнорировать ошибки SSL, присвойте переменной
VSTS_ARM_REST_IGNORE_SSL_ERRORS
значениеtrue
в конвейере сборки или выпуска, как показано в этом примере.Измените
azureSubscription
значение, указав имя подключения к службе.Обновите ,
appName
указав имя приложения. Теперь все готово для развертывания.
Примечания об использовании задач Azure с Azure Stack Hub
С помощью Azure Stack Hub проверяются следующие задачи Azure:
- Azure PowerShell
- Копирование файлов Azure
- Развертывание группы ресурсов Azure
- Развертывание Служба приложений Azure
- Управление Службой приложений Azure
- Развертывание базы данных Azure SQL