Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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řte identitu přiřazenou 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.
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" }Zkopírujte podrobnosti výstupu.
Výstup odpovídá následujícím parametrům. Tyto parametry použijete v pozdějších krocích s příkazy automatizace.
Název vstupu parametru Název výstupu app_idappIdmsi_idarmIdmsi_objectidobjectIdPřiřaďte k identitě roli Přispěvatel.
export appId="<appId>" az role assignment create --assignee $msi_objectid --role "Contributor" --scope /subscriptions/$ARM_SUBSCRIPTION_IDVolitelně můžete identitě přiřadit roli Správce uživatelských přístupů.
export appId="<appId>" az role assignment create --assignee $msi_objectid --role "User Access Administrator" --scope /subscriptions/$ARM_SUBSCRIPTION_ID
Důležité
Pokud spravované identitě nepřiřazujete roli Správce uživatelských přístupů, nemůžete přiřadit oprávnění pomocí architektury automation.
Vytvoření registrace aplikace pro webovou aplikaci
Architektura nasazení automatizace SAP může využít službu Aplikace Azure Service ke konfiguraci souborů parametrů tfvars.
Vytvořte registraci aplikace.
$ApplicationName="<App Registration Name>" $MSI_objectId="<msi_objectid>" Write-Host "Creating an App Registration for" $ApplicationName -ForegroundColor Green if (Test-Path $manifestPath) { Write-Host "Removing manifest.json" ; Remove-Item $manifestPath } Add-Content -Path manifest.json -Value '[{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}]}]' $APP_REGISTRATION_ID = $(az ad app create --display-name $ApplicationName --enable-id-token-issuance true --sign-in-audience AzureADMyOrg --required-resource-access $manifestPath --query "appId" --output tsv) Write-Host "App Registration created with App ID: $APP_REGISTRATION_ID" Write-Host "Waiting for the App Registration to be created" -ForegroundColor Green Start-Sleep -s 20 $ExistingData = $(az ad app list --all --filter "startswith(displayName, '$ApplicationName')" --query "[?displayName=='$ApplicationName']| [0]" --only-show-errors) | ConvertFrom-Json $APP_REGISTRATION_OBJECTID = $ExistingData.id if (Test-Path $manifestPath) { Write-Host "Removing manifest.json" ; Remove-Item $manifestPath } Write-Host "Configuring authentication for the App Registration" -ForegroundColor Green az rest --method POST --uri "https://graph.microsoft.com/beta/applications/$APP_REGISTRATION_OBJECTID/federatedIdentityCredentials\" --body "{'name': 'ManagedIdentityFederation', 'issuer': 'https://login.microsoftonline.com/$ARM_TENANT_ID/v2.0', 'subject': '$MSI_objectId', 'audiences': [ 'api://AzureADTokenExchange' ]}" $API_URL="https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/~/ProtectAnAPI/appId/$APP_REGISTRATION_ID/isMSAApp~/false" Write-Host "The browser will now open, Please Add a new scope, by clicking the '+ Add a new scope link', accept the default name and click 'Save and Continue'" Write-Host "In the Add a scope page enter the scope name 'user_impersonation'. Choose 'Admins and Users' in the who can consent section, next provide the Admin consent display name 'Access the SDAF web application' and 'Use SDAF' as the Admin consent description, accept the changes by clicking the 'Add scope' button" Start-Process $API_URL Read-Host -Prompt "Once you have created and validated the scope, Press any key to continue"
Vytvoření servisního principálu
Architektura nasazení automatizace SAP může pro nasazení používat servisní principály.
Když zvolíte název pro vaši službu, ujistěte se, že je název jedinečný v rámci vašeho tenanta Azure. Při spuštění skriptu nezapomeňte použít účet s oprávněními k vytvoření instančních objektů.
Vytvořte aplikač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>" }Zkopírujte podrobnosti výstupu. Nezapomeňte uložit hodnoty pro
appId,passwordaTenant.Výstup odpovídá následujícím parametrům. Tyto parametry použijete v pozdějších krocích s příkazy automatizace.
Název vstupu parametru Název výstupu spn_idappIdspn_secretpasswordtenant_idtenantVolitelně můžete hlavní službě přiřadit roli Správce uživatelských přístupů.
export appId="<appId>" az role assignment create --assignee $appId --role "User Access Administrator" --scope /subscriptions/$ARM_SUBSCRIPTION_ID
Důležité
Pokud k služebnímu hlavnímu objektu nepřiřadíte roli Správce uživatelských přístupů, nemůžete přiřadit oprávnění pomocí automatizačního rámce.
Předletové kontroly
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á služební principál správná oprávnění k vytváření prostředků v předplatném.
- Zkontroluje, jestli má principál služby oprávnění správce přístupu pro uživatele.
- 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řte virtuální počítač 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. Ujistěte se také, že máte nainstalovanou nejnovější verzi Azure CLI spuštěním příkazu az upgrade.
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
- dekomprimovat metodou ZIP
- 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