Azure DevOps Services configureren voor SAP Deployment Automation Framework

In dit artikel wordt beschreven hoe u Azure DevOps Services configureert om SAP Deployment Automation Framework-pijplijnen uit te voeren. Deze configuratie helpt u bij het standaardiseren en herhalen van sap-infrastructuurimplementatie, softwareverwerving en configuratietaken in omgevingen.

U stelt de Azure DevOps-projectassets, serviceverbindingen, pijplijnen, machtigingen en variabelegroepen in die het framework nodig heeft. Nadat u deze stappen hebt voltooid, kunt u implementaties en lopende SAP-omgevingsbewerkingen uitvoeren vanuit Azure DevOps Services.

Een configuratiemethode kiezen

Gebruik deze tabel om het installatiepad voor uw omgeving te kiezen.

Methode Het beste wanneer Hoofdresultaat
Geautomatiseerde configuratiescripts U wilt projectartefacten snel opstarten en frameworkstandaarden gebruiken. Scripts maken het Azure DevOps-project, de serviceverbindingen en de basisimplementatie-assets.
Handmatige Azure DevOps-configuratie U hebt volledige controle nodig over het importeren van opslagplaatsen, serviceverbindingen en pijplijndefinities. U maakt en configureert stap voor stap elk Azure DevOps-onderdeel.

Vereiste voorwaarden

  • Een Azure-abonnement en machtigingen om resources, beheerde identiteiten en serviceprincipalen te maken.
  • Een Azure DevOps-organisatie waar u projecten, pijplijnen, serviceverbindingen en variabele groepen kunt maken.
  • Azure CLI is geïnstalleerd en bijgewerkt op uw lokale werkstation (az upgrade).
  • Windows PowerShell voor het uitvoeren van de opgegeven scripts.
  • Referenties voor SAP-ondersteuning (S-user) als u van plan bent verwervingspijplijnen voor SAP-software uit te voeren.

Aanmelden bij 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.

Azure DevOps configureren met behulp van automatiseringsscripts

Gebruik deze procedure als u wilt dat de frameworkscripts het Azure DevOps-project, serviceverbindingen en basislijnartefacten voor het besturingsvlak maken.

  1. Open PowerShell en kopieer het volgende script.

  2. Werk alle parameterwaarden bij zodat deze overeenkomt met uw omgeving.

  3. Voer het script uit. Het script opent browservensters voor verificatie en voor taken in Azure DevOps.

    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.

    # Azure DevOps Configuration
    $AzureDevOpsOrganizationUrl = "https://dev.azure.com/ORGANIZATIONNAME"
    
    # Azure Infrastructure Configuration
    $ControlPlaneCode = "MGMT"
    $ControlPlaneRegionCode = "SECE"
    $Location = "swedencentral"
    
    $ControlPlaneName = "$ControlPlaneCode-$ControlPlaneRegionCode-DEP01"
    
    $AzureDevOpsProjectName = "SDAF-" + $ControlPlaneCode + "-" + $ControlPlaneRegionCode
    
    $ControlPlaneSubscriptionId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    $TenantId = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
    
    # SAP Support Credentials
    $Env:SUserName = "SXXXXXXXX"
    $Env:Password = Read-Host "Please enter your SUserName password" -AsSecureString
    
    $MSIResourceGroupName = "SDAF-MSIs"
    # Azure DevOps Agent Configuration
    $AgentPoolName = "SDAF-$ControlPlaneCode-$ControlPlaneRegionCode-POOL"
    
    #Repository information
    $repo = "Azure/sap-automation"
    $branch = "main"
    
    Remove-Module SDAFUtilities -ErrorAction SilentlyContinue
    
    # Import required modules
    $url="https://raw.githubusercontent.com/$repo/refs/heads/$branch/deploy/scripts/pwsh/Output/SDAFUtilities/SDAFUtilities.psm1"
    
    Write-Host "Downloading SDAFUtilities module from $url" -ForegroundColor Green
    
    Invoke-WebRequest -Uri $url -OutFile "SDAFUtilities.psm1"
    Unblock-File -Path ".\SDAFUtilities.psm1"
    
    Import-Module ".\SDAFUtilities.psm1"
    
    # Create Managed Identity
    $ManagedServiceIdentity = New-SDAFUserAssignedIdentity `
        -ManagedIdentityName "$ControlPlaneName" `
        -ResourceGroupName $MSIResourceGroupName `
        -SubscriptionId $ControlPlaneSubscriptionId `
        -Location $Location `
        -Verbose
    
    # Create Azure DevOps Project with Managed Identity
    New-SDAFADOProject `
        -AdoOrganization $AzureDevOpsOrganizationUrl `
        -AdoProject $AzureDevOpsProjectName `
        -TenantId $TenantId `
        -ControlPlaneCode $ControlPlaneCode `
        -ControlPlaneSubscriptionId $ControlPlaneSubscriptionId `
        -ControlPlaneName $ControlPlaneName `
        -AuthenticationMethod 'Managed Identity' `
        -AgentPoolName $AgentPoolName `
        -ManagedIdentityObjectId $ManagedServiceIdentity.PrincipalId `
        -CreateConnections `
        -EnableWebApp `
        -GitHubRepoName $repo `
        -BranchName $branch -Verbose
    
    Write-Output "Azure DevOps Project '$AzureDevOpsProjectName' created successfully."
    Write-Output "Managed Identity Id: $($ManagedServiceIdentity.Id)"
    Write-Output "Agent Pool Name: $AgentPoolName"
    
  4. Valideer in Azure DevOps dat:

    • Het project werd gecreëerd
    • De repository is gevuld
    • De pijplijnen zijn gemaakt
  5. Bepaal waar Terraform- en Ansible-code wordt uitgevoerd:

    • Voer code rechtstreeks vanuit GitHub uit.
    • Importeer en voer code uit vanuit opslagplaatsen in uw Azure DevOps-project.

Artefacten configureren voor een nieuwe workloadzone

Voer deze procedure uit nadat het besturingsvlakproject beschikbaar is.

  1. Open PowerShell en kopieer het volgende script.
  2. Werk alle parameterwaarden bij zodat deze overeenkomt met uw omgeving.
  3. Voer het script uit.

Gebruik het volgende script om de artefacten te implementeren die nodig zijn om een nieuwe workloadzone te ondersteunen. Met dit proces maakt u de variabelegroep en de serviceverbinding in Azure DevOps en, optioneel, de service-principal voor de implementatie.

# Azure DevOps Configuration
$AzureDevOpsOrganizationUrl = "https://dev.azure.com/ORGANIZATIONNAME"

# Azure Infrastructure Configuration
$ControlPlaneCode = "MGMT"
$ControlPlaneRegionCode = "SECE"
$Location = "swedencentral"

$ControlPlaneName = "$ControlPlaneCode-$ControlPlaneRegionCode-DEP01"

$ManagedIdentityName = "$ControlPlaneName"
$MSIResourceGroupName = "SDAF-MSIs"

$AzureDevOpsProjectName = "SDAF-" + $ControlPlaneCode + "-" + $ControlPlaneRegionCode

$ControlPlaneSubscriptionId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$WorkloadSubscriptionId = "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
$TenantId = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"

$WorkloadCode = "TEST"
$WorkloadRegionCode = "SECE"
$WorkloadZoneCode = $WorkloadCode + "-" + $WorkloadRegionCode + "-SAP01"

Remove-Module SDAFUtilities -ErrorAction SilentlyContinue
# Import required modules
#Repository information
$repo = "Azure/sap-automation"
$branch = "main"

Remove-Module SDAFUtilities -ErrorAction SilentlyContinue
# Import required modules
$url="https://raw.githubusercontent.com/$repo/refs/heads/$branch/deploy/scripts/pwsh/Output/SDAFUtilities/SDAFUtilities.psm1"

Write-Host "Downloading SDAFUtilities module from $url" -ForegroundColor Green

Invoke-WebRequest -Uri $url -OutFile "SDAFUtilities.psm1"
Unblock-File -Path ".\SDAFUtilities.psm1"

Import-Module ".\SDAFUtilities.psm1"

# Get Managed Identity
$ManagedServiceIdentity = Get-SDAFUserAssignedIdentity `
    -ManagedIdentityName $ManagedIdentityName `
    -ResourceGroupName $MSIResourceGroupName `
    -SubscriptionId $ControlPlaneSubscriptionId `
    -Verbose
Write-Output "Managed Identity Id: $($ManagedServiceIdentity.Id)"

New-SDAFADOWorkloadZone `
    -AdoOrganization $AzureDevOpsOrganizationUrl `
    -AdoProject $AzureDevOpsProjectName `
    -TenantId $TenantId `
    -ControlPlaneCode $ControlPlaneCode `
    -WorkloadZoneCode $WorkloadZoneCode `
    -WorkloadZoneSubscriptionId $WorkloadSubscriptionId `
    -AuthenticationMethod 'Managed Identity' `
    -ManagedIdentityObjectId $ManagedServiceIdentity.PrincipalId `
    -ManagedIdentityId $ManagedServiceIdentity.IdentityId `
    -ControlPlaneSubscriptionId $ControlPlaneSubscriptionId `
    -CreateConnections `
    -Verbose

Controleer in Azure DevOps of de variabelegroep en serviceverbinding voor de werkbelastingzone zijn gemaakt.

Een voorbeeldconfiguratie voor het besturingsvlak maken

Als u een eerste configuratie van het besturingsvlak wilt genereren, voert u de pijplijn Sample Deployer Configuration uit.

  1. Open de pijplijn in Azure DevOps en selecteer Uitvoeren.
  2. Selecteer de juiste Azure-regio.
  3. Stel optionele onderdeelvlagmen in, zoals Azure Firewall, Azure Bastion en Configuration App Service.
  4. Controleer of de gegenereerde voorbeeldbestanden zijn toegevoegd aan uw configuratieopslagplaats.

Handmatige configuratie van Azure DevOps Services voor SAP Deployment Automation Framework

Gebruik dit pad als u projectassets handmatig wilt maken en configureren in plaats van de automatiseringsscripts te gebruiken.

Een nieuw project maken

  1. Open Azure DevOps.

  2. Selecteer Nieuw project en voer projectdetails in.

    Het project bevat Azure-opslagplaatsen en Azure Pipelines voor implementatieactiviteiten.

  3. Als u Nieuw project niet ziet, controleert u of u gemachtigd bent om projecten in de organisatie te maken.

  4. Noteer de project-URL. U gebruikt deze URL in De zelf-hostende Azure DevOps Services-agent handmatig configureren.

De opslagplaats importeren

  1. Ga naar Opslagplaatsen en selecteer Een opslagplaats importeren.
  2. Importeer de sap-automation-bootstrap-opslagplaats.
  3. Als het importeren mislukt, gaat u verder met het maken van de opslagplaats voor handmatig importeren en de inhoud van de opslagplaats handmatig importeren met behulp van een lokale kloon.

Zie Een opslagplaats importeren voor meer informatie.

De opslagplaats maken voor handmatig importeren

Voer deze stap alleen uit als direct importeren niet beschikbaar is.

  1. In Opslagplaatsen, onder Project-instellingen, selecteer Maken.
  2. Selecteer opslagplaatstype Git.
  3. Voer een naam in voor de opslagplaats, zoals SAP-configuratieopslagplaats.

De opslagplaats klonen

  1. Selecteer Clone in Repository bestanden.

  2. Kloon de opslagplaats naar een lokale map.

    Schermopname van Azure DevOps met een opslagplaats die gereed is voor klonen.

Zie Een opslagplaats klonen voor meer informatie.

De inhoud van de opslagplaats handmatig importeren met behulp van een lokale kloon

  1. Download sap-automation-samples als een .zip bestand.

  2. Pak het archief uit en kopieer de inhoud naar de basisdirectory van uw lokale kloon.

  3. Open de lokale map in Visual Studio Code en controleer of er openstaande wijzigingen in bronbeheer zijn.

    Schermopname van Visual Studio Code met wijzigingen in broncodebeheer die in behandeling zijn nadat bestanden zijn gekopieerd.

  4. Voer de geïmporteerde inhoud door, bijvoorbeeld met bericht Importeren vanuit GitHub.

  5. Selecteer Wijzigingen synchroniseren om wijzigingen terug te pushen naar Azure-opslagplaatsen.

De bron voor de Terraform- en Ansible-code kiezen

U kunt de SAP Deployment Automation Framework-code rechtstreeks vanuit GitHub uitvoeren of lokaal importeren.

De code uitvoeren vanuit een lokale opslagplaats

Als u de SAP Deployment Automation Framework-code wilt uitvoeren vanuit het lokale Azure DevOps-project, moet u een afzonderlijke codeopslagplaats en een configuratieopslagplaats maken in het Azure DevOps-project:

De code rechtstreeks vanuit GitHub uitvoeren

Als u de code rechtstreeks vanuit GitHub wilt uitvoeren, moet u referenties opgeven voor Azure DevOps om de inhoud uit GitHub te kunnen ophalen.

De GitHub-serviceverbinding maken

Als u de code wilt ophalen uit GitHub, hebt u een GitHub-serviceverbinding nodig. Zie Serviceverbindingen beheren voor meer informatie.

  1. Ga in Azure DevOps naar Project Settings>Pipelines>Service-verbindingen.

    Schermopname van het maken van een serviceverbinding voor GitHub in Azure DevOps.

  2. Selecteer GitHub als serviceverbindingstype.

  3. Selecteer Azure Pipelines in OAuth-configuratie.

  4. Selecteer Autoriseren en aanmelden bij GitHub.

  5. Voer een verbindingsnaam in, bijvoorbeeld SDAF-verbinding met GitHub.

  6. Selecteer Toegang verlenen aan alle pijplijnen.

  7. Selecteer Opslaan.

Een app-registratie instellen voor de web-app (optioneel)

Het Automation-framework kan een web-app inrichten als onderdeel van het besturingsvlak. Als u de web-app wilt gebruiken, maakt u eerst een app-registratie.

Open een Azure Cloud Shell en voer vervolgens de volgende opdrachten uit voor uw shell-omgeving:

Vervang MGMT indien nodig door uw omgeving.

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

app_registration_client_secret=$(az ad app credential reset --id $TF_VAR_app_registration_app_id --append --query "password" -o tsv)

echo "Store app_registration_client_secret in a secure location such as Azure Key Vault or an Azure DevOps secret variable. Don't store it in plain text files or source control."

rm manifest.json

Sla de app-registratie-id en gegenereerd clientgeheim op een veilige locatie op, zoals Azure Key Vault of Azure DevOps-geheime variabelen. Sla inloggegevens niet op in platte tekstbestanden, schermopnamen of versiebeheersystemen.

Azure Pipelines maken

Azure Pipelines worden geïmplementeerd als YAML-bestanden in de opslagplaats. Maak elke pijplijn op basis van het bijbehorende YAML-pad.

  1. Ga in Azure DevOps naar Pijplijnen en selecteer Nieuwe pijplijn.
  2. Selecteer Git voor Azure-opslagplaatsen.
  3. Selecteer de hoofdopslagplaats (dezelfde naam als het project).
  4. Selecteer Bestaand Azure Pipelines YAML-bestand.
  5. Selecteer voor elke pijplijn in de volgende tabel het YAML-pad, sla de pijplijn op en wijzig de naam ervan in de weergegeven weergavenaam.
Pipeline YAML-pad weergavenaam
Uitrol van controlevlak pipelines/01-deploy-control-plane.yml Uitrol van controlevlak
Implementatie van SAP-workloadzone pipelines/02-sap-workload-zone.yml Implementatie van SAP-workloadzone
SAP-systeemimplementatie (infrastructuur) pipelines/03-sap-system-deployment.yml SAP-systeemimplementatie (infrastructuur)
SAP-softwareverwerving deploy/pipelines/04-sap-software-download.yml SAP-softwareverwerving
SAP-configuratie en software-installatie pipelines/05-DB-and-SAP-installation.yml SAP-configuratie en software-installatie
Implementatie verwijderen pipelines/10-remover-terraform.yml Implementatie verwijderen
Implementatie verwijderen met Behulp van Azure Resource Manager pipelines/11-remover-arm-fallback.yml Deployment verwijderen met gebruik van ARM-processor
Verwijdering van controlevlak pipelines/12-remove-control-plane.yml Verwijdering van controlevlak
Updater van opslagplaats pipelines/20-update-ado-repository.yml Updater van opslagplaats

De opslagplaats-updater-pijplijn werkt uw Azure DevOps-opslagplaats bij wanneer u wijzigingen van sap-automation wilt toepassen.

Opmerking

Gebruik de implementatieverwijdering met behulp van de Azure Resource Manager-pijplijn alleen als laatste redmiddel. Het verwijderen van alleen resourcegroepen kan restanten achterlaten die herimplementaties compliceren.

De opschoontaak importeren vanuit Visual Studio Marketplace

De pijplijnen gebruiken een aangepaste taak om opschoonactiviteiten uit te voeren na de implementatie. U kunt de aangepaste taak installeren vanuit Post Build Cleanup. Installeer het in je Azure DevOps-organisatie voordat je de pipelines uitvoert.

Voorbereidingen voor een zelf-gehoste agent

  1. Maak een agentgroep door naar Organisatie-instellingen te gaan. Selecteer in de sectie PijplijnenAgentgroepen>. Selecteer Zelf-hostend als het pooltype. Geef de pool een naam die past bij de omgeving van het besturingsvlak. Gebruik bijvoorbeeld MGMT-WEEU-POOL. Zorg ervoor dat toegangsmachtigingen verlenen aan alle pijplijnen is geselecteerd en selecteer Maken om de pool te maken.

  2. Meld u aan met het gebruikersaccount dat u wilt gebruiken in uw Azure DevOps-organisatie .

  3. Open uw gebruikersinstellingen op de startpagina en selecteer Persoonlijke toegangstokens.

    Schermopname van Azure DevOps-gebruikersinstellingen waarin de optie voor persoonlijke toegangstokens is gemarkeerd.

  4. Maak een persoonlijk toegangstoken met deze instellingen:

    • Agentpools: Selecteer Lezen en beheren.
    • Build: Selecteer Lezen en uitvoeren.
    • Code: Selecteer Lezen en schrijven.
    • Variabelegroepen: Selecteer Lezen, maken en beheren.

    Sla het token op een veilige locatie op. Sla de tokenwaarde niet op in tekstbestanden zonder opmaak, schermopnamen, terminallogboeken of broncodebeheer.

    Schermopname van de nieuwe pagina voor persoonlijk toegangstoken met de vereiste machtigingen geconfigureerd.

Variabelegroepen configureren

De implementatiepijplijnen zijn geconfigureerd voor het gebruik van een set vooraf gedefinieerde parameterwaarden die zijn gedefinieerd met behulp van variabelegroepen.

Algemene variabelen

Algemene variabelen worden gebruikt door alle implementatiepijplijnen. Ze worden opgeslagen in een variabelegroep met de naam SDAF-General.

Maak een nieuwe variabelegroep met de naam SDAF-General met behulp van de pagina Bibliotheek in de sectie Pijplijnen . Voeg de volgende variabelen toe:

Veranderlijk Waarde Opmerkingen
Implementatie_Configuratie_Pad WERKRUIMTEN Gebruik samples/WORKSPACES voor het testen van de voorbeeldconfiguratie in plaats van WERKRUIMTEN.
Afdeling/Filiaal voornaamste
S-gebruikersnaam <SAP Support user account name>
S-wachtwoord <SAP Support user password> Wijzig het variabeletype in geheim door het vergrendelingspictogram te selecteren.
tf_version 1.6.0 De Terraform-versie die moet worden gebruikt. Zie Terraform downloaden.

Sla de variabelen op.

U kunt ook de Azure DevOps CLI gebruiken om de groepen in te stellen.

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

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 tf_version=1.6.0 --output yaml

Nadat u de groep hebt gemaakt, voegt S-Password u deze toe als een geheime variabele in Azure DevOps in plaats van de waarde op de opdrachtregel door te geven.

Vergeet niet om machtigingen toe te wijzen voor alle pijplijnen met behulp van pijplijnmachtigingen.

Omgevingsspecifieke variabelen

Omdat elke omgeving mogelijk verschillende implementatiereferenties heeft, moet u per omgeving een variabelegroep maken. Gebruik bijvoorbeeld SDAF-MGMT, SDAF-DEVen SDAF-QA.

Maak een nieuwe variabelegroep met de naam SDAF-MGMT voor de omgeving van het besturingsvlak met behulp van de pagina Bibliotheek in de sectie Pijplijnen . Voeg de volgende variabelen toe:

Veranderlijk Waarde Opmerkingen
Vertegenwoordiger Azure Pipelines of de naam van de agentgroep Gebruik de agentgroep die is gemaakt in de voorbereiding voor een zelfgehoste agent.
CP_ARM_CLIENT_ID Service principal application ID
CP_ARM_OBJECT_ID Service principal object ID
CP_ARM_CLIENT_SECRET Service principal password Wijzig het variabeletype in geheim door het vergrendelingspictogram te selecteren.
CP_ARM_SUBSCRIPTION_ID Target subscription ID
CP_ARM_TENANT_ID Tenant ID voor de service-principal
AZURE_CONNECTION_NAME Verbindingsnaam gemaakt in Een serviceverbinding maken
sap_fqdn Volledig gekwalificeerde SAP-domeinnaam, bijvoorbeeld sap.contoso.net Alleen nodig als privé-DNS niet wordt gebruikt.
FENCING_SPN_ID Service principal application ID voor de afschermingsagent Vereist voor implementaties met hoge beschikbaarheid die gebruikmaken van een service-principal voor de fencing-agent.
FENCING_SPN_PWD Service principal password voor de afschermingsagent Vereist voor implementaties met hoge beschikbaarheid die gebruikmaken van een service-principal voor de fencing-agent.
FENCING_SPN_TENANT Service principal tenant ID voor de afschermingsagent Vereist voor implementaties met hoge beschikbaarheid die gebruikmaken van een service-principal voor de fencing-agent.
AAIEN <Personal Access Token> Gebruik het persoonlijke token dat is gemaakt in Voorbereiding voor een zelf-hostende agent en stel het variabeletype in op geheim door het vergrendelingspictogram te selecteren.
POEL <Agent Pool name> De agentgroep die voor deze omgeving moet worden gebruikt.
APP_REGISTRATIE_APP_ID App registration application ID Vereist als de web-app wordt geïmplementeerd.
WEB_APP_KLANTENGEHEIM App registration password Vereist als de web-app wordt geïmplementeerd.
SDAF_GENERAL_GROUP_ID De groeps-id voor de SDAF-General groep De id kan worden opgehaald uit de URL-parameter variableGroupId bij het openen van de variabelegroep met behulp van een browser. Voorbeeld: variableGroupId=8.
WORKLOADZONE_PIPELINE_ID De ID voor de SAP workload zone deployment pijplijn De id kan worden opgehaald uit de URL-parameter definitionId van de pijplijnpagina in Azure DevOps. Voorbeeld: definitionId=31.
SYSTEM_PIPELINE_ID De ID voor de SAP system deployment (infrastructure) pijplijn De id kan worden opgehaald uit de URL-parameter definitionId van de pijplijnpagina in Azure DevOps. Voorbeeld: definitionId=32.

Sla de variabelen op.

Vergeet niet om machtigingen toe te wijzen voor alle pijplijnen met behulp van pijplijnmachtigingen.

Wanneer u de web-app gebruikt, moet u ervoor zorgen dat de buildservice ten minste de machtigingen Bijdragen heeft.

U kunt de kloonfunctionaliteit gebruiken om de volgende omgevingsvariabelegroep te maken. APP_REGISTRATION_APP_ID, WEB_APP_CLIENT_SECRET, SDAF_GENERAL_GROUP_ID, WORKLOADZONE_PIPELINE_ID en SYSTEM_PIPELINE_ID zijn alleen nodig voor de SDAF-MGMT groep.

Een serviceverbinding maken

Als u de Azure-resources wilt verwijderen, hebt u een Azure Resource Manager-serviceverbinding nodig. Zie Serviceverbindingen beheren voor meer informatie.

  1. Ga in Azure DevOps naar Project Settings>Pipelines>Service-verbindingen.

    Schermopname die laat zien hoe u een serviceverbinding maakt in Azure DevOps.

  2. Selecteer Azure Resource Manager en selecteer vervolgens Service-principal (handmatig).

  3. Voer het doelabonnement (meestal het abonnement op het besturingsvlak) en de waarden van de service-principal in.

  4. Selecteer Verifiëren om referenties te valideren.

  5. Voer bijvoorbeeld Connection to MGMT subscriptioneen verbindingsnaam in.

  6. Selecteer Toegang verlenen aan alle pijplijnen.

  7. Selecteer Verifiëren en opslaan.

Zie Een service-principal maken voor meer informatie over het maken van een service-principal.

Opslagplaatsmachtigingen verlenen

De meeste pijplijnen voegen bestanden toe aan de Azure-opslagplaatsen en vereisen daarom pull-machtigingen. Selecteer in projectinstellingen, onder de sectie Opslagplaatsen , het tabblad Beveiliging van de opslagplaats voor broncode en wijs bijdragen-machtigingen toe aan de Build Service.

  1. Ga naarOpslagplaatsen voor >.

  2. Open het tabblad Beveiliging van de bronopslagplaats.

  3. Een bijdragemachtiging verlenen aan Build Service.

    Schermopname van de beveiligingsinstellingen van de Azure DevOps-opslagplaats met machtigingen voor de buildservice.

Implementeer het controlevlak

  1. Als nieuwe pijplijnen niet zichtbaar zijn, selecteert u Recent en keert u terug naar Alles.
  2. Open de implementatiepijplijn van het besturingsvlak .
  3. Voer configuratienamen in voor de implementatie- en SAP-bibliotheek.
  4. Selecteer Voeruit.
  5. Als u de configuratieweb-app wilt implementeren, selecteert u De configuratiewebtoepassing implementeren.

De zelf-hostende Agent van Azure DevOps Services handmatig configureren

Handmatige configuratie is alleen nodig als de Azure DevOps Services-agent niet automatisch wordt geconfigureerd. Controleer of de agentgroep leeg is voordat u verdergaat.

Verbinding maken met de deployer:

  1. Meld u aan bij het Azure-portaal.

  2. Ga naar de resourcegroep die de virtuele machine (VM) van de deployer bevat.

  3. Maak verbinding met de virtuele machine met behulp van Azure Bastion.

  4. De standaardgebruikersnaam is azureadm.

  5. Selecteer persoonlijke SSH-sleutel in Azure Key Vault.

  6. Selecteer het abonnement dat het controlevlak bevat.

  7. Selecteer de sleutelkluis van de deployer.

  8. Selecteer in de lijst met geheimen het geheim dat eindigt op -sshkey.

  9. Maak verbinding met de VM.

Voer het volgende script uit om de implementatie te configureren:

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

Als u de Azure DevOps-agent wilt instellen, start u de deployer opnieuw op, maakt u opnieuw verbinding en voert u het volgende script uit:

cd ~/Azure_SAP_Automated_Deployment/

$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh

Accepteer de licentie en voer, wanneer u om de server-URL wordt gevraagd, de Azure DevOps-project-URL in die u hebt opgenomen in Een nieuw project maken. Voor verificatie selecteert u PAT en voert u de waarde voor het persoonlijke toegangstoken (PAT) in die u hebt gemaakt in Voorbereiding voor een zelf-hostende agent.

Wanneer u hierom wordt gevraagd, voert u de naam van de agentgroep in die u hebt gemaakt in Voorbereiding voor een zelf-hostende agent (bijvoorbeeld MGMT-WEEU-POOL). Accepteer de standaardagentnaam en de standaardnaam van de werkmap. De agent is nu geconfigureerd en wordt gestart.

De webapplicatie voor de control plane implementeren

Als u de deploy the web app infrastructure parameter selecteert wanneer u de pijplijn voor de implementatie van het besturingsvlak uitvoert, wordt de infrastructuur die nodig is voor het hosten van de web-app, geïmplementeerd. De pijplijn Web-app implementeren publiceert de software van de toepassing naar die infrastructuur.

  1. Voer de pijplijn voor de implementatie van het besturingsvlak uit met deploy the web app infrastructure ingeschakeld.
  2. Wacht tot de implementatie is voltooid.
  3. Open het tabblad Extensies en voltooi de configuratie na de implementatie.
  4. App-registratiewaarden bijwerken reply-url .

Als gevolg van de uitvoering van de pipeline voor het besturingsvlak wordt een noodzakelijk deel van de webapp-URL opgeslagen in een variabele genaamd WEBAPP_URL_BASE in uw variabelegroep die specifiek is voor de omgeving. U kunt de URL's van de geregistreerde toepassingsweb-app op elk gewenst moment bijwerken met behulp van de volgende opdracht.

Met deze opdracht wordt de startpagina-URL van de app-registratie bijgewerkt en worden Uniform Resource Identifiers (URI's) omgeleid voor de geïmplementeerde web-app voor het besturingsvlak.

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

Lezer toewijzen aan het abonnementsbereik voor de door het app service-systeem toegewezen beheerde identiteit:

  • Open de App Service-resource.
  • Selecteer Identiteit.
  • Selecteer bij Door het systeem toegewezenAzure-roltoewijzingen>Roltoewijzingen toevoegen.
  • Selecteer het bereik Abonnement en de rol Lezer, selecteer vervolgens Opslaan.

U moet nu de web-app kunnen bezoeken en deze gebruiken om SAP-werkbelastingzones en SAP-systeeminfrastructuur te implementeren.

Volgende stap