Začínáme s architekturou SAP Deployment Automation Framework

Začněte rychle s architekturou SAP Deployment Automation Framework.

Požadavky

Pokud chcete začít s architekturou SAP Deployment Automation Framework, potřebujete:

  • Předplatné Azure. Pokud ještě nemáte předplatné Azure, můžete si vytvořit bezplatný účet.
  • Uživatelský účet SAP s oprávněními ke stažení softwaru SAP ve vašem prostředí Azure. Další informace o uživateli S-User najdete v tématu SAP S-User.
  • Instalace Azure CLI.
  • Identita přiřazená uživatelem (MS) nebo instanční objekt, který se má použít pro nasazení řídicí roviny.
  • Identita přiřazená uživatelem (MS) nebo instanční objekt, který se má použít pro nasazení zóny úloh.
  • Možnost vytvořit projekt Azure DevOps, pokud chcete k nasazení použít Azure DevOps.

Některé požadavky už můžou být ve vašem prostředí nasazení nainstalované. Azure Cloud Shell i nasazovač jsou součástí Terraformu a nainstalovaného Azure CLI.

Vytvoření instančního objektu služby

Architektura nasazení automatizace SAP používá k nasazení instanční objekty.

Když zvolíte název instančního objektu, ujistěte se, že je název v rámci vašeho tenanta Azure jedinečný. Při spuštění skriptu nezapomeňte použít účet s oprávněními k vytvoření instančních objektů.

  1. Vytvořte instanční objekt s oprávněními přispěvatele.

    export    ARM_SUBSCRIPTION_ID="<subscriptionId>"
    export control_plane_env_code="LAB"
    
    az ad sp create-for-rbac --role="Contributor"  --scopes="/subscriptions/$ARM_SUBSCRIPTION_ID"   --name="$control_plane_env_code-Deployment-Account"
    

    Zkontrolujte výstup. Příklad:

    {
        "appId": "<AppId>",
        "displayName": "<environment>-Deployment-Account ",
        "name": "<AppId>",
        "password": "<AppSecret>",
        "tenant": "<TenantId>"
    }
    
  2. Zkopírujte podrobnosti výstupu. Nezapomeňte uložit hodnoty pro appId, passworda Tenant.

    Výstup se mapuje na následující parametry. Tyto parametry použijete v pozdějších krocích s příkazy automatizace.

    Název vstupu parametru Název výstupu
    spn_id appId
    spn_secret password
    tenant_id tenant
  3. Volitelně přiřaďte roli Uživatelský přístup k instančnímu objektu Správa istrator.

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

Důležité

Pokud k instančnímu objektu nepřiřazujete roli Uživatelský přístup Správa istrator, nemůžete přiřadit oprávnění pomocí architektury automatizace.

Vytvoření identity přiřazené uživatelem

Architektura nasazení automatizace SAP může také pro nasazení použít identitu přiřazenou uživatelem (MSI). Při spuštění skriptu, který vytvoří identitu, nezapomeňte použít účet s oprávněními k vytváření spravovaných identit.

  1. Vytvořte spravovanou identitu.

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

    Zkontrolujte výstup. Příklad:

       {
         "clientId": "<appId>",
         "id": "<armId>",
         "location": "<location>",
         "name": "${control_plane_env_code}-Deployment-Identity",
         "principalId": "<objectId>",
         "resourceGroup": "<ExistingResourceGroup>",
         "systemData": null,
         "tags": {},
         "tenantId": "<TenantId>",
         "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
       }
    
  2. Zkopírujte podrobnosti výstupu.

    Výstup se mapuje na následující parametry. Tyto parametry použijete v pozdějších krocích s příkazy automatizace.

    Název vstupu parametru Název výstupu
    app_id appId
    msi_id armId
  3. Přiřaďte k identitě roli Přispěvatel.

    export appId="<appId>"
    
    az role assignment create --assignee $appId  --role "Contributor"  --scope /subscriptions/$ARM_SUBSCRIPTION_ID
    
  4. Volitelně můžete identitě přiřadit roli Uživatelský přístup Správa istrator.

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

Důležité

Pokud spravované identitě nepřiřazujete roli User Access Správa istrator, nemůžete přiřadit oprávnění pomocí architektury automation.

Kontroly před testovacími verzemi

K provedení předběžných kontrol můžete použít následující skript. Skript provede následující kontroly a testy:

  • Zkontroluje, jestli má instanční objekt správná oprávnění k vytváření prostředků v předplatném.
  • Zkontroluje, jestli má instanční objekt oprávnění k přístupu uživatele Správa istrator.
  • Vytvořte virtuální síť Azure.
  • Vytvořte službu Azure Virtual Key Vault s privátním koncovým bodem.
  • Vytvořte sdílenou složku Azure Files NSF.
  • Vytvoření virtuálního počítače Azure s datovým diskem pomocí Premium Storage v2
  • Pomocí nasazeného virtuálního počítače zkontrolujte přístup k požadovaným adresám URL.

$sdaf_path = Get-Location
if ( $PSVersionTable.Platform -eq "Unix") {
    if ( -Not (Test-Path "SDAF") ) {
      $sdaf_path = New-Item -Path "SDAF" -Type Directory
    }
}
else {
    $sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
    if ( -not (Test-Path $sdaf_path)) {
        New-Item -Path $sdaf_path -Type Directory
    }
}

Set-Location -Path $sdaf_path

git clone https://github.com/Azure/sap-automation.git 

cd sap-automation
cd deploy
cd scripts

if ( $PSVersionTable.Platform -eq "Unix") {
./Test-SDAFReadiness.ps1
}
else {
.\Test-SDAFReadiness.ps1
}

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

Použití Azure DevOps zjednodušuje proces nasazení. Azure DevOps 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ů. Azure Pipelines poskytuje kanály, které je možné použít 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.

Vytvoření prostředí SAP Deployment Automation Framework pomocí Azure DevOps

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_WORKLOAD_ZONE_CODE = "DEV"
    $Env:SDAF_ControlPlaneSubscriptionID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    $Env:SDAF_WorkloadZoneSubscriptionID = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
    $Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"

    $UniqueIdentifier = Read-Host "Please provide an identifier that makes the service principal names unique, for instance a project code"

    $confirmation = Read-Host "Do you want to create a new Application registration (needed for the Web Application) y/n?"
    if ($confirmation -eq 'y') {
        $Env:SDAF_APP_NAME = $UniqueIdentifier + " SDAF Control Plane"
    }

    else {
      $Env:SDAF_APP_NAME = Read-Host "Please provide the Application registration name"
    }

    $confirmation = Read-Host "Do you want to create a new Service Principal for the Control plane y/n?"
    if ($confirmation -eq 'y') {
        $Env:SDAF_MGMT_SPN_NAME = $UniqueIdentifier + " SDAF " + $Env:SDAF_CONTROL_PLANE_CODE + " SPN"
    }
        else {
      $Env:SDAF_MGMT_SPN_NAME = Read-Host "Please provide the Control Plane Service Principal Name"
    }

    $confirmation = Read-Host "Do you want to create a new Service Principal for the Workload zone y/n?"
    if ($confirmation -eq 'y') {
        $Env:SDAF_WorkloadZone_SPN_NAME = $UniqueIdentifier + " SDAF " + $Env:SDAF_WORKLOAD_ZONE_CODE + " SPN"
    }
        else {
      $Env:SDAF_WorkloadZone_SPN_NAME = Read-Host "Please provide the Workload Zone Service Principal Name"
    }

    if ( $PSVersionTable.Platform -eq "Unix") {
        if ( Test-Path "SDAF") {
        }
        else {
            $sdaf_path = New-Item -Path "SDAF" -Type Directory
        }
    }
    else {
        $sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
        if ( Test-Path $sdaf_path) {
        }
        else {
            New-Item -Path $sdaf_path -Type Directory
        }
    }

    Set-Location -Path $sdaf_path

    if ( Test-Path "New-SDAFDevopsProject.ps1") {
        remove-item .\New-SDAFDevopsProject.ps1
    }

    Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/main/deploy/scripts/New-SDAFDevopsProject.ps1 -OutFile .\New-SDAFDevopsProject.ps1 ; .\New-SDAFDevopsProject.ps1

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.

Další informace o konfiguraci Azure DevOps pro architekturu SAP Deployment Automation Framework najdete v tématu Konfigurace Azure DevOps pro architekturu SAP Deployment Automation Framework.

Vytvoření prostředí SAP Deployment Automation Framework bez Azure DevOps

Rozhraní SAP Deployment Automation Framework můžete spustit z virtuálního počítače v Azure. Následující kroky popisují, jak vytvořit prostředí.

Důležité

Ujistěte se, že virtuální počítač k vytváření prostředků používá identitu přiřazenou systémem nebo přiřazenou uživatelem s oprávněními k předplatnému.

Ujistěte se, že má virtuální počítač nainstalované následující požadavky:

  • git
  • jq
  • Rozbalte
  • virtualenv (pokud běží na Ubuntu)

Požadavky můžete nainstalovat na virtuální počítač s Ubuntu pomocí následujícího příkazu:

sudo apt-get install -y git jq unzip virtualenv

Komponenty nasazovacího modulu pak můžete nainstalovat pomocí následujících příkazů:


wget https://raw.githubusercontent.com/Azure/sap-automation/main/deploy/scripts/configure_deployer.sh -O configure_deployer.sh
chmod +x ./configure_deployer.sh
./configure_deployer.sh

# Source the new variables

. /etc/profile.d/deploy_server.sh

Ukázky

Složka ~/Azure_SAP_Automated_Deployment/samples obsahuje sadu ukázkových konfiguračních souborů pro zahájení testování architektury automatizace nasazení. Můžete je zkopírovat pomocí následujících příkazů:

cd ~/Azure_SAP_Automated_Deployment

cp -Rp samples/Terraform/WORKSPACES ~/Azure_SAP_Automated_Deployment

Další krok