Az SAP Deployment Automation Framework használatának első lépései

Az SAP Deployment Automation Framework használatának első lépései.

Előfeltételek

Az SAP Deployment Automation Framework használatának megkezdéséhez a következőkre van szüksége:

  • Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, létrehozhat egy ingyenes fiókot.
  • Egy SAP-felhasználói fiók, amely rendelkezik az SAP-szoftver Azure-környezetben való letöltésére vonatkozó engedélyekkel. Az S-user szolgáltatással kapcsolatos további információkért lásd: SAP S-User.
  • Azure CLI-telepítés .
  • Felhasználó által hozzárendelt identitás (MS) vagy szolgáltatásnév a vezérlősík üzembe helyezéséhez.
  • Egy felhasználó által hozzárendelt identitás (MS) vagy egy szolgáltatásnév, amelyet a számítási feladatok zónájának üzembe helyezéséhez kell használni.
  • Azure DevOps-projekt létrehozása, ha üzembe helyezésre szeretné használni az Azure DevOpsot.

Előfordulhat, hogy az előfeltételek némelyike már telepítve van az üzembe helyezési környezetben. Az Azure Cloud Shell és a telepítő egyaránt a Terraformot és az Azure CLI-t használja.

Egyszerű szolgáltatás létrehozása

Az SAP Automation üzembehelyezési keretrendszere szolgáltatásnevek használatával üzemeltet.

Amikor kiválaszt egy nevet a szolgáltatásnévnek, győződjön meg arról, hogy a név egyedi az Azure-bérlőn belül. A szkript futtatásakor mindenképpen használjon szolgáltatásnév-létrehozási engedélyekkel rendelkező fiókot.

  1. Hozza létre a szolgáltatásnevet közreműködői engedélyekkel.

    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"
    

    Tekintse át a kimenetet. Példa:

    {
        "appId": "<AppId>",
        "displayName": "<environment>-Deployment-Account ",
        "name": "<AppId>",
        "password": "<AppSecret>",
        "tenant": "<TenantId>"
    }
    
  2. Másolja ki a kimeneti adatokat. Ügyeljen arra, hogy az értékeket a következőre appIdmentse: , passwordés Tenant.

    A kimenet a következő paraméterekre lesz leképezésre. Ezeket a paramétereket a későbbi lépésekben, automatizálási parancsokkal használhatja.

    Paraméter bemeneti neve Kimeneti név
    spn_id appId
    spn_secret password
    tenant_id tenant
  3. Igény szerint rendelje hozzá a User Access Rendszergazda istrator szerepkört a szolgáltatásnévhez.

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

Fontos

Ha nem rendeli hozzá a Felhasználói hozzáférés Rendszergazda istrator szerepkört a szolgáltatásnévhez, az automation-keretrendszer használatával nem rendelhet hozzá engedélyeket.

Felhasználó által hozzárendelt identitás létrehozása

Az SAP automation üzembehelyezési keretrendszer a felhasználó által hozzárendelt identitást (MSI) is használhatja az üzembe helyezéshez. Az identitást létrehozó szkript futtatásakor mindenképpen használjon engedélyekkel rendelkező fiókot felügyelt identitások létrehozásához.

  1. Hozza létre a felügyelt identitást.

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

    Tekintse át a kimenetet. Példa:

       {
         "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. Másolja ki a kimeneti adatokat.

    A kimenet a következő paraméterekre lesz leképezésre. Ezeket a paramétereket a későbbi lépésekben, automatizálási parancsokkal használhatja.

    Paraméter bemeneti neve Kimeneti név
    app_id appId
    msi_id armId
  3. Rendelje hozzá a közreműködői szerepkört az identitáshoz.

    export appId="<appId>"
    
    az role assignment create --assignee $appId  --role "Contributor"  --scope /subscriptions/$ARM_SUBSCRIPTION_ID
    
  4. Igény szerint rendelje hozzá a User Access Rendszergazda istrator szerepkört az identitáshoz.

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

Fontos

Ha nem rendeli hozzá a Felhasználói hozzáférés Rendszergazda istrator szerepkört a felügyelt identitáshoz, az automation-keretrendszer használatával nem rendelhet hozzá engedélyeket.

Repülés előtti ellenőrzések

A következő szkripttel repülés előtti ellenőrzéseket hajthat végre. A szkript a következő ellenőrzéseket és teszteket hajtja végre:

  • Ellenőrzi, hogy a szolgáltatásnév rendelkezik-e a megfelelő engedélyekkel az erőforrások előfizetésben való létrehozásához.
  • Ellenőrzi, hogy a szolgáltatásnév rendelkezik-e felhasználói hozzáférési Rendszergazda istrator engedélyekkel.
  • Azure-beli virtuális hálózat létrehozása.
  • Hozzon létre egy Azure Virtual Key Vaultot privát végponttal.
  • Azure Files NSF-megosztás létrehozása.
  • Hozzon létre egy Azure-beli virtuális gépet adatlemezzel a Premium Storage 2-vel.
  • Ellenőrizze a szükséges URL-címekhez való hozzáférést az üzembe helyezett virtuális gép használatával.

$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 Deployment Automation-keretrendszer használata az Azure DevOps Servicesből

Az Azure DevOps használata leegyszerűsíti az üzembe helyezés folyamatát. Az Azure DevOps olyan folyamatokat biztosít, amelyeket futtathat az infrastruktúra üzembe helyezésének, valamint a konfigurációs és SAP telepítési tevékenységek végrehajtásához.

Az Azure Repos használatával tárolhatja a konfigurációs fájlokat. Az Azure Pipelines olyan folyamatokat biztosít, amelyek az infrastruktúra és az SAP-alkalmazás üzembe helyezésére és konfigurálására használhatók.

Regisztráció az Azure DevOps Services szolgáltatásra

Az Azure DevOps Services használatához Azure DevOps-szervezetre van szüksége. A szervezet a kapcsolódó projektek csoportjainak összekapcsolására szolgál. Munkahelyi vagy iskolai fiókjával automatikusan csatlakoztathatja a szervezetet a Microsoft Entra-azonosítójához. Fiók létrehozásához nyissa meg az Azure DevOpsot , és jelentkezzen be, vagy hozzon létre egy új fiókot.

Az SAP Deployment Automation Framework környezetének létrehozása az Azure DevOpsszal

Az alábbi szkripttel elvégezheti az Azure DevOps Services for SAP Deployment Automation Framework alapszintű telepítését.

Nyissa meg a PowerShell I-t Standard kiadás és másolja ki a következő szkriptet, és frissítse a paramétereket a környezetének megfelelően.

    $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

Futtassa a szkriptet, és kövesse az utasításokat. A szkript megnyitja a böngészőablakokat a hitelesítéshez és az Azure DevOps-projekt feladatainak elvégzéséhez.

Dönthet úgy, hogy közvetlenül a GitHubról futtatja a kódot, vagy importálja a kód egy példányát az Azure DevOps-projektbe.

A projekt létrehozásának ellenőrzéséhez lépjen az Azure DevOps portálra, és válassza ki a projektet. Győződjön meg arról, hogy az adattár ki lett töltve, és hogy a folyamatok létre lettek hozva.

Fontos

Futtassa az alábbi lépéseket a helyi munkaállomáson. A parancs futtatásával az upgrade győződjön meg arról is, hogy a legújabb Azure CLI van telepítve.

Az Azure DevOps SAP Deployment Automation Frameworkhez való konfigurálásáról további információt az Azure DevOps konfigurálása az SAP Deployment Automation Frameworkhez című témakörben talál.

Az SAP Deployment Automation-keretrendszer környezetének létrehozása az Azure DevOps nélkül

Az SAP Deployment Automation Frameworkt egy Azure-beli virtuális gépről futtathatja. Az alábbi lépések a környezet létrehozásának módját ismertetik.

Fontos

Győződjön meg arról, hogy a virtuális gép rendszer által hozzárendelt vagy felhasználó által hozzárendelt identitást használ az előfizetés engedélyeivel az erőforrások létrehozásához.

Győződjön meg arról, hogy a virtuális gép a következő előfeltételekkel rendelkezik:

  • git
  • jq
  • Csomagolja ki
  • virtualenv (ha az Ubuntu-on fut)

Az előfeltételeket az alábbi paranccsal telepítheti egy Ubuntu virtuális gépre:

sudo apt-get install -y git jq unzip virtualenv

Ezután az alábbi parancsokkal telepítheti a telepítő összetevőit:


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

Minták

A ~/Azure_SAP_Automated_Deployment/samples mappa mintakonfigurációs fájlokat tartalmaz az üzembehelyezési automatizálási keretrendszer tesztelésének megkezdéséhez. Az alábbi parancsokkal másolhatja őket:

cd ~/Azure_SAP_Automated_Deployment

cp -Rp samples/Terraform/WORKSPACES ~/Azure_SAP_Automated_Deployment

Következő lépés