Använda SAP Deployment Automation Framework från Azure DevOps Services

Azure DevOps effektiviserar distributionsprocessen genom att tillhandahålla pipelines som du kan köra för att utföra infrastrukturdistributionen och konfigurations- och SAP-installationsaktiviteterna.

Du kan använda Azure Repos för att lagra dina konfigurationsfiler och använda Azure Pipelines för att distribuera och konfigurera infrastrukturen och SAP-programmet.

Registrera dig för Azure DevOps Services

Om du vill använda Azure DevOps Services behöver du en Azure DevOps-organisation. En organisation används för att ansluta grupper av relaterade projekt. Använd ditt arbets- eller skolkonto för att automatiskt ansluta din organisation till ditt Microsoft Entra-ID. Om du vill skapa ett konto öppnar du Azure DevOps och loggar in eller skapar ett nytt konto.

Konfigurera Azure DevOps Services för SAP Deployment Automation Framework

Du kan använda följande skript för att utföra en grundläggande installation av Azure DevOps Services för SAP Deployment Automation Framework.

Öppna PowerShell ISE och kopiera följande skript och uppdatera parametrarna så att de matchar din miljö.

    $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
    }
    

Kör skriptet och följ anvisningarna. Skriptet öppnar webbläsarfönster för autentisering och för att utföra uppgifter i Azure DevOps-projektet.

Du kan välja att antingen köra koden direkt från GitHub eller importera en kopia av koden till ditt Azure DevOps-projekt.

Bekräfta att projektet har skapats genom att gå till Azure DevOps-portalen och välja projektet. Kontrollera att lagringsplatsen har fyllts i och att pipelines har skapats.

Viktigt!

Kör följande steg på din lokala arbetsstation. Se också till att du har den senaste Azure CLI installerad genom att az upgrade köra kommandot.

Konfigurera Azure DevOps Services-artefakter för en ny arbetsbelastningszon

Använd följande skript för att distribuera artefakterna som behövs för att stödja en ny arbetsbelastningszon. Den här processen skapar variabelgruppen och tjänstanslutningen i Azure DevOps och, om du vill, distributionstjänstens huvudnamn.

Öppna PowerShell ISE och kopiera följande skript och uppdatera parametrarna så att de matchar din miljö.

    $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
    

Skapa en exempelkonfiguration av kontrollplan

Du kan köra pipelinen Create Sample Deployer Configuration för att skapa en exempelkonfiguration för kontrollplanet. När den körs väljer du lämplig Azure-region. Du kan också styra om du vill distribuera Azure Firewall och Azure Bastion.

Manuell konfiguration av Azure DevOps Services för SAP Deployment Automation Framework

Du kan konfigurera Azure DevOps Services för SAP Deployment Automation Framework manuellt.

Skapa ett nytt projekt

Du kan använda Azure Repos för att lagra koden från GitHub-lagringsplatsen sap-automation och miljökonfigurationsfilerna.

Öppna Azure DevOps och skapa ett nytt projekt genom att välja Nytt projekt och ange projektinformationen. Projektet innehåller källkontrolllagringsplatsen för Azure Repos och Azure Pipelines för att utföra distributionsaktiviteter.

Om du inte ser Nytt projekt kontrollerar du att du har behörighet att skapa nya projekt i organisationen.

Registrera projektets URL.

Importera lagringsplatsen

Börja med att importera SAP Deployment Automation Framework Bootstrap GitHub-lagringsplatsen till Azure Repos.

Gå till avsnittet Lagringsplatser och välj Importera en lagringsplats. Importera lagringsplatsen https://github.com/Azure/sap-automation-bootstrap.git till Azure DevOps. Mer information finns i Importera en lagringsplats.

Om du inte kan importera en lagringsplats kan du skapa lagringsplatsen manuellt. Sedan kan du importera innehållet från SAP Deployment Automation Framework GitHub Bootstrap-lagringsplatsen till det.

Skapa lagringsplatsen för manuell import

Gör bara det här steget om du inte kan importera lagringsplatsen direkt.

Om du vill skapa lagringsplatsen för arbetsytor går du till avsnittet Lagringsplatser och väljer Skapa under Projektinställningar.

Välj lagringsplats, ange Git och ange ett namn för lagringsplatsen. Använd till exempel SAP Configuration Repository.

Klona lagringsplatsen

Om du vill tillhandahålla en mer omfattande redigeringsfunktion för innehållet kan du klona lagringsplatsen till en lokal mapp och redigera innehållet lokalt.

Om du vill klona lagringsplatsen till en lokal mapp går du till avsnittet Lagringsplatser i portalen under Filer och väljer Klona. Mer information finns i Klona en lagringsplats.

Screenshot that shows how to clone the repository.

Importera lagringsplatsens innehåll manuellt med hjälp av en lokal klon

Du kan också ladda ned innehållet manuellt från SAP Deployment Automation Framework-lagringsplatsen och lägga till det i din lokala klon av Azure DevOps-lagringsplatsen.

Gå till https://github.com/Azure/SAP-automation-samples lagringsplatsen och ladda ned lagringsplatsens innehåll som en .zip-fil. Välj Kod och välj Ladda ned ZIP.

Kopiera innehållet från zip-filen till rotmappen för din lokala klon.

Öppna den lokala mappen i Visual Studio Code. Du bör se att ändringarna måste synkroniseras med indikatorn med hjälp av källkontrollikonen som visas här.

Screenshot that shows that source code is changed.

Välj källkontrollikonen och ange ett meddelande om ändringen. Ange till exempel Importera från GitHub och välj Ctrl+Retur för att checka in ändringarna. Välj sedan Synkronisera ändringar för att synkronisera ändringarna tillbaka till lagringsplatsen.

Välj källa för Terraform- och Ansible-koden

Du kan antingen köra SAP Deployment Automation Framework-koden direkt från GitHub eller importera den lokalt.

Kör koden från en lokal lagringsplats

Om du vill köra SAP Deployment Automation Framework-koden från det lokala Azure DevOps-projektet måste du skapa en separat kodlagringsplats och en konfigurationslagringsplats i Azure DevOps-projektet:

  • Namnet på konfigurationslagringsplatsen: Same as the DevOps Project name. Källan är https://github.com/Azure/sap-automation-bootstrap.git.
  • Namn på kodlagringsplats: sap-automation. Källan är https://github.com/Azure/sap-automation.git.
  • Namn på exempel- och malllagringsplats: sap-samples. Källan är https://github.com/Azure/sap-automation-samples.git.

Kör koden direkt från GitHub

Om du vill köra koden direkt från GitHub måste du ange autentiseringsuppgifter för Azure DevOps för att kunna hämta innehållet från GitHub.

Skapa GitHub-tjänstanslutningen

Om du vill hämta koden från GitHub behöver du en GitHub-tjänstanslutning. Mer information finns i Hantera tjänstanslutningar.

Om du vill skapa tjänstanslutningen går du till Project Inställningar och under avsnittet Pipelines går du till Tjänstanslutningar.

Screenshot that shows how to create a service connection for GitHub.

Välj GitHub som tjänstanslutningstyp. Välj Azure Pipelines i listrutan OAuth-konfiguration .

Välj Auktorisera för att logga in på GitHub.

Ange ett tjänstanslutningsnamn, till exempel SDAF Anslut ion till GitHub. Kontrollera att kryssrutan Bevilja åtkomstbehörighet till alla pipelines är markerad. Spara tjänstanslutningen genom att välja Spara .

Konfigurera webbappen

Automation-ramverket kan också etablera en webbapp som en del av kontrollplanet för att hjälpa till med SAP-arbetsbelastningszonen och systemkonfigurationsfilerna. Om du vill använda webbappen måste du först skapa en appregistrering i autentiseringssyfte. Öppna Azure Cloud Shell och kör följande kommandon.

Ersätt MGMT med din miljö efter behov.

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

Spara appregistrerings-ID och lösenordsvärden för senare användning.

Skapa Azure Pipelines

Azure Pipelines implementeras som YAML-filer. De lagras i mappen deploy/pipelines på lagringsplatsen.

Kontrollplansdistributionspipeline

Skapa distributionspipelinen för kontrollplanet. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:

Inställning Värde
Lagringsplats "Rotrepo" (samma som projektnamn)
Filial huvud-
Sökväg pipelines/01-deploy-control-plane.yml
Name Distribution av kontrollplan

Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen som kontrollplansdistribution.

Distributionspipeline för SAP-arbetsbelastningszon

Skapa SAP-arbetsbelastningszonens pipeline. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:

Inställning Värde
Lagringsplats "Rotrepo" (samma som projektnamn)
Filial huvud-
Sökväg pipelines/02-sap-workload-zone.yml
Name Distribution av SAP-arbetsbelastningszoner

Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen till distribution av SAP-arbetsbelastningszonen.

SAP-systemdistributionspipeline

Skapa SAP-systemdistributionspipelinen. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:

Inställning Värde
Lagringsplats "Rotrepo" (samma som projektnamn)
Filial huvud-
Sökväg pipelines/03-sap-system-deployment.yml
Name SAP-systemdistribution (infrastruktur)

Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen till SAP-systemdistribution (infrastruktur).)

SAP-pipeline för programvaruförvärv

Skapa SAP-pipelinen för programvaruförvärv. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:

Inställning Värde
Lagringsplats "Rotrepo" (samma som projektnamn)
Filial huvud-
Sökväg deploy/pipelines/04-sap-software-download.yml
Name SAP-programvaruförvärv

Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen som SAP-programvaruförvärv.

Sap-konfiguration och installationspipeline för programvara

Skapa sap-konfigurations- och programvaruinstallationspipelinen. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:

Inställning Värde
Lagringsplats "Rotrepo" (samma som projektnamn)
Filial huvud-
Sökväg pipelines/05-DB-and-SAP-installation.yml
Name Konfiguration och SAP-installation

Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen till SAP-konfiguration och programvaruinstallation.

Distributionsborttagningspipeline

Skapa distributionsborttagningspipelinen. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:

Inställning Värde
Lagringsplats "Rotrepo" (samma som projektnamn)
Filial huvud-
Sökväg pipelines/10-remover-terraform.yml
Name Borttagning av distribution

Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen som Distributionsborttagning.

Pipeline för borttagning av kontrollplan

Skapa pipelinen för borttagning av kontrollplansdistribution. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:

Inställning Värde
Lagringsplats "Rotrepo" (samma som projektnamn)
Filial huvud-
Sökväg pipelines/12-remove-control-plane.yml
Name Borttagning av kontrollplan

Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen som borttagning av kontrollplan.

Distributionsborttagningspipeline med hjälp av Azure Resource Manager

Skapa azure Resource Manager-pipelinen för distributionsborttagning. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:

Inställning Värde
Lagringsplats "Rotrepo" (samma som projektnamn)
Filial huvud-
Sökväg pipelines/11-remover-arm-fallback.yml
Name Borttagning av distribution med Azure Resource Manager

Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen som Distributionsborttagning med ARM-processor.

Kommentar

Använd endast den här pipelinen som en sista utväg. Om du bara tar bort resursgrupperna återstår rester som kan komplicera omdistributionen.

Pipeline för lagringsplatsuppdatering

Skapa pipelinen för lagringsuppdatering. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:

Inställning Värde
Lagringsplats "Rotrepo" (samma som projektnamn)
Filial huvud-
Sökväg pipelines/20-update-ado-repository.yml
Name Uppdatering av lagringsplats

Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen till Lagringsplatsuppdatering.

Den här pipelinen bör användas när det finns en uppdatering på den sap-automation-lagringsplats som du vill använda.

Importera rensningsaktiviteten från Visual Studio Marketplace

Pipelines använder en anpassad uppgift för att utföra rensningsaktiviteter efter distributionen. Du kan installera den anpassade uppgiften från rensning efter bygget. Installera den i din Azure DevOps-organisation innan du kör pipelines.

Förberedelser för en lokalt installerad agent

  1. Skapa en agentpool genom att gå till Organisations-Inställningar. Under avsnittet Pipelines väljer du Agentpooler>Lägg till pool. Välj Egen värd som pooltyp. Namnge poolen så att den överensstämmer med kontrollplanets miljö. Använd till exempel MGMT-WEEU-POOL. Se till att Bevilja åtkomstbehörighet till alla pipelines är markerat och välj Skapa för att skapa poolen.

  2. Logga in med det användarkonto som du planerar att använda i din Azure DevOps-organisation .

  3. Öppna användarinställningarna på startsidan och välj Personliga åtkomsttoken.

    Diagram that shows the creation of a personal access token.

  4. Skapa en personlig åtkomsttoken med följande inställningar:

    • Agentpooler: Välj Läs och hantera.

    • Build: Välj Läs och kör.

    • Kod: Välj Läs och skriv.

    • Variabelgrupper: Välj Läs, skapa och hantera.

      Skriv ned det skapade tokenvärdet.

    Diagram that shows the attributes of the personal access token.

Variabeldefinitioner

Distributionspipelines är konfigurerade för att använda en uppsättning fördefinierade parametervärden som definieras med hjälp av variabelgrupper.

Vanliga variabler

Vanliga variabler används av alla distributionspipelines. De lagras i en variabelgrupp med namnet SDAF-General.

Skapa en ny variabelgrupp med namnet SDAF-General med hjälp av sidan Bibliotek i avsnittet Pipelines . Lägg till följande variabler:

Variabel Värde Kommentar
Deployment_Configuration_Path ARBETSYTOR För att testa exempelkonfigurationen använder du samples/WORKSPACES i stället för ARBETSYTOR.
Filial huvud-
S-användarnamn <SAP Support user account name>
S-lösenord <SAP Support user password> Ändra variabeltypen till hemlighet genom att välja låsikonen.
tf_version 1.6.0 Terraform-versionen som ska användas. Se Ladda ned Terraform.

Spara variablerna.

Du kan också använda Azure DevOps CLI för att konfigurera grupperna.

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_varsion=1.3.0 --output yaml

Kom ihåg att tilldela behörigheter för alla pipelines med hjälp av pipelinebehörigheter.

Miljöspecifika variabler

Eftersom varje miljö kan ha olika autentiseringsuppgifter för distribution måste du skapa en variabelgrupp per miljö. Använd till exempel SDAF-MGMT,SDAF-DEV, och SDAF-QA.

Skapa en ny variabelgrupp med namnet SDAF-MGMT för kontrollplansmiljön med hjälp av sidan Bibliotek i avsnittet Pipelines . Lägg till följande variabler:

Variabel Värde Kommentar
Handläggare Azure Pipelines eller namnet på agentpoolen Den här poolen skapas i ett senare steg.
CP_ARM_CLIENT_ID Service principal application ID
CP_ARM_OBJECT_ID Service principal object ID
CP_ARM_CLIENT_SECRET Service principal password Ändra variabeltypen till hemlighet genom att välja låsikonen.
CP_ARM_SUBSCRIPTION_ID Target subscription ID
CP_ARM_TENANT_ID Tenant ID för tjänstens huvudnamn
AZURE_CONNECTION_NAME Tidigare skapat anslutningsnamn
sap_fqdn SAP:s fullständigt kvalificerade domännamn, till exempel sap.contoso.net Behövs bara om Privat DNS inte används.
FENCING_SPN_ID Service principal application ID för fäktningsagenten Krävs för distributioner med hög tillgänglighet som använder tjänstens huvudnamn för fäktningsagenten.
FENCING_SPN_PWD Service principal password för fäktningsagenten Krävs för distributioner med hög tillgänglighet som använder tjänstens huvudnamn för fäktningsagenten.
FENCING_SPN_TENANT Service principal tenant ID för fäktningsagenten Krävs för distributioner med hög tillgänglighet som använder tjänstens huvudnamn för fäktningsagenten.
PAT <Personal Access Token> Använd den personliga token som definierades i föregående steg.
POOL <Agent Pool name> Agentpoolen som ska användas för den här miljön.
APP_REGISTRATION_APP_ID App registration application ID Krävs om du distribuerar webbappen.
WEB_APP_CLIENT_SECRET App registration password Krävs om du distribuerar webbappen.
SDAF_GENERAL_GROUP_ID Grupp-ID för gruppen SDAF-General ID:t kan hämtas från URL-parametern variableGroupId när du öppnar variabelgruppen med hjälp av en webbläsare. Exempel: variableGroupId=8.
WORKLOADZONE_PIPELINE_ID ID:t för pipelinen SAP workload zone deployment ID:t kan hämtas från URL-parametern definitionId från pipelinesidan i Azure DevOps. Exempel: definitionId=31.
SYSTEM_PIPELINE_ID ID:t för pipelinen SAP system deployment (infrastructure) ID:t kan hämtas från URL-parametern definitionId från pipelinesidan i Azure DevOps. Exempel: definitionId=32.

Spara variablerna.

Kom ihåg att tilldela behörigheter för alla pipelines med hjälp av pipelinebehörigheter.

När du använder webbappen kontrollerar du att Build Service har minst Contribute-behörigheter.

Du kan använda klonfunktionen för att skapa nästa miljövariabelgrupp. APP_REGISTRATION_APP_ID, WEB_APP_CLIENT_SECRET, SDAF_GENERAL_GROUP_ID, WORKLOADZONE_PIPELINE_ID och SYSTEM_PIPELINE_ID behövs endast för gruppen SDAF-MGMT.

Skapa en tjänstanslutning

Om du vill ta bort Azure-resurserna behöver du en Azure Resource Manager-tjänstanslutning. Mer information finns i Hantera tjänstanslutningar.

Om du vill skapa tjänstanslutningen går du till Project Inställningar. Under avsnittet Pipelines väljer du Tjänstanslutningar.

Screenshot that shows how to create a service connection.

Välj Azure Resource Manager som tjänstanslutningstyp och Tjänstens huvudnamn (manuell) som autentiseringsmetod. Ange målprenumerationen, som vanligtvis är kontrollplansprenumerationen. Ange information om tjänstens huvudnamn. Välj Verifiera för att verifiera autentiseringsuppgifterna. Mer information om hur du skapar ett huvudnamn för tjänsten finns i Skapa ett huvudnamn för tjänsten.

Ange ett tjänstanslutningsnamn, till exempel använda Connection to MGMT subscription. Kontrollera att kryssrutan Bevilja åtkomstbehörighet till alla pipelines är markerad. Välj Verifiera och spara för att spara tjänstanslutningen.

Behörigheter

De flesta pipelines lägger till filer till Azure Repos och kräver därför pull-behörigheter. I Project Inställningar går du till avsnittet Lagringsplatser och väljer fliken Säkerhet på källkodslagringsplatsen och tilldelar Contribute-behörigheter till Build Service.

Screenshot that shows repository permissions.

Distribuera kontrollplanet

Nyligen skapade pipelines kanske inte visas i standardvyn. Välj fliken Senaste och gå tillbaka till Alla flikar för att visa de nya pipelinesna.

Välj distributionspipelinen för kontrollplanet och ange konfigurationsnamnen för distribueraren och SAP-biblioteket. Välj Kör för att distribuera kontrollplanet. Markera kryssrutan Distribuera konfigurationswebbprogrammet om du vill konfigurera konfigurationswebbappen.

Konfigurera en lokalt installerad Azure DevOps Services-agent manuellt

Manuell konfiguration behövs bara om Azure DevOps Services-agenten inte konfigureras automatiskt. Kontrollera att agentpoolen är tom innan du fortsätter.

Så här ansluter du till distribueraren:

  1. Logga in på Azure-portalen.

  2. Gå till den resursgrupp som innehåller den virtuella distributionsdatorn.

  3. Anslut till den virtuella datorn med hjälp av Azure Bastion.

  4. Standardanvändarnamnet är azureadm.

  5. Välj Privat SSH-nyckel från Azure Key Vault.

  6. Välj den prenumeration som innehåller kontrollplanet.

  7. Välj nyckelvalvet för distribueraren.

  8. I listan med hemligheter väljer du hemligheten som slutar med -sshkey.

  9. Anslut till den virtuella datorn

Kör följande skript för att konfigurera distribueraren:

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

Starta om distribueraren, återanslut och kör följande skript för att konfigurera Azure DevOps-agenten:

cd ~/Azure_SAP_Automated_Deployment/

$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh

Godkänn licensen och ange den URL som du hämtade när du skapade Azure DevOps-projektet när du uppmanas att ange server-URL:en. För autentisering väljer du PAT och anger tokenvärdet från föregående steg.

När du uppmanas till det anger du namnet på programpoolen som du skapade i föregående steg. Acceptera standardagentnamnet och standardnamnet för arbetsmappen. Agenten är nu konfigurerad och startar.

Distribuera kontrollplanets webbprogram

Om du väljer parametern deploy the web app infrastructure när du kör distributionspipelinen för kontrollplanet etableras den infrastruktur som krävs för att vara värd för webbappen. Pipelinen Distribuera webbapp publicerar programmets programvara till den infrastrukturen.

Vänta tills distributionen är klar. Välj fliken Tillägg och följ anvisningarna för att slutföra konfigurationen. reply-url Uppdatera värdena för appregistreringen.

När du kör kontrollplanspipelinen lagras en del av webbappens URL som behövs i en variabel med namnet WEBAPP_URL_BASE i din miljöspecifika variabelgrupp. När som helst kan du uppdatera URL:erna för den registrerade programwebbappen med hjälp av följande kommando.

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

Du måste också bevilja läsarbehörighet till den systemtilldelade hanterade identiteten för App Service. Gå till App Service-resursen. Välj Identitet till vänster. På fliken Systemtilldelad väljer du Azure-rolltilldelningar>Lägg till rolltilldelning. Välj Prenumeration som omfång och Läsare som roll. Välj sedan Spara. Utan det här steget fungerar inte webbappens listrutefunktioner.

Nu bör du kunna besöka webbappen och använda den för att distribuera SAP-arbetsbelastningszoner och SAP-systeminfrastruktur.

Gå vidare