Поделиться через


Использование платформы автоматизации развертывания SAP в службах Azure DevOps Services

Azure DevOps упрощает процесс развертывания, предоставляя конвейеры, которые можно запустить для развертывания инфраструктуры и действий по настройке и установке SAP.

Azure Repos можно использовать для хранения файлов конфигурации и использования Azure Pipelines для развертывания и настройки инфраструктуры и приложения SAP.

Регистрация в службах Azure DevOps Services

Чтобы использовать Azure DevOps Services, требуется организация Azure DevOps. Организация используется для подключения групп связанных проектов. Используйте рабочую или учебную учетную запись для автоматического подключения организации к идентификатору Microsoft Entra. Чтобы создать учетную запись, откройте Azure DevOps и войдите или создайте новую учетную запись.

Настройка Azure DevOps Services для платформы автоматизации развертывания SAP

Чтобы выполнить базовую установку Azure DevOps Services для платформы автоматизации развертывания SAP, можно использовать следующий скрипт.

Откройте среду сценариев PowerShell и скопируйте следующий скрипт и обновите параметры, соответствующие вашей среде.

    $Env:SDAF_ADO_ORGANIZATION = "https://dev.azure.com/ORGANIZATIONNAME"
    $Env:SDAF_ADO_PROJECT = "SAP Deployment Automation Framework"
    $Env:SDAF_CONTROL_PLANE_CODE = "MGMT"
    $Env:SDAF_ControlPlaneSubscriptionID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    $Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"

    $Env:MSI_OBJECT_ID = $null

    $branchName = "main"
        
    $UniqueIdentifier = "SDAF" + $ShortCode
    
    if ($Env:ARM_TENANT_ID.Length -eq 0) {
      az login --output none --only-show-errors --scope https://graph.microsoft.com//.default
    }
    else {
      az login --output none --tenant $Env:ARM_TENANT_ID --only-show-errors --scope https://graph.microsoft.com//.default
    }

    az config set extension.use_dynamic_install=yes_without_prompt --only-show-errors

    az extension add --name azure-devops --only-show-errors

    $differentTenant = Read-Host "Is your Azure DevOps organization hosted in a different tenant than the one you are currently logged in to? y/n"
    if ($differentTenant -eq 'y') {
        $env:AZURE_DEVOPS_EXT_PAT = Read-Host "Please enter your Personal Access Token (PAT) with permissions to add new projects, manage agent pools to the Azure DevOps organization $Env:ADO_Organization"
        try {
            az devops project list
        }
        catch {
            $_
        }
    }
    
    $confirmationWebAppDeployment = Read-Host "Do you want to use the Web Application for editing the configuration files (recommended) y/n?"
    if ($confirmationWebAppDeployment -eq 'y') {
        $Env:SDAF_WEBAPP = "true"
        $confirmation = Read-Host "Do you want to create a new Application registration (needed for the Web Application) y/n?"
        if ($confirmation -eq 'y') {
            $Env:SDAF_APP_NAME = "SDAF " + $UniqueIdentifier + " SDAF Control Plane"
        }
        else {
            $Env:SDAF_APP_NAME = Read-Host "Please provide the Application registration name"
        }
    }
    else {
        $Env:SDAF_WEBAPP = "false"
    }
    
    $Env:SDAF_AuthenticationMethod = 'Managed Identity'
    
    $confirmationDeployment = Read-Host "Do you want to use Managed Identities for the deployment (recommended) y/n?"
    
    if ($confirmationDeployment -eq 'n') {
        $Env:SDAF_AuthenticationMethod = 'Service Principal'
         
        $confirmation = Read-Host "Do you want to create a new Service Principal for the Control plane y/n?"
        if ($confirmation -eq 'y') {
            $Env:SDAF_MGMT_SPN_NAME = "SDAF " + $UniqueIdentifier + $Env:SDAF_CONTROL_PLANE_CODE + " SPN"
        }
        else {
            $Env:SDAF_MGMT_SPN_NAME = Read-Host "Please provide the Control Plane Service Principal Name"
        }
        
    }
        
    if ( $PSVersionTable.Platform -eq "Unix") {
        if ( Test-Path "SDAF") {
        }
        else {
            $sdaf_path = New-Item -Path "SDAF" -Type Directory
        }
    }
    else {
        $sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
        if ( Test-Path $sdaf_path) {
        }
        else {
            New-Item -Path $sdaf_path -Type Directory
        }
    }
        
    Set-Location -Path $sdaf_path
        
    if ( Test-Path "New-SDAFDevopsProject.ps1") {
        if ( $PSVersionTable.Platform -eq "Unix") {
            Remove-Item "New-SDAFDevopsProject.ps1"
        }
        else {
            Remove-Item ".\New-SDAFDevopsProject.ps1"
        }
    }
        
    Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/$branchName/deploy/scripts/New-SDAFDevopsProject.ps1 -OutFile New-SDAFDevopsProject.ps1 
    
    
    if ( $PSVersionTable.Platform -eq "Unix") {
        Unblock-File ./New-SDAFDevopsProject.ps1
        ./New-SDAFDevopsProject.ps1
    }
    else {
        Unblock-File .\New-SDAFDevopsProject.ps1
        .\New-SDAFDevopsProject.ps1
    }
    

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

Вы можете запустить код непосредственно из GitHub или импортировать копию кода в проект Azure DevOps.

Чтобы убедиться, что проект создан, перейдите на портал Azure DevOps и выберите проект. Убедитесь, что репозиторий заполнен и созданы конвейеры.

Это важно

Выполните следующие действия на локальной рабочей станции. Кроме того, убедитесь, что у вас установлена последняя версия Azure CLI, выполнив az upgrade команду.

Настройка артефактов Azure DevOps Services для новой зоны рабочей нагрузки

Используйте следующий сценарий для развертывания артефактов, необходимых для поддержки новой зоны рабочей нагрузки. Этот процесс создает группу переменных и подключение службы в Azure DevOps и, при необходимости, субъект-службу развертывания.

Откройте среду сценариев PowerShell и скопируйте следующий скрипт и обновите параметры, соответствующие вашей среде.

    $Env:SDAF_ADO_ORGANIZATION = "https://dev.azure.com/ORGANIZATIONNAME"
    $Env:SDAF_ADO_PROJECT = "SAP Deployment Automation Framework"
    $Env:SDAF_WorkloadZoneSubscriptionID = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
    $Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
    
    if ( $PSVersionTable.Platform -eq "Unix") {
        if ( Test-Path "SDAF") {
        }
        else {
            $sdaf_path = New-Item -Path "SDAF" -Type Directory
        }
    }
    else {
        $sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
        if ( Test-Path $sdaf_path) {
        }
        else {
            New-Item -Path $sdaf_path -Type Directory
        }
    }

    $branchName = "main"
    
    Set-Location -Path $sdaf_path
    
    if ( Test-Path "New-SDAFDevopsWorkloadZone.ps1") {
        remove-item .\New-SDAFDevopsWorkloadZone.ps1
    }
    
    Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/$branchName/deploy/scripts/New-SDAFDevopsWorkloadZone.ps1 -OutFile .\New-SDAFDevopsWorkloadZone.ps1 ; .\New-SDAFDevopsWorkloadZone.ps1
    

Создание образца конфигурации плоскости управления

Можно запустить Create Sample Deployer Configuration, чтобы создать образец конфигурации для управляющего контура. При запуске выберите соответствующий регион Azure. Кроме того, можно управлять развертыванием брандмауэра Azure и Бастиона Azure.

Ручная настройка Azure DevOps Services для платформы автоматизации развертывания SAP

Вы можете вручную настроить Azure DevOps Services для SAP Deployment Automation Framework.

Создание нового проекта

Azure Repos можно использовать для хранения кода из репозитория GitHub sap-automation и файлов конфигурации среды.

Откройте Azure DevOps и создайте проект, выбрав новый проект и введя сведения о проекте. Проект содержит репозиторий системы управления версиями Azure Repos и Azure Pipelines для выполнения операций развертывания.

Если вы не видите новый проект, убедитесь, что у вас есть разрешения на создание новых проектов в организации.

Запишите URL-адрес проекта.

Импорт репозитория

Начните с импорта репозитория GitHub для SAP Deployment Automation Framework Bootstrap в Azure Repos.

Перейдите в раздел репозиториев и выберите "Импорт репозитория". Импортируйте репозиторий https://github.com/Azure/sap-automation-bootstrap.git в Azure DevOps. Дополнительные сведения см. в разделе "Импорт репозитория".

Если вы не можете импортировать репозиторий, можно создать репозиторий вручную. Затем вы можете импортировать содержимое из репозитория SAP Deployment Automation Framework GitHub Bootstrap в него.

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

Это действие выполняется только в том случае, если вы не можете импортировать репозиторий напрямую.

Чтобы создать репозиторий рабочих областей , в разделе Repos в разделе "Параметры проекта" нажмите кнопку "Создать".

Выберите репозиторий, введите Git и укажите имя репозитория. Например, используйте репозиторий конфигурации SAP.

Клонирование репозитория

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

Чтобы клонировать репозиторий в локальную папку, в разделе Репозиторий на портале в разделе "Файлы" выберите "Клонировать". Дополнительные сведения см. в разделе "Клонирование репозитория".

Снимок экрана: клонирование репозитория.

Импорт содержимого репозитория вручную с помощью локального клона

Вы также можете вручную скачать содержимое из репозитория SAP Deployment Automation Framework и добавить его в локальный клон репозитория Azure DevOps.

Перейдите в репозиторий и скачайте содержимое https://github.com/Azure/SAP-automation-samples репозитория в виде файла .zip. Выберите "Код" и нажмите кнопку "Скачать ZIP- файл".

Скопируйте содержимое из файла .zip в корневую папку локального клона.

Откройте локальную папку в Visual Studio Code. Вы должны видеть, что изменения нужно синхронизировать по индикатору иконки контроля версии, показанной здесь.

Снимок экрана: изменен исходный код.

Щелкните значок системы управления версиями и предоставьте сообщение об изменении. Например, введите импорт из GitHub и нажмите клавиши CTRL+ВВОД, чтобы зафиксировать изменения. Затем нажмите кнопку "Синхронизация изменений" , чтобы синхронизировать изменения обратно в репозиторий.

Выберите источник для кода Terraform и Ansible

Вы можете запустить код платформы автоматизации SAP непосредственно из GitHub или импортировать его локально.

Запуск кода из локального репозитория

Если вы хотите запустить код SAP Deployment Automation Framework из локального проекта Azure DevOps, необходимо создать отдельный репозиторий кода и репозиторий конфигурации в проекте Azure DevOps:

  • Имя репозитория конфигурации: Same as the DevOps Project name. Источник : https://github.com/Azure/sap-automation-bootstrap.git.
  • Имя репозитория кода: sap-automation. Источник : https://github.com/Azure/sap-automation.git.
  • Имя примера и репозитория шаблонов: sap-samples Источник : https://github.com/Azure/sap-automation-samples.git.

Запуск кода непосредственно из GitHub

Если вы хотите запустить код непосредственно из GitHub, необходимо указать учетные данные для Azure DevOps, чтобы получить содержимое из GitHub.

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

Чтобы извлечь код из GitHub, необходимо подключение службы GitHub. Дополнительные сведения см. в разделе "Управление подключениями к службе".

Чтобы создать подключение к службе, перейдите в раздел "Параметры проекта " и в разделе "Конвейеры " перейдите к подключениям к службе.

Снимок экрана: создание подключения к службе для GitHub.

Выберите GitHub в качестве типа подключения службы. Выберите Azure Pipelines в раскрывающемся списке конфигурации OAuth .

Выберите "Авторизовать", чтобы войти в GitHub.

Введите имя подключения службы, например SDAF Connection к GitHub. Убедитесь, что установлен флажок Предоставить разрешение на доступ всем конвейерам. Нажмите кнопку "Сохранить", чтобы сохранить подключение к службе.

Настройка веб-приложения

Платформа автоматизации при необходимости подготавливает веб-приложение в составе плоскости управления, чтобы помочь с рабочей зоной SAP и системными файлами конфигурации. Если вы хотите использовать веб-приложение, необходимо сначала создать регистрацию приложения для проверки подлинности. Откройте Azure Cloud Shell и выполните следующие команды.

Замените MGMT вашим окружением, если необходимо.

echo '[{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}]}]' >> manifest.json

TF_VAR_app_registration_app_id=$(az ad app create --display-name MGMT-webapp-registration --enable-id-token-issuance true --sign-in-audience AzureADMyOrg --required-resource-access @manifest.json --query "appId" | tr -d '"')

echo $TF_VAR_app_registration_app_id

az ad app credential reset --id $TF_VAR_app_registration_app_id --append --query "password"

rm manifest.json

Сохраните идентификатор регистрации приложения и значения паролей для последующего использования.

Создание Azure Pipelines

Azure Pipelines реализованы в виде файлов YAML. Они хранятся в папке deploy/pipelines в репозитории.

Конвейер развертывания системы управления

Создайте конвейер развертывания плоскости управления. В разделе "Конвейеры" выберите "Создать конвейер". Выберите Azure Repos Git в качестве источника кода. Настройте конвейер для использования существующего YAML-файла Azure Pipelines. Укажите конвейер со следующими параметрами:

Настройки Ценность
Репозиторий "Корневой репозиторий" (совпадает с именем проекта)
Отрасль главный
Путь pipelines/01-deploy-control-plane.yml
Имя Развертывание плоскости управления

Сохраните трубопровод. Чтобы просмотреть «Сохранить», выберите стрелку рядом с «Выполнить». Перейдите в раздел "Конвейеры" и выберите конвейер. Выберите Переименовать/Переместить в меню многоточия справа и переименуйте конвейер в Развертывание контрольной плоскости.

Конвейер развертывания зоны рабочей нагрузки SAP

Создайте конвейер зоны рабочей нагрузки SAP. В разделе "Конвейеры" выберите "Создать конвейер". Выберите Azure Repos Git в качестве источника кода. Настройте конвейер для использования существующего YAML-файла Azure Pipelines. Укажите конвейер со следующими параметрами:

Настройки Ценность
Репозиторий "Корневой репозиторий" (совпадает с именем проекта)
Отрасль главный
Путь pipelines/02-sap-workload-zone.yml
Имя Развертывание зоны рабочей нагрузки SAP

Сохраните трубопровод. Чтобы просмотреть «Сохранить», выберите стрелку рядом с «Выполнить». Перейдите в раздел "Конвейеры" и выберите конвейер. Выберите Переименовать/Переместить в меню многоточия справа и переименуйте проект на развертывание зоны нагрузки SAP.

Конвейер развертывания системы SAP

Создайте конвейер развертывания системы SAP. В разделе "Конвейеры" выберите "Создать конвейер". Выберите Azure Repos Git в качестве источника кода. Настройте конвейер для использования существующего YAML-файла Azure Pipelines. Укажите конвейер со следующими параметрами:

Настройки Ценность
Репозиторий "Корневой репозиторий" (совпадает с именем проекта)
Отрасль главный
Путь pipelines/03-sap-system-deployment.yml
Имя Развертывание системы SAP (инфраструктура)

Сохраните трубопровод. Чтобы просмотреть «Сохранить», выберите стрелку рядом с «Выполнить». Перейдите в раздел "Конвейеры" и выберите конвейер. Выберите "Переименовать или переместить" в меню многоточия справа и переименуйте конвейер как развертывание системы SAP (инфраструктура).

Конвейер приобретения программного обеспечения SAP

Создайте конвейер приобретения программного обеспечения SAP. В разделе "Конвейеры" выберите "Создать конвейер". Выберите Azure Repos Git в качестве источника кода. Настройте конвейер для использования существующего YAML-файла Azure Pipelines. Укажите конвейер со следующими параметрами:

Настройки Ценность
Репозиторий "Корневой репозиторий" (совпадает с именем проекта)
Отрасль главный
Путь deploy/pipelines/04-sap-software-download.yml
Имя Приобретение программного обеспечения SAP

Сохраните трубопровод. Чтобы просмотреть «Сохранить», выберите стрелку рядом с «Выполнить». Перейдите в раздел "Конвейеры" и выберите конвейер. Выберите "Переименовать или переместить " в меню многоточия справа и переименуйте конвейер как приобретение программного обеспечения SAP.

Конвейер конфигурации SAP и установки программного обеспечения

Создайте конвейер конфигурации SAP и установки программного обеспечения. В разделе "Конвейеры" выберите "Создать конвейер". Выберите Azure Repos Git в качестве источника кода. Настройте конвейер для использования существующего YAML-файла Azure Pipelines. Укажите конвейер со следующими параметрами:

Настройки Ценность
Репозиторий "Корневой репозиторий" (совпадает с именем проекта)
Отрасль главный
Путь pipelines/05-DB-and-SAP-installation.yml
Имя Настройка и установка SAP

Сохраните трубопровод. Чтобы просмотреть «Сохранить», выберите стрелку рядом с «Выполнить». Перейдите в раздел "Конвейеры" и выберите конвейер. Выберите Переименовать/Переместить в меню с многоточием справа и переименуйте конвейер в SAP конфигурация и установка программного обеспечения.

Цепочка процессов удаления развертывания

Создайте конвейер удаления развертывания. В разделе "Конвейеры" выберите "Создать конвейер". Выберите Azure Repos Git в качестве источника кода. Настройте конвейер для использования существующего YAML-файла Azure Pipelines. Укажите конвейер со следующими параметрами:

Настройки Ценность
Репозиторий "Корневой репозиторий" (совпадает с именем проекта)
Отрасль главный
Путь pipelines/10-remover-terraform.yml
Имя Удаление развертывания

Сохраните трубопровод. Чтобы просмотреть «Сохранить», выберите стрелку рядом с «Выполнить». Перейдите в раздел "Конвейеры" и выберите конвейер. Выберите «Переименовать/Переместить» в меню с многоточием справа и переименуйте конвейер как Удаление развертывания.

Конвейер удаления управляющей плоскости

Создайте конвейер удаления плоскости управления. В разделе "Конвейеры" выберите "Создать конвейер". Выберите Azure Repos Git в качестве источника кода. Настройте конвейер для использования существующего YAML-файла Azure Pipelines. Укажите конвейер со следующими параметрами:

Настройки Ценность
Репозиторий "Корневой репозиторий" (совпадает с именем проекта)
Отрасль главный
Путь pipelines/12-remove-control-plane.yml
Имя Удаление плоскости управления

Сохраните трубопровод. Чтобы просмотреть «Сохранить», выберите стрелку рядом с «Выполнить». Перейдите в раздел "Конвейеры" и выберите конвейер. Выберите «Переименовать/Переместить» в меню многоточия справа и переименуйте пайплайн как Удаление плоскости управления.

Конвейер удаления развертывания с помощью Azure Resource Manager

Создайте конвейер Azure Resource Manager для удаления развертывания. В разделе "Конвейеры" выберите "Создать конвейер". Выберите Azure Repos Git в качестве источника кода. Настройте конвейер для использования существующего YAML-файла Azure Pipelines. Укажите конвейер со следующими параметрами:

Настройки Ценность
Репозиторий "Корневой репозиторий" (совпадает с именем проекта)
Отрасль главный
Путь pipelines/11-remover-arm-fallback.yml
Имя Удаление развертывания с помощью Azure Resource Manager

Сохраните трубопровод. Чтобы просмотреть «Сохранить», выберите стрелку рядом с «Выполнить». Перейдите в раздел "Конвейеры" и выберите конвейер. Выберите Переместить/Переименовать в меню с многоточием справа и переименуйте конвейер на Удаление развертывания с использованием процессора ARM.

Примечание.

Используйте этот конвейер только в качестве последнего средства. Удаление только групп ресурсов оставляет остатки, которые могут усложнить повторное развертывание.

Конвейер обновления репозитория

Создайте конвейер обновления репозитория. В разделе "Конвейеры" выберите "Создать конвейер". Выберите Azure Repos Git в качестве источника кода. Настройте конвейер для использования существующего YAML-файла Azure Pipelines. Укажите конвейер со следующими параметрами:

Настройки Ценность
Репозиторий "Корневой репозиторий" (совпадает с именем проекта)
Отрасль главный
Путь pipelines/20-update-ado-repository.yml
Имя Обновление репозитория

Сохраните трубопровод. Чтобы просмотреть «Сохранить», выберите стрелку рядом с «Выполнить». Перейдите в раздел "Конвейеры" и выберите конвейер. Выберите «Переименовать/Переместить» в меню многоточия справа и переименуйте пайплайн в Обновление репозитория.

Этот конвейер следует использовать при обновлении в репозитории sap-automation, который вы хотите использовать.

Импорт задачи очистки из Visual Studio Marketplace

Пайплайны используют пользовательскую задачу для выполнения действий по очистке после развертывания. Вы можете установить настраиваемую задачу из Очистка после сборки. Установите его в организацию Azure DevOps перед запуском конвейеров.

Подготовка к локально размещённому агенту

  1. Создайте пул агентов, перейдя в параметры организации. В разделе «Конвейеры» выберите Пулы агентов>Добавить пул. Выберите самостоятельное размещение в качестве типа пула. Присвойте пулу имя для согласования с средой плоскости управления. Например, укажите MGMT-WEEU-POOL. Убедитесь, что выбрано разрешение на доступ ко всем конвейерам и нажмите кнопку "Создать ", чтобы создать пул.

  2. Войдите с помощью учетной записи пользователя, используемой в организации Azure DevOps .

  3. На домашней странице откройте параметры пользователя и выберите личные маркеры доступа.

    Схема, показывающая создание персонального токена доступа.

  4. Создайте личный маркер доступа с помощью следующих параметров:

    • Пулы агентов: выберите "Чтение" и "Управление".

    • Сборка: выберите Чтение и выполнение.

    • Код: выберите "Чтение" и "Запись".

    • Группы переменных: выберите Чтение, создание и управление.

      Запишите созданное значение токена.

    Диаграмма, показывающая атрибуты личного токена доступа.

Определения переменных

Конвейеры развертывания настроены для использования набора предопределенных значений параметров, определенных с помощью групп переменных.

Общие переменные

Общие переменные используются всеми конвейерами развертывания. Они хранятся в группе переменных с именем SDAF-General.

Создайте новую группу переменных с именем SDAF-General с помощью страницы библиотеки в разделе "Конвейеры ". Добавьте следующие переменные:

Переменная Ценность Примечания.
Путь_Настройки_Внедрения РАБОЧИЕ ОБЛАСТИ Для тестирования примера конфигурации используйте samples/WORKSPACES вместо workspaceS.
Отрасль главный
S-username <SAP Support user account name>
S-Password <SAP Support user password> Измените тип переменной на секрет, выбрав значок блокировки.
tf_version 1.6.0 Используемая версия Terraform. См. скачивание Terraform.

Сохраните переменные.

Кроме того, для настройки групп можно использовать интерфейс командной строки Azure DevOps.

s-user="<SAP Support user account name>"
s-password="<SAP Support user password>"

az devops login

az pipelines variable-group create --name SDAF-General --variables ANSIBLE_HOST_KEY_CHECKING=false Deployment_Configuration_Path=WORKSPACES Branch=main S-Username=$s-user S-Password=$s-password tf_version=1.3.0 --output yaml

Не забудьте назначить разрешения для всех конвейеров с помощью Разрешения для конвейеров.

Переменные, относящиеся к среде

Так как каждая среда может иметь разные учетные данные развертывания, необходимо создать группу переменных для каждой среды. Например, используйте SDAF-MGMT,SDAF-DEVи SDAF-QA.

Создайте новую группу переменных с именем SDAF-MGMT среды плоскости управления с помощью страницы библиотеки в разделе Pipelines . Добавьте следующие переменные:

Переменная Ценность Примечания.
Агент Azure Pipelines или имя пула агентов Этот пул будет создан на следующем шаге.
CP_ARM_CLIENT_ID Service principal application ID
CP_ARM_OBJECT_ID Service principal object ID
Секрет клиента CP_ARM Service principal password Измените тип переменной на секрет, выбрав значок блокировки.
CP_ARM_SUBSCRIPTION_ID Target subscription ID
CP_ARM_TENANT_ID Tenant ID для субъекта-службы
AZURE_CONNECTION_NAME Ранее созданное имя подключения
sap_fqdn Полностью квалифицированное доменное имя SAP, например, sap.contoso.net Требуется только в том случае, если частный DNS не используется.
Фехтование_SPN_ID Service principal application ID для агента по ограждению Требуется для высокодоступных развертываний, использующих субъект-службу для агента ограждения.
FENCING_SPN_PWD Service principal password для агента по ограждению Требуется для высокодоступных развертываний, использующих субъект-службу для агента ограждения.
FENCING_SPN_TENANT Service principal tenant ID для агента по ограждению Требуется для высокодоступных развертываний, использующих субъект-службу для агента ограждения.
ПОХЛОПАТЬ <Personal Access Token> Используйте личный маркер, определенный на предыдущем шаге.
БАССЕЙН <Agent Pool name> Пул агентов, используемый для этой среды.
APP_REGISTRATION_APP_ID App registration application ID Требуется при развертывании веб-приложения.
WEB_APP_CLIENT_SECRET App registration password Требуется при развертывании веб-приложения.
SDAF_ОБЩАЯ_ГРУППА_ID Идентификатор группы для группы SDAF-General Идентификатор можно получить из параметра variableGroupId URL-адреса при доступе к группе переменных с помощью браузера. Например: variableGroupId=8.
WORKLOADZONE_PIPELINE_ID Идентификатор конвейера SAP workload zone deployment Идентификатор можно извлечь из параметра definitionId URL со страницы конвейера в Azure DevOps. Например: definitionId=31.
SYSTEM_PIPELINE_ID Идентификатор конвейера SAP system deployment (infrastructure) Идентификатор можно извлечь из параметра definitionId URL со страницы конвейера в Azure DevOps. Например: definitionId=32.

Сохраните переменные.

Не забудьте назначить разрешения для всех конвейеров с помощью Разрешения для конвейеров.

При использовании веб-приложения убедитесь, что служба сборки имеет как минимум разрешения на участие.

Вы можете использовать функцию клонирования для создания следующей группы переменных среды. APP_REGISTRATION_APP_ID, WEB_APP_CLIENT_SECRET, SDAF_GENERAL_GROUP_ID, WORKLOADZONE_PIPELINE_ID и SYSTEM_PIPELINE_ID требуются только для группы SDAF-MGMT.

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

Чтобы удалить ресурсы Azure, вам потребуется подключение службы Azure Resource Manager. Дополнительные сведения см. в разделе "Управление подключениями к службе".

Чтобы создать подключение к службе, перейдите в раздел "Параметры проекта". В разделе Пайплайны выберите подключения сервисов.

Снимок экрана, показывающий процесс создания подключения к службе.

Выберите Azure Resource Manager в качестве типа подключения службы и субъект-службу (вручную) в качестве метода проверки подлинности. Введите целевую подписку, которая обычно является подпиской уровня управления. Введите сведения об учетной записи службы. Выберите "Проверить" , чтобы проверить учетные данные. Дополнительные сведения о создании субъекта-службы см. в статье "Создание субъекта-службы".

Введите имя подключения службы, например, используйте Connection to MGMT subscription. Убедитесь, что установлен флажок Предоставить разрешение на доступ всем конвейерам. Выберите "Проверить и сохранить ", чтобы сохранить подключение к службе.

Разрешения

Большинство конвейеров добавляют файлы в Azure Repos и поэтому требуют разрешений на вытягивание. В разделе "Параметры проекта" в разделе "Репозитории" выберите вкладку "Безопасность" репозитория исходного кода и назначьте разрешения "Участие".Build Service

Снимок экрана: разрешения репозитория.

Развертывание плоскости управления

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

Выберите конвейер развертывания уровня управления и введите имена конфигураций для развертывающего и библиотеки SAP. Выберите Выполнить, чтобы развернуть контрольную плоскость. Установите флажок "Развернуть веб-приложение конфигурации", если вы хотите настроить веб-приложение конфигурации.

Настройка локального агента Azure DevOps Services вручную

Настройка вручную необходима только в том случае, если агент Azure DevOps Services не настроен автоматически. Перед продолжением убедитесь, что пул агентов пуст.

Чтобы подключиться к развертывающему,

  1. Войдите на портал Azure.

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

  3. Подключитесь к виртуальной машине с помощью Бастиона Azure.

  4. Имя пользователя по умолчанию — azureadm.

  5. Выберите закрытый ключ SSH из Azure Key Vault.

  6. Выберите подписку, содержащую плоскость управления.

  7. Выберите хранилище ключей развертывателя.

  8. В списке секретов выберите секрет, который заканчивается -sshkey.

  9. Подключитесь к виртуальной машине.

Выполните следующий скрипт, чтобы настроить средство развертывания:

mkdir -p ~/Azure_SAP_Automated_Deployment

cd ~/Azure_SAP_Automated_Deployment

git clone https://github.com/Azure/sap-automation.git

cd sap-automation/deploy/scripts

./configure_deployer.sh

Перезагрузите средство развертывания, повторное подключение и выполните следующий скрипт, чтобы настроить агент Azure DevOps:

cd ~/Azure_SAP_Automated_Deployment/

$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh

Примите лицензию и при появлении запроса на URL-адрес сервера введите URL-адрес, который вы захватили при создании проекта Azure DevOps. Для проверки подлинности выберите PAT и введите значение токена на предыдущем шаге.

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

Развертывание веб-приложения уровня управления

Выбор deploy the web app infrastructure параметра при запуске конвейера развертывания плоскости управления подготавливает инфраструктуру, необходимую для размещения веб-приложения. Конвейер развертывания веб-приложения публикует программное обеспечение приложения в этой инфраструктуре.

Дождитесь окончания развертывания. Перейдите на вкладку "Расширения" и следуйте инструкциям, чтобы завершить настройку. Обновите значения reply-url для регистрации приложения.

В результате запуска конвейера плоскости управления часть необходимого URL-адреса веб-приложения хранится в переменной, именуемой WEBAPP_URL_BASE в группе переменных для конкретной среды. В любое время можно обновить URL-адреса зарегистрированного веб-приложения с помощью следующей команды.

webapp_url_base=<WEBAPP_URL_BASE>
az ad app update --id $TF_VAR_app_registration_app_id --web-home-page-url https://${webapp_url_base}.azurewebsites.net --web-redirect-uris https://${webapp_url_base}.azurewebsites.net/ https://${webapp_url_base}.azurewebsites.net/.auth/login/aad/callback

Кроме того, необходимо предоставить разрешения на чтение управляемому удостоверению, назначенному службам приложений системой. Перейдите к ресурсу службы приложений. В левой части выберите "Удостоверение". На вкладке Назначенная системой выберите назначения ролей Azure>Добавить назначение роли. Выберите Подписка в качестве области и Читатель в качестве роли. Затем выберите Сохранить. Без этого шага функции раскрывающегося списка веб-приложения не будут работать.

Теперь вы сможете посетить веб-приложение и использовать его для развертывания зон рабочей нагрузки SAP и инфраструктуры системы SAP.

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