Aan de slag met SAP Deployment Automation Framework

Ga snel aan de slag met SAP Deployment Automation Framework.

Vereisten

U hebt het volgende nodig om aan de slag te gaan met SAP Deployment Automation Framework:

  • Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis account maken.
  • Een SAP-gebruikersaccount met machtigingen voor het downloaden van de SAP-software in uw Azure-omgeving. Zie SAP S-User voor meer informatie over S-User.
  • Een Azure CLI-installatie .
  • Een door de gebruiker toegewezen identiteit (MS) of een service-principal die moet worden gebruikt voor de implementatie van het besturingsvlak.
  • Een door de gebruiker toegewezen identiteit (MS) of een service-principal die moet worden gebruikt voor de implementatie van de workloadzone.
  • Een mogelijkheid om een Azure DevOps-project te maken als u Azure DevOps wilt gebruiken voor implementatie.

Sommige van de vereisten zijn mogelijk al geïnstalleerd in uw implementatieomgeving. Zowel Azure Cloud Shell als de implementatie worden geleverd met Terraform en de Azure CLI geïnstalleerd.

Een service-principal maken

Het SAP Automation-implementatieframework maakt gebruik van service-principals voor implementatie.

Wanneer u een naam voor uw service-principal kiest, moet u ervoor zorgen dat de naam uniek is binnen uw Azure-tenant. Zorg ervoor dat u een account gebruikt met machtigingen voor het maken van service-principals bij het uitvoeren van het script.

  1. Maak de service-principal met inzendermachtigingen.

    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"
    

    Controleer de uitvoer. Voorbeeld:

    {
        "appId": "<AppId>",
        "displayName": "<environment>-Deployment-Account ",
        "name": "<AppId>",
        "password": "<AppSecret>",
        "tenant": "<TenantId>"
    }
    
  2. Kopieer de uitvoergegevens. Zorg ervoor dat u de waarden voor appId, passworden Tenant.

    De uitvoer wordt toegewezen aan de volgende parameters. U gebruikt deze parameters in latere stappen, met automatiseringsopdrachten.

    Parameterinvoernaam Uitvoernaam
    spn_id appId
    spn_secret password
    tenant_id tenant
  3. Wijs desgewenst de rol Gebruikerstoegang Beheer istrator toe aan de service-principal.

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

Belangrijk

Als u de rol gebruikerstoegang Beheer istrator niet toewijst aan de service-principal, kunt u geen machtigingen toewijzen met behulp van het automation-framework.

Een door de gebruiker toegewezen identiteit maken

Het SAP Automation-implementatieframework kan ook een door de gebruiker toegewezen identiteit (MSI) gebruiken voor de implementatie. Zorg ervoor dat u een account gebruikt met machtigingen voor het maken van beheerde identiteiten bij het uitvoeren van het script waarmee de identiteit wordt gemaakt.

  1. Maak de beheerde identiteit.

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

    Controleer de uitvoer. Voorbeeld:

       {
         "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. Kopieer de uitvoergegevens.

    De uitvoer wordt toegewezen aan de volgende parameters. U gebruikt deze parameters in latere stappen, met automatiseringsopdrachten.

    Parameterinvoernaam Uitvoernaam
    app_id appId
    msi_id armId
  3. Wijs de rol Inzender toe aan de identiteit.

    export appId="<appId>"
    
    az role assignment create --assignee $appId  --role "Contributor"  --scope /subscriptions/$ARM_SUBSCRIPTION_ID
    
  4. Wijs desgewenst de rol Gebruikerstoegang Beheer istrator toe aan de identiteit.

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

Belangrijk

Als u de rol gebruikerstoegang Beheer istrator niet toewijst aan de beheerde identiteit, kunt u geen machtigingen toewijzen met behulp van het automation-framework.

Controles vóór vlucht

U kunt het volgende script gebruiken om controles vooraf uit te voeren. Het script voert de volgende controles en tests uit:

  • Controleert of de service-principal over de juiste machtigingen beschikt om resources in het abonnement te maken.
  • Controleert of de service-principal machtigingen voor gebruikerstoegang heeft Beheer istrator.
  • Maak een virtueel Azure-netwerk.
  • Maak een virtuele Azure-sleutelkluis met een privé-eindpunt.
  • Maak een Azure Files NSF-share.
  • Maak een virtuele Azure-machine met gegevensschijf met behulp van Premium Storage v2.
  • Controleer de toegang tot de vereiste URL's met behulp van de geïmplementeerde virtuele machine.

$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 Framework gebruiken vanuit Azure DevOps Services

Het implementatieproces wordt gestroomlijnd met behulp van Azure DevOps. Azure DevOps biedt pijplijnen die u kunt uitvoeren om de implementatie van de infrastructuur en de configuratie- en SAP-installatieactiviteiten uit te voeren.

U kunt Azure-opslagplaatsen gebruiken om uw configuratiebestanden op te slaan. Azure Pipelines biedt pijplijnen, die kunnen worden gebruikt voor het implementeren en configureren van de infrastructuur en de SAP-toepassing.

Registreren voor Azure DevOps Services

Als u Azure DevOps Services wilt gebruiken, hebt u een Azure DevOps-organisatie nodig. Een organisatie wordt gebruikt om groepen gerelateerde projecten te verbinden. Gebruik uw werk- of schoolaccount om uw organisatie automatisch te verbinden met uw Microsoft Entra-id. Als u een account wilt maken, opent u Azure DevOps en meldt u zich aan of maakt u een nieuw account.

De SAP Deployment Automation Framework-omgeving maken met Azure DevOps

U kunt het volgende script gebruiken om een eenvoudige installatie van Azure DevOps Services voor SAP Deployment Automation Framework uit te voeren.

Open PowerShell ISE en kopieer het volgende script en werk de parameters bij zodat deze overeenkomen met uw omgeving.

    $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

Voer het script uit en volg de instructies. Het script opent browservensters voor verificatie en voor het uitvoeren van taken in het Azure DevOps-project.

U kunt ervoor kiezen om de code rechtstreeks vanuit GitHub uit te voeren of u kunt een kopie van de code importeren in uw Azure DevOps-project.

Als u wilt controleren of het project is gemaakt, gaat u naar de Azure DevOps-portal en selecteert u het project. Zorg ervoor dat de opslagplaats is ingevuld en of de pijplijnen zijn gemaakt.

Belangrijk

Voer de volgende stappen uit op uw lokale werkstation. Zorg er ook voor dat u de nieuwste Azure CLI hebt geïnstalleerd door de opdracht uit te az upgrade voeren.

Zie Azure DevOps configureren voor SAP Deployment Automation Framework voor meer informatie over het configureren van Azure DevOps voor SAP Deployment Automation Framework.

De SAP Deployment Automation Framework-omgeving maken zonder Azure DevOps

U kunt SAP Deployment Automation Framework uitvoeren vanaf een virtuele machine in Azure. In de volgende stappen wordt beschreven hoe u de omgeving maakt.

Belangrijk

Zorg ervoor dat de virtuele machine gebruikmaakt van een door het systeem toegewezen of door de gebruiker toegewezen identiteit met machtigingen voor het abonnement om resources te maken.

Zorg ervoor dat voor de virtuele machine de volgende vereisten zijn geïnstalleerd:

  • git
  • jq
  • Unzip
  • virtualenv (indien uitgevoerd op Ubuntu)

U kunt de vereisten op een virtuele Ubuntu-machine installeren met behulp van de volgende opdracht:

sudo apt-get install -y git jq unzip virtualenv

Vervolgens kunt u de implementatieonderdelen installeren met behulp van de volgende opdrachten:


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

Voorbeelden

De ~/Azure_SAP_Automated_Deployment/samples map bevat een set voorbeeldconfiguratiebestanden om te beginnen met het testen van het implementatieautomatiseringsframework. U kunt ze kopiëren met behulp van de volgende opdrachten:

cd ~/Azure_SAP_Automated_Deployment

cp -Rp samples/Terraform/WORKSPACES ~/Azure_SAP_Automated_Deployment

Volgende stap