Použití architektury SAP Deployment Automation Framework z Azure DevOps Services

Azure DevOps zjednodušuje proces nasazení tím, že poskytuje kanály, které můžete spustit pro nasazení infrastruktury a aktivity konfigurace a instalace SAP.

Azure Repos můžete použít k ukládání konfiguračních souborů a použití Azure Pipelines k nasazení a konfiguraci infrastruktury a aplikace SAP.

Registrace ke službě Azure DevOps Services

Pokud chcete používat Azure DevOps Services, potřebujete organizaci Azure DevOps. Organizace se používá k propojení skupin souvisejících projektů. Pomocí pracovního nebo školního účtu můžete automaticky připojit vaši organizaci k vašemu ID Microsoft Entra. Pokud chcete vytvořit účet, otevřete Azure DevOps a přihlaste se nebo vytvořte nový účet.

Konfigurace služby Azure DevOps Services pro architekturu SAP Deployment Automation Framework

Pomocí následujícího skriptu můžete provést základní instalaci služby Azure DevOps Services pro architekturu SAP Deployment Automation Framework.

Otevřete prostředí PowerShell ISE a zkopírujte následující skript a aktualizujte parametry tak, aby odpovídaly vašemu prostředí.

    $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 $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 login --organization $Env:ADO_Organization
        }
        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
    }
    

Spusťte skript a postupujte podle pokynů. Skript otevře okna prohlížeče pro ověřování a pro provádění úkolů v projektu Azure DevOps.

Můžete zvolit, jestli chcete kód spustit přímo z GitHubu, nebo můžete importovat kopii kódu do projektu Azure DevOps.

Pokud chcete ověřit, že byl projekt vytvořen, přejděte na portál Azure DevOps a vyberte projekt. Ujistěte se, že se úložiště naplnilo a že se kanály vytvořily.

Důležité

Na místní pracovní stanici spusťte následující kroky. Spuštěním příkazu se také ujistěte, že máte nainstalované nejnovější Rozhraní příkazového az upgrade řádku Azure.

Konfigurace artefaktů Azure DevOps Services pro novou zónu úloh

Pomocí následujícího skriptu nasaďte artefakty potřebné k podpoře nové zóny úloh. Tento proces vytvoří skupinu proměnných a připojení služby v Azure DevOps a volitelně instanční objekt nasazení.

Otevřete prostředí PowerShell ISE a zkopírujte následující skript a aktualizujte parametry tak, aby odpovídaly vašemu prostředí.

    $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
        }
    }
    
    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/main/deploy/scripts/New-SDAFDevopsWorkloadZone.ps1 -OutFile .\New-SDAFDevopsWorkloadZone.ps1 ; .\New-SDAFDevopsWorkloadZone.ps1
    

Vytvoření ukázkové konfigurace řídicí roviny

Kanál můžete spustit Create Sample Deployer Configuration a vytvořit ukázkovou konfiguraci řídicí roviny. Po spuštění zvolte příslušnou oblast Azure. Můžete také řídit, jestli chcete nasadit Azure Firewall a Azure Bastion.

Ruční konfigurace služby Azure DevOps Services pro architekturu SAP Deployment Automation Framework

Azure DevOps Services můžete ručně nakonfigurovat pro architekturu SAP Deployment Automation Framework.

Vytvoření nového projektu

Azure Repos můžete použít k uložení kódu z úložiště GitHubu pro automatizaci sap a konfiguračních souborů prostředí.

Otevřete Azure DevOps a vytvořte nový projekt tak, že vyberete Nový projekt a zadáte podrobnosti o projektu. Projekt obsahuje úložiště správy zdrojového kódu Azure Repos a Azure Pipelines pro provádění aktivit nasazení.

Pokud nový projekt nevidíte, ujistěte se, že máte oprávnění k vytváření nových projektů v organizaci.

Zaznamenejte adresu URL projektu.

Import úložiště

Začněte importem úložiště Bootstrap GitHubu pro nasazení SAP Deployment Framework do Azure Repos.

Přejděte do části Úložiště a vyberte Importovat úložiště. Importujte https://github.com/Azure/sap-automation-bootstrap.git úložiště do Azure DevOps. Další informace najdete v tématu Import úložiště.

Pokud nemůžete importovat úložiště, můžete úložiště vytvořit ručně. Pak do něj můžete importovat obsah z úložiště GitHub Bootstrap architektury SAP Deployment Automation Framework.

Vytvoření úložiště pro ruční import

Tento krok proveďte pouze v případě, že nemůžete importovat úložiště přímo.

Pokud chcete vytvořit úložiště pracovních prostorů , vyberte v části Úložiště v části Nastavení projektu možnost Vytvořit.

Zvolte úložiště, zadejte Git a zadejte název úložiště. Použijte například úložiště konfigurace SAP.

Klonování úložiště

Pokud chcete poskytnout komplexnější možnosti úprav obsahu, můžete úložiště naklonovat do místní složky a upravit obsah místně.

Pokud chcete úložiště naklonovat do místní složky, vyberte v části Úložiště na portálu v části Soubory možnost Klonovat. Další informace najdete v tématu Klonování úložiště.

Screenshot that shows how to clone the repository.

Ruční import obsahu úložiště pomocí místního klonování

Můžete také ručně stáhnout obsah z úložiště SAP Deployment Automation Framework a přidat ho do místního klonu úložiště Azure DevOps.

Přejděte do https://github.com/Azure/SAP-automation-samples úložiště a stáhněte obsah úložiště jako soubor .zip. Vyberte Kód a zvolte Stáhnout ZIP.

Zkopírujte obsah ze souboru .zip do kořenové složky místního klonu.

Otevřete místní složku v editoru Visual Studio Code. Měli byste vidět, že změny musí být synchronizovány indikátorem podle ikony správy zdrojového kódu, která je zde zobrazena.

Screenshot that shows that source code is changed.

Vyberte ikonu správy zdrojového kódu a zadejte zprávu o změně. Zadejte například Import z GitHubu a stisknutím kombinace kláves Ctrl+Enter potvrďte změny. Potom vyberte Synchronizovat změny , aby se změny synchronizovaly zpět do úložiště.

Volba zdroje pro terraform a kód Ansible

Kód SAP Deployment Automation Framework můžete spustit přímo z GitHubu nebo ho můžete importovat místně.

Spuštění kódu z místního úložiště

Pokud chcete spustit kód SAP Deployment Automation Framework z místního projektu Azure DevOps, musíte v projektu Azure DevOps vytvořit samostatné úložiště kódu a úložiště konfigurace:

  • Název úložiště konfigurace: Same as the DevOps Project name. Zdroj je https://github.com/Azure/sap-automation-bootstrap.git.
  • Název úložiště kódu: sap-automation. Zdroj je https://github.com/Azure/sap-automation.git.
  • Název ukázkového úložiště a úložiště šablon: sap-samples. Zdroj je https://github.com/Azure/sap-automation-samples.git.

Spuštění kódu přímo z GitHubu

Pokud chcete kód spustit přímo z GitHubu, musíte zadat přihlašovací údaje pro Azure DevOps, aby bylo možné načíst obsah z GitHubu.

Vytvoření připojení ke službě GitHub

Pokud chcete načíst kód z GitHubu, potřebujete připojení ke službě GitHub. Další informace najdete v tématu Správa připojení služeb.

Pokud chcete vytvořit připojení služby, přejděte na Project Nastavení a v části Pipelines přejděte na Připojení služby.

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

Jako typ připojení služby vyberte GitHub . V rozevíracím seznamu Konfigurace OAuth vyberte Azure Pipelines.

Výběrem možnosti Autorizovat se přihlaste k GitHubu.

Zadejte název připojení služby, například SDAF Připojení ion do GitHubu. Ujistěte se, že je zaškrtnuté políčko Udělit přístup všem kanálům . Výběrem možnosti Uložit uložte připojení služby.

Nastavení webové aplikace

Architektura automatizace volitelně zřídí webovou aplikaci jako součást řídicí roviny, která pomáhá se zónami úloh SAP a konfiguračními soubory systému. Pokud chcete webovou aplikaci použít, musíte nejprve vytvořit registraci aplikace pro účely ověřování. Otevřete Azure Cloud Shell a spusťte následující příkazy.

Podle potřeby nahraďte MGMT prostředím.

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

Uložte ID registrace aplikace a hodnoty hesla pro pozdější použití.

Vytvoření Azure Pipelines

Azure Pipelines se implementují jako soubory YAML. Jsou uložené ve složce deploy/pipelines v úložišti.

Kanál nasazení řídicí roviny

Vytvořte kanál nasazení řídicí roviny. V části Kanály vyberte Nový kanál. Jako zdroj kódu vyberte Git Azure Repos. Nakonfigurujte kanál tak, aby používal existující soubor YAML služby Azure Pipelines. Zadejte kanál s následujícím nastavením:

Nastavení Hodnota
Úložiště Kořenové úložiště (stejné jako název projektu)
Pobočka main
Cesta pipelines/01-deploy-control-plane.yml
Název Nasazení řídicí roviny

Uložte kanál. Pokud chcete zobrazit možnost Uložit, vyberte dvojitou šipku vedle možnosti Spustit. Přejděte do části Kanály a vyberte kanál. V nabídce se třemi tečky na pravé straně zvolte Přejmenovat nebo přesunout a přejmenujte kanál jako nasazení roviny řízení.

Kanál nasazení zóny úloh SAP

Vytvořte kanál zóny úloh SAP. V části Kanály vyberte Nový kanál. Jako zdroj kódu vyberte Git Azure Repos. Nakonfigurujte kanál tak, aby používal existující soubor YAML služby Azure Pipelines. Zadejte kanál s následujícím nastavením:

Nastavení Hodnota
Úložiště Kořenové úložiště (stejné jako název projektu)
Pobočka main
Cesta pipelines/02-sap-workload-zone.yml
Název Nasazení zóny úloh SAP

Uložte kanál. Pokud chcete zobrazit možnost Uložit, vyberte dvojitou šipku vedle možnosti Spustit. Přejděte do části Kanály a vyberte kanál. V nabídce se třemi tečky na pravé straně zvolte Přejmenovat nebo přesunout a přejmenujte kanál jako nasazení zóny úloh SAP.

Kanál nasazení systému SAP

Vytvořte kanál nasazení systému SAP. V části Kanály vyberte Nový kanál. Jako zdroj kódu vyberte Git Azure Repos. Nakonfigurujte kanál tak, aby používal existující soubor YAML služby Azure Pipelines. Zadejte kanál s následujícím nastavením:

Nastavení Hodnota
Úložiště Kořenové úložiště (stejné jako název projektu)
Pobočka main
Cesta pipelines/03-sap-system-deployment.yml
Název Nasazení systému SAP (infrastruktura)

Uložte kanál. Pokud chcete zobrazit možnost Uložit, vyberte dvojitou šipku vedle možnosti Spustit. Přejděte do části Kanály a vyberte kanál. V nabídce se třemi tečky na pravé straně zvolte Přejmenovat nebo přesunout a přejmenujte kanál jako nasazení systému SAP (infrastruktura).

Kanál získání softwaru SAP

Vytvořte kanál získávání softwaru SAP. V části Kanály vyberte Nový kanál. Jako zdroj kódu vyberte Git Azure Repos. Nakonfigurujte kanál tak, aby používal existující soubor YAML služby Azure Pipelines. Zadejte kanál s následujícím nastavením:

Nastavení Hodnota
Úložiště Kořenové úložiště (stejné jako název projektu)
Pobočka main
Cesta deploy/pipelines/04-sap-software-download.yml
Název Získání softwaru SAP

Uložte kanál. Pokud chcete zobrazit možnost Uložit, vyberte dvojitou šipku vedle možnosti Spustit. Přejděte do části Kanály a vyberte kanál. V nabídce se třemi tečky na pravé straně zvolte Přejmenovat/Přesunout a kanál přejmenujte na získání softwaru SAP.

Kanál konfigurace SAP a instalace softwaru

Vytvořte kanál konfigurace a instalace softwaru SAP. V části Kanály vyberte Nový kanál. Jako zdroj kódu vyberte Git Azure Repos. Nakonfigurujte kanál tak, aby používal existující soubor YAML služby Azure Pipelines. Zadejte kanál s následujícím nastavením:

Nastavení Hodnota
Úložiště Kořenové úložiště (stejné jako název projektu)
Pobočka main
Cesta pipelines/05-DB-and-SAP-installation.yml
Název Konfigurace a instalace SAP

Uložte kanál. Pokud chcete zobrazit možnost Uložit, vyberte dvojitou šipku vedle možnosti Spustit. Přejděte do části Kanály a vyberte kanál. V nabídce se třemi tečky na pravé straně zvolte Přejmenovat nebo přesunout a kanál přejmenujte jako konfiguraci a instalaci softwaru SAP.

Kanál odebrání nasazení

Vytvořte kanál pro odebrání nasazení. V části Kanály vyberte Nový kanál. Jako zdroj kódu vyberte Git Azure Repos. Nakonfigurujte kanál tak, aby používal existující soubor YAML služby Azure Pipelines. Zadejte kanál s následujícím nastavením:

Nastavení Hodnota
Úložiště Kořenové úložiště (stejné jako název projektu)
Pobočka main
Cesta pipelines/10-remover-terraform.yml
Název Odebrání nasazení

Uložte kanál. Pokud chcete zobrazit možnost Uložit, vyberte dvojitou šipku vedle možnosti Spustit. Přejděte do části Kanály a vyberte kanál. V nabídce se třemi tečky na pravé straně zvolte Přejmenovat nebo přesunout a kanál přejmenujte jako odebrání nasazení.

Kanál odebrání řídicí roviny

Vytvořte kanál pro odebrání řídicí roviny nasazení. V části Kanály vyberte Nový kanál. Jako zdroj kódu vyberte Git Azure Repos. Nakonfigurujte kanál tak, aby používal existující soubor YAML služby Azure Pipelines. Zadejte kanál s následujícím nastavením:

Nastavení Hodnota
Úložiště Kořenové úložiště (stejné jako název projektu)
Pobočka main
Cesta pipelines/12-remove-control-plane.yml
Název Odebrání řídicí roviny

Uložte kanál. Pokud chcete zobrazit možnost Uložit, vyberte dvojitou šipku vedle možnosti Spustit. Přejděte do části Kanály a vyberte kanál. V nabídce se třemi tečky na pravé straně zvolte Přejmenovat nebo přesunout a kanál přejmenujte na odebrání roviny řízení.

Kanál odebrání nasazení pomocí Azure Resource Manageru

Vytvořte kanál Azure Resource Manageru pro odebrání nasazení. V části Kanály vyberte Nový kanál. Jako zdroj kódu vyberte Git Azure Repos. Nakonfigurujte kanál tak, aby používal existující soubor YAML služby Azure Pipelines. Zadejte kanál s následujícím nastavením:

Nastavení Hodnota
Úložiště Kořenové úložiště (stejné jako název projektu)
Pobočka main
Cesta pipelines/11-remover-arm-fallback.yml
Název Odebrání nasazení pomocí Azure Resource Manageru

Uložte kanál. Pokud chcete zobrazit možnost Uložit, vyberte dvojitou šipku vedle možnosti Spustit. Přejděte do části Kanály a vyberte kanál. V nabídce se třemi tečky na pravé straně zvolte Přejmenovat nebo přesunout a přejmenujte kanál jako odebrání nasazení pomocí procesoru ARM.

Poznámka:

Tento kanál používejte pouze jako poslední možnost. Odebráním pouze skupin prostředků zůstanou zbytky, které by mohly komplikovat opětovné nasazení.

Kanál aktualizátoru úložiště

Vytvořte kanál aktualizátoru úložiště. V části Kanály vyberte Nový kanál. Jako zdroj kódu vyberte Git Azure Repos. Nakonfigurujte kanál tak, aby používal existující soubor YAML služby Azure Pipelines. Zadejte kanál s následujícím nastavením:

Nastavení Hodnota
Úložiště Kořenové úložiště (stejné jako název projektu)
Pobočka main
Cesta pipelines/20-update-ado-repository.yml
Název Aktualizátor úložiště

Uložte kanál. Pokud chcete zobrazit možnost Uložit, vyberte dvojitou šipku vedle možnosti Spustit. Přejděte do části Kanály a vyberte kanál. V nabídce se třemi tečky na pravé straně zvolte Přejmenovat nebo Přesunout a kanál přejmenujte jako aktualizátor úložiště.

Tento kanál by se měl použít, když je v úložišti sap-automation aktualizace, kterou chcete použít.

Import úlohy vyčištění ze sady Visual Studio Marketplace

Kanály používají vlastní úlohu k provádění aktivit čištění po nasazení. Vlastní úlohu můžete nainstalovat z nástroje Post Build Cleanup. Před spuštěním kanálů ho nainstalujte do své organizace Azure DevOps.

Příprava na agenta v místním prostředí

  1. Vytvořte fond agentů tak, že přejdete na organizační Nastavení. V části Kanály vyberte Přidat fond fondů agentů>. Jako typ fondu vyberte možnost Vlastní hostování . Pojmenujte fond tak, aby odpovídal prostředí řídicí roviny. Například použijte MGMT-WEEU-POOL. Ujistěte se, že je vybrána možnost Udělit přístup všem kanálům , a výběrem možnosti Vytvořit vytvořte fond.

  2. Přihlaste se pomocí uživatelského účtu, který plánujete použít ve vaší organizaci Azure DevOps .

  3. Na domovské stránce otevřete nastavení uživatele a vyberte osobní přístupové tokeny.

    Diagram that shows the creation of a personal access token.

  4. Vytvořte osobní přístupový token s těmito nastaveními:

    • Fondy agentů: Vyberte Možnost Číst a spravovat.

    • Sestavení: Vyberte Možnost Číst a provést.

    • Kód: Vyberte čtení a zápis.

    • Skupiny proměnných: Vyberte číst, vytvořit a spravovat.

      Poznamenejte si vytvořenou hodnotu tokenu.

    Diagram that shows the attributes of the personal access token.

Definice proměnných

Kanály nasazení jsou nakonfigurované tak, aby používaly sadu předdefinovaných hodnot parametrů definovaných pomocí skupin proměnných.

Běžné proměnné

Všechny kanály nasazení používají běžné proměnné. Jsou uloženy ve skupině proměnných s názvem SDAF-General.

Pomocí stránky Knihovna v části Pipelines vytvořte novou skupinu proměnných s názvem SDAF-General. Přidejte následující proměnné:

Proměnná Hodnota Notes
Deployment_Configuration_Path PRACOVNÍ PROSTORY Pro testování ukázkové konfigurace použijte samples/WORKSPACES místo PRACOVNÍCH PROSTORŮ.
Pobočka main
S-Username <SAP Support user account name>
Heslo S <SAP Support user password> Výběrem ikony zámku změňte typ proměnné na tajný kód.
tf_version 1.6.0 Verze Terraformu, která se má použít. Podívejte se na stažení Terraformu.

Uložte proměnné.

Případně můžete k nastavení skupin použít Azure DevOps CLI.

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

Nezapomeňte přiřadit oprávnění pro všechny kanály pomocí oprávnění kanálu.

Proměnné specifické pro prostředí

Vzhledem k tomu, že každé prostředí může mít jiné přihlašovací údaje pro nasazení, musíte vytvořit skupinu proměnných pro každé prostředí. Například použijte , SDAF-MGMTSDAF-DEVa SDAF-QA.

Pomocí stránky Knihovna v části Pipelines vytvořte novou skupinu proměnných pojmenovanou SDAF-MGMT pro prostředí řídicí roviny. Přidejte následující proměnné:

Proměnná Hodnota Notes
Agent Azure Pipelines nebo název fondu agentů Tento fond se vytvoří v pozdějším kroku.
CP_ARM_CLIENT_ID Service principal application ID
CP_ARM_OBJECT_ID Service principal object ID
CP_ARM_CLIENT_SECRET Service principal password Výběrem ikony zámku změňte typ proměnné na tajný kód.
CP_ARM_SUBSCRIPTION_ID Target subscription ID
CP_ARM_TENANT_ID Tenant ID pro instanční objekt
AZURE_CONNECTION_NAME Dříve vytvořený název připojení
sap_fqdn Plně kvalifikovaný název domény SAP, například sap.contoso.net Je potřeba jenom v případě, že se nepoužívá Privátní DNS.
FENCING_SPN_ID Service principal application ID pro agenta šermování Vyžaduje se pro vysoce dostupná nasazení, která používají instanční objekt pro agenta pro dělení.
FENCING_SPN_PWD Service principal password pro agenta šermování Vyžaduje se pro vysoce dostupná nasazení, která používají instanční objekt pro agenta pro dělení.
FENCING_SPN_TENANT Service principal tenant ID pro agenta šermování Vyžaduje se pro vysoce dostupná nasazení, která používají instanční objekt pro agenta pro dělení.
PAT <Personal Access Token> Použijte osobní token definovaný v předchozím kroku.
BAZÉN <Agent Pool name> Fond agentů, který se má použít pro toto prostředí.
APP_REGISTRATION_APP_ID App registration application ID Vyžaduje se, pokud nasazujete webovou aplikaci.
WEB_APP_CLIENT_SECRET App registration password Vyžaduje se, pokud nasazujete webovou aplikaci.
SDAF_GENERAL_GROUP_ID ID skupiny pro skupinu SDAF-General ID lze načíst z parametru variableGroupId adresy URL při přístupu ke skupině proměnných pomocí prohlížeče. Například: variableGroupId=8.
WORKLOADZONE_PIPELINE_ID ID kanálu SAP workload zone deployment ID je možné načíst z parametru definitionId adresy URL ze stránky kanálu v Azure DevOps. Například: definitionId=31.
SYSTEM_PIPELINE_ID ID kanálu SAP system deployment (infrastructure) ID je možné načíst z parametru definitionId adresy URL ze stránky kanálu v Azure DevOps. Například: definitionId=32.

Uložte proměnné.

Nezapomeňte přiřadit oprávnění pro všechny kanály pomocí oprávnění kanálu.

Pokud používáte webovou aplikaci, ujistěte se, že má služba sestavení alespoň oprávnění přispívat.

Pomocí funkce klonování můžete vytvořit další skupinu proměnných prostředí. APP_REGISTRATION_APP_ID, WEB_APP_CLIENT_SECRET, SDAF_GENERAL_GROUP_ID, WORKLOADZONE_PIPELINE_ID a SYSTEM_PIPELINE_ID jsou potřeba jenom pro skupinu SDAF-MGMT.

Vytvoření připojení služby

K odebrání prostředků Azure potřebujete připojení služby Azure Resource Manager. Další informace najdete v tématu Správa připojení služeb.

Pokud chcete vytvořit připojení služby, přejděte do projectu Nastavení. V části Pipelines (Kanály ) vyberte Service connections (Připojení služeb).

Screenshot that shows how to create a service connection.

Jako typ připojení služby vyberte Azure Resource Manager a jako metodu ověřování vyberte instanční objekt (ruční ). Zadejte cílové předplatné, což je obvykle předplatné řídicí roviny. Zadejte podrobnosti instančního objektu. Vyberte Ověřit a ověřte přihlašovací údaje. Další informace o tom, jak vytvořit instanční objekt, najdete v tématu Vytvoření instančního objektu.

Zadejte název připojení služby, například použijte Connection to MGMT subscription. Ujistěte se, že je zaškrtnuté políčko Udělit přístup všem kanálům . Vyberte Ověřit a uložte připojení služby.

Oprávnění

Většina kanálů přidává soubory do Azure Repos a proto vyžaduje oprávnění k přijetí změn. V Projectu Nastavení v části Úložiště vyberte kartu Zabezpečení úložiště zdrojového kódu a přiřaďte oprávnění Přispívat k souboru Build Service.

Screenshot that shows repository permissions.

Nasazení řídicí roviny

Nově vytvořené kanály nemusí být ve výchozím zobrazení viditelné. Vyberte kartu Poslední a vraťte se na všechny karty a zobrazte nové kanály.

Vyberte kanál nasazení řídicí roviny a zadejte názvy konfigurace pro nasazéru a knihovnu SAP. Výběrem možnosti Spustit nasadíte řídicí rovinu. Pokud chcete nastavit konfigurační webovou aplikaci, nezapomeňte zaškrtnout políčko Nasadit konfigurační webovou aplikaci.

Ruční konfigurace agenta Azure DevOps Services v místním prostředí

Ruční konfigurace se vyžaduje jenom v případě, že není automaticky nakonfigurovaný agent Azure DevOps Services. Než budete pokračovat, zkontrolujte, jestli je fond agentů prázdný.

Připojení k nasazéru:

  1. Přihlaste se k portálu Azure.

  2. Přejděte do skupiny prostředků, která obsahuje virtuální počítač nasazovacího nástroje.

  3. Připojení k virtuálnímu počítači pomocí služby Azure Bastion.

  4. Výchozí uživatelské jméno je azureadm.

  5. Vyberte privátní klíč SSH ze služby Azure Key Vault.

  6. Vyberte předplatné, které obsahuje řídicí rovinu.

  7. Vyberte trezor klíčů nasazovacího nástroje.

  8. V seznamu tajných kódů vyberte tajný klíč, který končí na -sshkey.

  9. Připojte se k virtuálnímu počítači.

Spuštěním následujícího skriptu nakonfigurujte nasazéru:

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

Restartujte nasaditel, znovu se připojte a spusťte následující skript, který nastaví agenta Azure DevOps:

cd ~/Azure_SAP_Automated_Deployment/

$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh

Přijměte licenci a po zobrazení výzvy k zadání adresy URL serveru zadejte adresu URL, kterou jste zachytili při vytváření projektu Azure DevOps. Pro ověření vyberte PAT a zadejte hodnotu tokenu z předchozího kroku.

Po zobrazení výzvy zadejte název fondu aplikací, který jste vytvořili v předchozím kroku. Přijměte výchozí název agenta a výchozí název pracovní složky. Agent je teď nakonfigurovaný a spuštěný.

Nasazení webové aplikace řídicí roviny

Výběr parametru deploy the web app infrastructure při spuštění kanálu nasazení řídicí roviny zřídí infrastrukturu potřebnou k hostování webové aplikace. Kanál nasadit webovou aplikaci publikuje software aplikace do této infrastruktury.

Počkejte na dokončení nasazení. Vyberte kartu Rozšíření a podle pokynů dokončete konfiguraci. Aktualizujte reply-url hodnoty pro registraci aplikace.

V důsledku spuštění kanálu řídicí roviny se část adresy URL webové aplikace, kterou potřebujete, uloží do proměnné pojmenované WEBAPP_URL_BASE ve skupině proměnných specifických pro prostředí. Adresy URL registrované webové aplikace můžete kdykoli aktualizovat pomocí následujícího příkazu.

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

Musíte také udělit oprávnění čtenáře spravované identitě přiřazené systémem služby App Service. Přejděte k prostředku služby App Service. Na levé straně vyberte Identitu. Na kartě Přiřazený systém vyberte Přiřazení>rolí Azure Přidat přiřazení role. Jako obor vyberte Předplatné a jako roli čtenáře . Pak vyberte Uložit. Bez tohoto kroku nebude funkce rozevíracího seznamu webové aplikace fungovat.

Teď byste měli být schopni navštívit webovou aplikaci a použít ji k nasazení zón úloh SAP a systémové infrastruktury SAP.

Další krok