Delen via


SAP Deployment Automation Framework gebruiken vanuit Azure DevOps Services

Azure DevOps stroomlijnt het implementatieproces door pijplijnen te bieden 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 en Azure Pipelines te gebruiken om de infrastructuur en de SAP-toepassing te implementeren en configureren.

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.

Azure DevOps Services configureren voor SAP Deployment Automation Framework

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

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.

Azure DevOps Services-artefacten configureren voor een nieuwe workloadzone

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.

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_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
    

Een voorbeeldconfiguratie voor het besturingsvlak maken

U kunt de Create Sample Deployer Configuration pijplijn uitvoeren om een voorbeeldconfiguratie voor het besturingsvlak te maken. Wanneer deze wordt uitgevoerd, kiest u de juiste Azure-regio. U kunt ook bepalen of u Azure Firewall en Azure Bastion wilt implementeren.

Handmatige configuratie van Azure DevOps Services voor SAP Deployment Automation Framework

U kunt Azure DevOps Services handmatig configureren voor SAP Deployment Automation Framework.

Een nieuw project maken

U kunt Azure-opslagplaatsen gebruiken om de code op te slaan vanuit de Sap-automation GitHub-opslagplaats en de omgevingsconfiguratiebestanden.

Open Azure DevOps en maak een nieuw project door Nieuw project te selecteren en de projectdetails in te voeren. Het project bevat de opslagplaats voor broncodebeheer van Azure-opslagplaatsen en Azure Pipelines voor het uitvoeren van implementatieactiviteiten.

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

Noteer de URL van het project.

De opslagplaats importeren

Importeer eerst de GitHub-opslagplaats sap Deployment Automation Framework bootstrap in Azure-opslagplaatsen.

Ga naar de sectie Opslagplaatsen en selecteer Een opslagplaats importeren. Importeer de https://github.com/Azure/sap-automation-bootstrap.git opslagplaats in Azure DevOps. Zie Een opslagplaats importeren voor meer informatie.

Als u een opslagplaats niet kunt importeren, kunt u de opslagplaats handmatig maken. Vervolgens kunt u de inhoud importeren uit de GitHub Bootstrap-opslagplaats voor SAP Deployment Automation Framework.

De opslagplaats maken voor handmatig importeren

Voer deze stap alleen uit als u de opslagplaats niet rechtstreeks kunt importeren.

Als u de opslagplaats voor werkruimten wilt maken, selecteert u in de sectie Opslagplaatsen onder Project-instellingen de optie Maken.

Kies de opslagplaats, voer Git in en geef een naam op voor de opslagplaats. Gebruik bijvoorbeeld sap-configuratieopslagplaats.

De opslagplaats klonen

Als u een uitgebreidere bewerkingsfunctie van de inhoud wilt bieden, kunt u de opslagplaats klonen naar een lokale map en de inhoud lokaal bewerken.

Als u de opslagplaats wilt klonen naar een lokale map, selecteert u Klonen in de sectie Opslagplaatsen van de portal onder Bestanden. Zie Een opslagplaats klonen voor meer informatie.

Screenshot that shows how to clone the repository.

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

U kunt de inhoud ook handmatig downloaden uit de SAP Deployment Automation Framework-opslagplaats en deze toevoegen aan uw lokale kloon van de Azure DevOps-opslagplaats.

Ga naar de https://github.com/Azure/SAP-automation-samples opslagplaats en download de inhoud van de opslagplaats als een ZIP-bestand. Selecteer Code en kies ZIP downloaden.

Kopieer de inhoud van het ZIP-bestand naar de hoofdmap van uw lokale kloon.

Open de lokale map in Visual Studio Code. U ziet dat wijzigingen moeten worden gesynchroniseerd met de indicator door het bronbeheerpictogram dat hier wordt weergegeven.

Screenshot that shows that source code is changed.

Selecteer het broncodebeheerpictogram en geef een bericht op over de wijziging. Voer bijvoorbeeld Importeren uit GitHub in en selecteer Ctrl+Enter om de wijzigingen door te voeren. Selecteer vervolgens Wijzigingen synchroniseren om de wijzigingen terug te synchroniseren naar de opslagplaats.

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:

  • Naam van configuratieopslagplaats: Same as the DevOps Project name. Bron is https://github.com/Azure/sap-automation-bootstrap.git.
  • Naam van codeopslagplaats: sap-automation. Bron is https://github.com/Azure/sap-automation.git.
  • Naam van voorbeeld- en sjabloonopslagplaats: sap-samples. Bron is https://github.com/Azure/sap-automation-samples.git.

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.

Als u de serviceverbinding wilt maken, gaat u naar Project Instellingen en gaat u in de sectie Pijplijnen naar Serviceverbindingen.

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

Selecteer GitHub als serviceverbindingstype. Selecteer Azure Pipelines in de vervolgkeuzelijst OAuth-configuratie .

Selecteer Autoriseren om u aan te melden bij GitHub.

Voer een serviceverbindingsnaam in, bijvoorbeeld SDAF-Verbinding maken ion naar GitHub. Zorg ervoor dat het selectievakje Toegang verlenen aan alle pijplijnen is ingeschakeld. Selecteer Opslaan om de serviceverbinding op te slaan.

De web-app instellen

Het automatiseringsframework richt eventueel een web-app in als onderdeel van het besturingsvlak om u te helpen met de SAP-werkbelastingzone en systeemconfiguratiebestanden. Als u de web-app wilt gebruiken, moet u eerst een app-registratie maken voor verificatiedoeleinden. Open Azure Cloud Shell en voer de volgende opdrachten uit.

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

az ad app credential reset --id $TF_VAR_app_registration_app_id --append --query "password"

rm manifest.json

Sla de app-registratie-id en wachtwoordwaarden op voor later gebruik.

Azure Pipelines maken

Azure Pipelines worden geïmplementeerd als YAML-bestanden. Ze worden opgeslagen in de map deploy/pipelines in de opslagplaats.

Pijplijn voor implementatie van besturingsvlak

Maak de implementatiepijplijn voor het besturingsvlak. Selecteer In de sectie Pijplijnen de optie Nieuwe pijplijn. Selecteer Azure Repos Git als de bron voor uw code. Configureer uw pijplijn voor het gebruik van een bestaand YAML-bestand voor Azure Pipelines. Geef de pijplijn op met de volgende instellingen:

Instelling Weergegeven als
Opslagplaats 'Hoofdopslagplaats' (hetzelfde als projectnaam)
Vertakking main
Pad pipelines/01-deploy-control-plane.yml
Naam Implementatie van besturingsvlak

Sla de pijplijn op. Als u Opslaan wilt zien, selecteert u de dubbele punthaak naast Uitvoeren. Ga naar de sectie Pijplijnen en selecteer de pijplijn. Kies Naam wijzigen/Verplaatsen in het menu met het beletselteken aan de rechterkant en wijzig de naam van de pijplijn als implementatie van het besturingsvlak.

Implementatiepijplijn voor SAP-workloadzones

Maak de pijplijn voor de SAP-workloadzone. Selecteer In de sectie Pijplijnen de optie Nieuwe pijplijn. Selecteer Azure Repos Git als de bron voor uw code. Configureer uw pijplijn voor het gebruik van een bestaand YAML-bestand voor Azure Pipelines. Geef de pijplijn op met de volgende instellingen:

Instelling Weergegeven als
Opslagplaats 'Hoofdopslagplaats' (hetzelfde als projectnaam)
Vertakking main
Pad pipelines/02-sap-workload-zone.yml
Naam Implementatie van SAP-workloadzone

Sla de pijplijn op. Als u Opslaan wilt zien, selecteert u de dubbele punthaak naast Uitvoeren. Ga naar de sectie Pijplijnen en selecteer de pijplijn. Kies Naam wijzigen/Verplaatsen in het beletseltekenmenu aan de rechterkant en wijzig de naam van de pijplijn als implementatie van de SAP-workloadzone.

Pijplijn voor SAP-systeemimplementatie

Maak de SAP-systeemimplementatiepijplijn. Selecteer In de sectie Pijplijnen de optie Nieuwe pijplijn. Selecteer Azure Repos Git als de bron voor uw code. Configureer uw pijplijn voor het gebruik van een bestaand YAML-bestand voor Azure Pipelines. Geef de pijplijn op met de volgende instellingen:

Instelling Weergegeven als
Opslagplaats 'Hoofdopslagplaats' (hetzelfde als projectnaam)
Vertakking main
Pad pipelines/03-sap-system-deployment.yml
Naam SAP-systeemimplementatie (infrastructuur)

Sla de pijplijn op. Als u Opslaan wilt zien, selecteert u de dubbele punthaak naast Uitvoeren. Ga naar de sectie Pijplijnen en selecteer de pijplijn. Kies Naam wijzigen/Verplaatsen in het beletseltekenmenu aan de rechterkant en wijzig de naam van de pijplijn als SAP-systeemimplementatie (infrastructuur).

SAP-pijplijn voor het verkrijgen van software

Maak de SAP-software-overnamepijplijn. Selecteer In de sectie Pijplijnen de optie Nieuwe pijplijn. Selecteer Azure Repos Git als de bron voor uw code. Configureer uw pijplijn voor het gebruik van een bestaand YAML-bestand voor Azure Pipelines. Geef de pijplijn op met de volgende instellingen:

Instelling Weergegeven als
Opslagplaats 'Hoofdopslagplaats' (hetzelfde als projectnaam)
Vertakking main
Pad deploy/pipelines/04-sap-software-download.yml
Naam SAP-softwareverwerving

Sla de pijplijn op. Als u Opslaan wilt zien, selecteert u de dubbele punthaak naast Uitvoeren. Ga naar de sectie Pijplijnen en selecteer de pijplijn. Kies Naam wijzigen/Verplaatsen in het beletseltekenmenu aan de rechterkant en wijzig de naam van de pijplijn als SAP-software-overname.

SAP-configuratie- en software-installatiepijplijn

Maak de SAP-configuratie- en software-installatiepijplijn. Selecteer In de sectie Pijplijnen de optie Nieuwe pijplijn. Selecteer Azure Repos Git als de bron voor uw code. Configureer uw pijplijn voor het gebruik van een bestaand YAML-bestand voor Azure Pipelines. Geef de pijplijn op met de volgende instellingen:

Instelling Weergegeven als
Opslagplaats 'Hoofdopslagplaats' (hetzelfde als projectnaam)
Vertakking main
Pad pipelines/05-DB-and-SAP-installation.yml
Naam Configuratie en SAP-installatie

Sla de pijplijn op. Als u Opslaan wilt zien, selecteert u de dubbele punthaak naast Uitvoeren. Ga naar de sectie Pijplijnen en selecteer de pijplijn. Kies Naam wijzigen/Verplaatsen in het beletseltekenmenu aan de rechterkant en wijzig de naam van de pijplijn als SAP-configuratie en software-installatie.

Implementatieverwijderingspijplijn

Maak de implementatieverwijderingspijplijn. Selecteer In de sectie Pijplijnen de optie Nieuwe pijplijn. Selecteer Azure Repos Git als de bron voor uw code. Configureer uw pijplijn voor het gebruik van een bestaand YAML-bestand voor Azure Pipelines. Geef de pijplijn op met de volgende instellingen:

Instelling Weergegeven als
Opslagplaats 'Hoofdopslagplaats' (hetzelfde als projectnaam)
Vertakking main
Pad pipelines/10-remover-terraform.yml
Naam Implementatie verwijderen

Sla de pijplijn op. Als u Opslaan wilt zien, selecteert u de dubbele punthaak naast Uitvoeren. Ga naar de sectie Pijplijnen en selecteer de pijplijn. Kies Naam wijzigen/Verplaatsen in het menu met het beletselteken aan de rechterkant en wijzig de naam van de pijplijn als implementatieverwijdering.

Pijplijn voor verwijderen van besturingsvlak

Maak de verwijderingspijplijn voor de implementatie van het besturingsvlak. Selecteer In de sectie Pijplijnen de optie Nieuwe pijplijn. Selecteer Azure Repos Git als de bron voor uw code. Configureer uw pijplijn voor het gebruik van een bestaand YAML-bestand voor Azure Pipelines. Geef de pijplijn op met de volgende instellingen:

Instelling Weergegeven als
Opslagplaats 'Hoofdopslagplaats' (hetzelfde als projectnaam)
Vertakking main
Pad pipelines/12-remove-control-plane.yml
Naam Verwijdering van besturingsvlak

Sla de pijplijn op. Als u Opslaan wilt zien, selecteert u de dubbele punthaak naast Uitvoeren. Ga naar de sectie Pijplijnen en selecteer de pijplijn. Kies Naam wijzigen/Verplaatsen in het menu met het beletselteken aan de rechterkant en wijzig de naam van de pijplijn als verwijdering van het besturingsvlak.

Pijplijn voor het verwijderen van implementaties met behulp van Azure Resource Manager

Maak de Azure Resource Manager-pijplijn voor het verwijderen van de implementatie. Selecteer In de sectie Pijplijnen de optie Nieuwe pijplijn. Selecteer Azure Repos Git als de bron voor uw code. Configureer uw pijplijn voor het gebruik van een bestaand YAML-bestand voor Azure Pipelines. Geef de pijplijn op met de volgende instellingen:

Instelling Weergegeven als
Opslagplaats 'Hoofdopslagplaats' (hetzelfde als projectnaam)
Vertakking main
Pad pipelines/11-remover-arm-fallback.yml
Naam Implementatie verwijderen met Behulp van Azure Resource Manager

Sla de pijplijn op. Als u Opslaan wilt zien, selecteert u de dubbele punthaak naast Uitvoeren. Ga naar de sectie Pijplijnen en selecteer de pijplijn. Kies Naam wijzigen/Verplaatsen in het beletseltekenmenu aan de rechterkant en wijzig de naam van de pijplijn als implementatieverwijdering met behulp van ARM-processor.

Notitie

Gebruik deze pijplijn alleen als laatste redmiddel. Als u alleen de resourcegroepen verwijdert, blijven er restanten achter die herimplementaties kunnen bemoeilijken.

Updater-pijplijn voor opslagplaatsen

Maak de updater-pijplijn voor de opslagplaats. Selecteer In de sectie Pijplijnen de optie Nieuwe pijplijn. Selecteer Azure Repos Git als de bron voor uw code. Configureer uw pijplijn voor het gebruik van een bestaand YAML-bestand voor Azure Pipelines. Geef de pijplijn op met de volgende instellingen:

Instelling Weergegeven als
Opslagplaats 'Hoofdopslagplaats' (hetzelfde als projectnaam)
Vertakking main
Pad pipelines/20-update-ado-repository.yml
Naam Updater van opslagplaats

Sla de pijplijn op. Als u Opslaan wilt zien, selecteert u de dubbele punthaak naast Uitvoeren. Ga naar de sectie Pijplijnen en selecteer de pijplijn. Kies Naam wijzigen/Verplaatsen in het menu met het beletselteken aan de rechterkant en wijzig de naam van de pijplijn als updater voor opslagplaatsen.

Deze pijplijn moet worden gebruikt wanneer er een update is in de sap-automation-opslagplaats die u wilt gebruiken.

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 deze in uw Azure DevOps-organisatie voordat u de pijplijnen uitvoert.

Voorbereidingen voor een zelf-hostende agent

  1. Maak een agentgroep door naar Organisatie-Instellingen te gaan. Selecteer in de sectie Pijplijnen de optie Pool toevoegen van agentgroepen>. Selecteer Zelf-hostend als het pooltype. Geef de pool een naam die moet worden uitgelijnd met 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.

    Diagram that shows the creation of a personal access token.

  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.

      Noteer de gemaakte tokenwaarde.

    Diagram that shows the attributes of the personal access token.

Variabeledefinities

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:

Variabele Weergegeven als Opmerkingen
Deployment_Configuration_Path WERKRUIMTEN Gebruik samples/WORKSPACES voor het testen van de voorbeeldconfiguratie in plaats van WERKRUIMTEN.
Vertakking main
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>"
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

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-DEV en 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:

Variabele Weergegeven als Opmerkingen
Agent Azure Pipelines of de naam van de agentgroep Deze pool wordt in een latere stap gemaakt.
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 Eerder gemaakte verbindingsnaam
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 maximaal beschikbare implementaties die gebruikmaken van een service-principal voor de fencing-agent.
FENCING_SPN_PWD Service principal password voor de afschermingsagent Vereist voor maximaal beschikbare implementaties die gebruikmaken van een service-principal voor de fencing-agent.
FENCING_SPN_TENANT Service principal tenant ID voor de afschermingsagent Vereist voor maximaal beschikbare implementaties die gebruikmaken van een service-principal voor de fencing-agent.
PAT <Personal Access Token> Gebruik het persoonlijke token dat in de vorige stap is gedefinieerd.
ZWEMBAD <Agent Pool name> De agentgroep die voor deze omgeving moet worden gebruikt.
APP_REGISTRATION_APP_ID App registration application ID Vereist als de web-app wordt geïmplementeerd.
WEB_APP_CLIENT_SECRET App registration password Vereist als de web-app wordt geïmplementeerd.
SDAF_GENERAL_GROUP_ID De groeps-id voor de groep SDAF-General 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.

Als u de serviceverbinding wilt maken, gaat u naar Project Instellingen. Selecteer serviceverbindingen in de sectie Pijplijnen.

Screenshot that shows how to create a service connection.

Selecteer Azure Resource Manager als het serviceverbindingstype en de service-principal (handmatig) als verificatiemethode. Voer het doelabonnement in. Dit is doorgaans het abonnement op het besturingsvlak. Voer de details van de service-principal in. Selecteer Verifiëren om de referenties te valideren. Zie Een service-principal maken voor meer informatie over het maken van een service-principal.

Voer bijvoorbeeld Connection to MGMT subscriptioneen serviceverbindingsnaam in. Zorg ervoor dat het selectievakje Toegang verlenen aan alle pijplijnen is ingeschakeld. Selecteer Verifiëren en opslaan om de serviceverbinding op te slaan .

Bevoegdheden

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

Screenshot that shows repository permissions.

Het besturingsvlak implementeren

Nieuw gemaakte pijplijnen zijn mogelijk niet zichtbaar in de standaardweergave. Selecteer het tabblad Recent en ga terug naar Alle tabbladen om de nieuwe pijplijnen weer te geven.

Selecteer de implementatiepijplijn van het besturingsvlak en voer de configuratienamen in voor de implementatiefunctie en de SAP-bibliotheek. Selecteer Uitvoeren om het besturingsvlak te implementeren. Schakel het selectievakje De configuratiewebtoepassing implementeren in als u de configuratieweb-app wilt instellen.

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 de Azure-portal.

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

  3. Verbinding maken naar 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 besturingsvlak 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 virtuele machine.

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

Start de deployer opnieuw op, maak opnieuw verbinding en voer het volgende script uit om de Azure DevOps-agent in te stellen:

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 URL in die u hebt vastgelegd toen u het Azure DevOps-project maakte. Voor verificatie selecteert u PAT en voert u de tokenwaarde uit de vorige stap in.

Wanneer u hierom wordt gevraagd, voert u de naam van de groep van toepassingen in die u in de vorige stap hebt gemaakt. Accepteer de standaardagentnaam en de standaardnaam van de werkmap. De agent is nu geconfigureerd en wordt gestart.

De webtoepassing voor het besturingsvlak 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.

Wacht tot de implementatie is voltooid. Selecteer het tabblad Extensies en volg de instructies om de configuratie te voltooien. Werk de reply-url waarden voor de app-registratie bij.

Als gevolg van het uitvoeren van de pijplijn voor het besturingsvlak, wordt een deel van de URL van de web-app die nodig is opgeslagen in een variabele met de naam WEBAPP_URL_BASE in uw omgevingsspecifieke variabelegroep. U kunt de URL's van de geregistreerde toepassingsweb-app op elk gewenst moment bijwerken met behulp van de volgende opdracht.

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

U moet ook lezermachtigingen verlenen aan de door het app service-systeem toegewezen beheerde identiteit. Ga naar de App Service-resource. Selecteer Identiteit aan de linkerkant. Selecteer op het tabblad Toegewezen systeem de optie Azure-roltoewijzingen>Roltoewijzing toevoegen. Selecteer Abonnement als bereik en Lezer als de rol. Selecteer vervolgens Opslaan. Zonder deze stap werkt de vervolgkeuzelijst van de web-app niet.

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

Volgende stap