Начало работы с SAP Deployment Automation Framework

Быстро приступить к работе с SAP Deployment Automation Framework.

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

Чтобы приступить к работе с SAP Deployment Automation Framework, вам потребуется:

  • Подписка Azure. Если у вас еще нет подписки Azure, вы можете создать бесплатную учетную запись.
  • Учетная запись пользователя SAP с разрешениями на скачивание программного обеспечения SAP в среде Azure. Дополнительные сведения о S-User см. в разделе SAP S-User.
  • Установка Azure CLI .
  • Назначенный пользователем идентификатор (MS) или субъект-служба, используемый для развертывания плоскости управления.
  • Назначенное пользователем удостоверение (MS) или субъект-служба для развертывания зоны рабочей нагрузки.
  • Возможность создать проект Azure DevOps, если вы хотите использовать Azure DevOps для развертывания.

Некоторые предварительные требования уже могут быть установлены в среде развертывания. Как Azure Cloud Shell, так и средство развертывания входят в Terraform и установлен Azure CLI.

Создание субъекта-службы

Платформа автоматизации развертывания SAP использует субъекты-службы для развертывания.

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

  1. Создайте субъект-службу с разрешениями участника.

    export    ARM_SUBSCRIPTION_ID="<subscriptionId>"
    export control_plane_env_code="LAB"
    
    az ad sp create-for-rbac --role="Contributor"  --scopes="/subscriptions/$ARM_SUBSCRIPTION_ID"   --name="$control_plane_env_code-Deployment-Account"
    

    Просмотрите выходные данные. Например:

    {
        "appId": "<AppId>",
        "displayName": "<environment>-Deployment-Account ",
        "name": "<AppId>",
        "password": "<AppSecret>",
        "tenant": "<TenantId>"
    }
    
  2. Скопируйте выходные данные. Обязательно сохраните значения для appId, passwordи Tenant.

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

    Имя входных данных параметра Имя вывода
    spn_id appId
    spn_secret password
    tenant_id tenant
  3. При необходимости назначьте роль пользователя Администратор istrator субъекту-службе.

    export appId="<appId>"
    
    az role assignment create --assignee $appId --role "User Access Administrator"  --scope /subscriptions/$ARM_SUBSCRIPTION_ID
    

Внимание

Если роль пользователя Администратор istrator не назначена субъекту-службе, вы не можете назначить разрешения с помощью платформы автоматизации.

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

Платформа развертывания автоматизации SAP также может использовать назначенное пользователем удостоверение (MSI) для развертывания. Обязательно используйте учетную запись с разрешениями на создание управляемых удостоверений при запуске скрипта, создающего удостоверение.

  1. Создайте управляемое удостоверение.

    export    ARM_SUBSCRIPTION_ID="<subscriptionId>"
    export control_plane_env_code="LAB"
    
    az identity create --name ${control_plane_env_code}-Deployment-Identity --resource-group <ExistingResourceGroup>
    

    Просмотрите выходные данные. Например:

       {
         "clientId": "<appId>",
         "id": "<armId>",
         "location": "<location>",
         "name": "${control_plane_env_code}-Deployment-Identity",
         "principalId": "<objectId>",
         "resourceGroup": "<ExistingResourceGroup>",
         "systemData": null,
         "tags": {},
         "tenantId": "<TenantId>",
         "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
       }
    
  2. Скопируйте выходные данные.

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

    Имя входных данных параметра Имя вывода
    app_id appId
    msi_id armId
  3. Назначьте роль участника удостоверению.

    export appId="<appId>"
    
    az role assignment create --assignee $appId  --role "Contributor"  --scope /subscriptions/$ARM_SUBSCRIPTION_ID
    
  4. При необходимости назначьте роль Администратор istrator пользователю для удостоверения.

    export appId="<appId>"
    
    az role assignment create --assignee $appId  --role "User Access Administrator"  --scope /subscriptions/$ARM_SUBSCRIPTION_ID
    

Внимание

Если роль Администратор istrator пользователя не назначается управляемому удостоверению, вы не можете назначить разрешения с помощью платформы автоматизации.

Предварительные проверки

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

  • Проверяет, имеет ли субъект-служба правильные разрешения для создания ресурсов в подписке.
  • Проверяет, есть ли у субъекта-службы разрешения пользователя Access Администратор istrator.
  • Создайте виртуальная сеть Azure.
  • Создайте Azure Virtual Key Vault с частной конечной точкой.
  • Создайте общую папку NSF Файлы Azure.
  • Создайте виртуальную машину Azure с диском данных с помощью хранилище класса Premium версии 2.
  • Проверьте доступ к необходимым URL-адресам с помощью развернутой виртуальной машины.

$sdaf_path = Get-Location
if ( $PSVersionTable.Platform -eq "Unix") {
    if ( -Not (Test-Path "SDAF") ) {
      $sdaf_path = New-Item -Path "SDAF" -Type Directory
    }
}
else {
    $sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
    if ( -not (Test-Path $sdaf_path)) {
        New-Item -Path $sdaf_path -Type Directory
    }
}

Set-Location -Path $sdaf_path

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

cd sap-automation
cd deploy
cd scripts

if ( $PSVersionTable.Platform -eq "Unix") {
./Test-SDAFReadiness.ps1
}
else {
.\Test-SDAFReadiness.ps1
}

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

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

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

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

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

Создание среды sap Deployment Automation Framework с помощью Azure DevOps

Чтобы выполнить базовую установку 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_WORKLOAD_ZONE_CODE = "DEV"
    $Env:SDAF_ControlPlaneSubscriptionID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    $Env:SDAF_WorkloadZoneSubscriptionID = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
    $Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"

    $UniqueIdentifier = Read-Host "Please provide an identifier that makes the service principal names unique, for instance a project code"

    $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 = $UniqueIdentifier + " SDAF Control Plane"
    }

    else {
      $Env:SDAF_APP_NAME = Read-Host "Please provide the Application registration name"
    }

    $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 = $UniqueIdentifier + " SDAF " + $Env:SDAF_CONTROL_PLANE_CODE + " SPN"
    }
        else {
      $Env:SDAF_MGMT_SPN_NAME = Read-Host "Please provide the Control Plane Service Principal Name"
    }

    $confirmation = Read-Host "Do you want to create a new Service Principal for the Workload zone y/n?"
    if ($confirmation -eq 'y') {
        $Env:SDAF_WorkloadZone_SPN_NAME = $UniqueIdentifier + " SDAF " + $Env:SDAF_WORKLOAD_ZONE_CODE + " SPN"
    }
        else {
      $Env:SDAF_WorkloadZone_SPN_NAME = Read-Host "Please provide the Workload Zone 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") {
        remove-item .\New-SDAFDevopsProject.ps1
    }

    Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/main/deploy/scripts/New-SDAFDevopsProject.ps1 -OutFile .\New-SDAFDevopsProject.ps1 ; .\New-SDAFDevopsProject.ps1

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

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

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

Внимание

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

Дополнительные сведения о настройке Azure DevOps для SAP Deployment Automation Framework см. в статье "Настройка Azure DevOps для платформы автоматизации развертывания SAP".

Создание среды службы автоматизации развертывания SAP без Azure DevOps

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

Внимание

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

Убедитесь, что виртуальная машина установлена следующими предварительными условиями:

  • git
  • jq
  • unzip
  • virtualenv (при запуске в Ubuntu)

Предварительные требования можно установить на виртуальной машине Ubuntu с помощью следующей команды:

sudo apt-get install -y git jq unzip virtualenv

Затем можно установить компоненты развертывающего средства с помощью следующих команд:


wget https://raw.githubusercontent.com/Azure/sap-automation/main/deploy/scripts/configure_deployer.sh -O configure_deployer.sh
chmod +x ./configure_deployer.sh
./configure_deployer.sh

# Source the new variables

. /etc/profile.d/deploy_server.sh

Примеры

Папка ~/Azure_SAP_Automated_Deployment/samples содержит набор примеров файлов конфигурации для запуска тестирования платформы автоматизации развертывания. Их можно скопировать с помощью следующих команд:

cd ~/Azure_SAP_Automated_Deployment

cp -Rp samples/Terraform/WORKSPACES ~/Azure_SAP_Automated_Deployment

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