Развертывание в 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, удалите расширение строки или замените \их на .

  1. Подготовьте значения следующих параметров, используемых для создания имени субъекта-службы:

    Параметр Пример Описание
    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 Профиль, используемый для этого облака.
  2. Откройте программу командной строки, например Windows PowerShell или Bash, и выполните вход. Используйте следующую команду:

    az login
    
  3. 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
    
  4. Получите идентификатор подписки и группу ресурсов, которые вы хотите использовать для имени субъекта-службы.

  5. Создайте имя субъекта-службы с помощью следующей команды с идентификатором подписки и группой ресурсов:

    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
    
  6. Проверьте полученный объект 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"
      }
    }
    

Создание целевого веб-приложения

  1. Войдите на портал Azure Stack Hub.
  2. Последовательно выберите Создать ресурс>Интернет+мобильные устройства>Веб-приложение.
  3. Выберите Подписка.
  4. Создайте или выберите группу ресурсов.
  5. Введите имя приложения. Имя приложения будет отображаться в URL-адресе приложения, например: yourappname.appservice.<region>.<FQDN>
  6. Выберите стек среды выполнения для приложения. Среда выполнения должна соответствовать коду, который вы планируете использовать для веб-приложения.
  7. Выберите операционную систему (ОС), в котором будет размещена среда выполнения и приложение.
  8. Выберите или введите регион для экземпляра Azure Stack Hub.
  9. Выберите план в зависимости от экземпляра Azure Stack Hub, региона и ОС приложения.
  10. Выберите Review + Create (Просмотреть и создать).
  11. Просмотрите веб-приложение. Нажмите кнопку создания.
  12. Выберите Перейти к ресурсу.
  13. Запишите имя приложения. Вы добавите имя в документ yml, определяющий конвейер в репозитории.

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

Создайте подключение к службе. Вам потребуются значения из имени субъекта-службы и имя подписки Azure Stack Hub.

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите Параметры проекта, а затем — Подключения к службам.

  3. Выберите Подключения к> службеСоздать подключение к службе.

  4. Выберите Azure Resource Manager, а затем нажмите кнопку Далее.

  5. Выберите Субъект-служба (вручную).

  6. Выберите Azure Stack в разделе Среда.

  7. Заполните форму, а затем выберите Проверить и сохранить.

  8. Присвойте подключению службы имя. (Для создания конвейера yaml потребуется имя подключения службы.)

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

Создание репозитория и добавление конвейера

  1. Если вы еще не добавили код веб-приложения в репозиторий, добавьте его сейчас.

  2. Откройте репозиторий. Выберите репозиторий и нажмите кнопку Обзор.

  3. Выбор конвейеров

  4. Выберите Создание конвейера.

  5. Выберите Azure Repos Git.

  6. Выберите репозиторий.

  7. Выберите Простейший конвейер.

  8. Вернитесь в репозиторий и откройте azure-pipelines.yml.

  9. Добавьте следующий 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 в конвейере сборки или выпуска, как показано в этом примере.

  10. Измените azureSubscription значение, указав имя подключения к службе.

  11. Обновите , appName указав имя приложения. Теперь все готово для развертывания.

Примечания об использовании задач Azure с Azure Stack Hub

С помощью Azure Stack Hub проверяются следующие задачи Azure:

Дальнейшие действия