Använda SAP Deployment Automation Framework från Azure DevOps Services
Azure DevOps effektiviserar distributionsprocessen genom att tillhandahålla pipelines som du kan köra för att utföra infrastrukturdistributionen och konfigurations- och SAP-installationsaktiviteterna.
Du kan använda Azure Repos för att lagra dina konfigurationsfiler och använda Azure Pipelines för att distribuera och konfigurera infrastrukturen och SAP-programmet.
Registrera dig för Azure DevOps Services
Om du vill använda Azure DevOps Services behöver du en Azure DevOps-organisation. En organisation används för att ansluta grupper av relaterade projekt. Använd ditt arbets- eller skolkonto för att automatiskt ansluta din organisation till ditt Microsoft Entra-ID. Om du vill skapa ett konto öppnar du Azure DevOps och loggar in eller skapar ett nytt konto.
Konfigurera Azure DevOps Services för SAP Deployment Automation Framework
Du kan använda följande skript för att utföra en grundläggande installation av Azure DevOps Services för SAP Deployment Automation Framework.
Öppna PowerShell ISE och kopiera följande skript och uppdatera parametrarna så att de matchar din miljö.
$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
}
Kör skriptet och följ anvisningarna. Skriptet öppnar webbläsarfönster för autentisering och för att utföra uppgifter i Azure DevOps-projektet.
Du kan välja att antingen köra koden direkt från GitHub eller importera en kopia av koden till ditt Azure DevOps-projekt.
Bekräfta att projektet har skapats genom att gå till Azure DevOps-portalen och välja projektet. Kontrollera att lagringsplatsen har fyllts i och att pipelines har skapats.
Viktigt!
Kör följande steg på din lokala arbetsstation. Se också till att du har den senaste Azure CLI installerad genom att az upgrade
köra kommandot.
Konfigurera Azure DevOps Services-artefakter för en ny arbetsbelastningszon
Använd följande skript för att distribuera artefakterna som behövs för att stödja en ny arbetsbelastningszon. Den här processen skapar variabelgruppen och tjänstanslutningen i Azure DevOps och, om du vill, distributionstjänstens huvudnamn.
Öppna PowerShell ISE och kopiera följande skript och uppdatera parametrarna så att de matchar din miljö.
$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
Skapa en exempelkonfiguration av kontrollplan
Du kan köra pipelinen Create Sample Deployer Configuration
för att skapa en exempelkonfiguration för kontrollplanet. När den körs väljer du lämplig Azure-region. Du kan också styra om du vill distribuera Azure Firewall och Azure Bastion.
Manuell konfiguration av Azure DevOps Services för SAP Deployment Automation Framework
Du kan konfigurera Azure DevOps Services för SAP Deployment Automation Framework manuellt.
Skapa ett nytt projekt
Du kan använda Azure Repos för att lagra koden från GitHub-lagringsplatsen sap-automation och miljökonfigurationsfilerna.
Öppna Azure DevOps och skapa ett nytt projekt genom att välja Nytt projekt och ange projektinformationen. Projektet innehåller källkontrolllagringsplatsen för Azure Repos och Azure Pipelines för att utföra distributionsaktiviteter.
Om du inte ser Nytt projekt kontrollerar du att du har behörighet att skapa nya projekt i organisationen.
Registrera projektets URL.
Importera lagringsplatsen
Börja med att importera SAP Deployment Automation Framework Bootstrap GitHub-lagringsplatsen till Azure Repos.
Gå till avsnittet Lagringsplatser och välj Importera en lagringsplats. Importera lagringsplatsen https://github.com/Azure/sap-automation-bootstrap.git
till Azure DevOps. Mer information finns i Importera en lagringsplats.
Om du inte kan importera en lagringsplats kan du skapa lagringsplatsen manuellt. Sedan kan du importera innehållet från SAP Deployment Automation Framework GitHub Bootstrap-lagringsplatsen till det.
Skapa lagringsplatsen för manuell import
Gör bara det här steget om du inte kan importera lagringsplatsen direkt.
Om du vill skapa lagringsplatsen för arbetsytor går du till avsnittet Lagringsplatser och väljer Skapa under Projektinställningar.
Välj lagringsplats, ange Git och ange ett namn för lagringsplatsen. Använd till exempel SAP Configuration Repository.
Klona lagringsplatsen
Om du vill tillhandahålla en mer omfattande redigeringsfunktion för innehållet kan du klona lagringsplatsen till en lokal mapp och redigera innehållet lokalt.
Om du vill klona lagringsplatsen till en lokal mapp går du till avsnittet Lagringsplatser i portalen under Filer och väljer Klona. Mer information finns i Klona en lagringsplats.
Importera lagringsplatsens innehåll manuellt med hjälp av en lokal klon
Du kan också ladda ned innehållet manuellt från SAP Deployment Automation Framework-lagringsplatsen och lägga till det i din lokala klon av Azure DevOps-lagringsplatsen.
Gå till https://github.com/Azure/SAP-automation-samples
lagringsplatsen och ladda ned lagringsplatsens innehåll som en .zip-fil. Välj Kod och välj Ladda ned ZIP.
Kopiera innehållet från zip-filen till rotmappen för din lokala klon.
Öppna den lokala mappen i Visual Studio Code. Du bör se att ändringarna måste synkroniseras med indikatorn med hjälp av källkontrollikonen som visas här.
Välj källkontrollikonen och ange ett meddelande om ändringen. Ange till exempel Importera från GitHub och välj Ctrl+Retur för att checka in ändringarna. Välj sedan Synkronisera ändringar för att synkronisera ändringarna tillbaka till lagringsplatsen.
Välj källa för Terraform- och Ansible-koden
Du kan antingen köra SAP Deployment Automation Framework-koden direkt från GitHub eller importera den lokalt.
Kör koden från en lokal lagringsplats
Om du vill köra SAP Deployment Automation Framework-koden från det lokala Azure DevOps-projektet måste du skapa en separat kodlagringsplats och en konfigurationslagringsplats i Azure DevOps-projektet:
- Namnet på konfigurationslagringsplatsen:
Same as the DevOps Project name
. Källan ärhttps://github.com/Azure/sap-automation-bootstrap.git
. - Namn på kodlagringsplats:
sap-automation
. Källan ärhttps://github.com/Azure/sap-automation.git
. - Namn på exempel- och malllagringsplats:
sap-samples
. Källan ärhttps://github.com/Azure/sap-automation-samples.git
.
Kör koden direkt från GitHub
Om du vill köra koden direkt från GitHub måste du ange autentiseringsuppgifter för Azure DevOps för att kunna hämta innehållet från GitHub.
Skapa GitHub-tjänstanslutningen
Om du vill hämta koden från GitHub behöver du en GitHub-tjänstanslutning. Mer information finns i Hantera tjänstanslutningar.
Om du vill skapa tjänstanslutningen går du till Project Inställningar och under avsnittet Pipelines går du till Tjänstanslutningar.
Välj GitHub som tjänstanslutningstyp. Välj Azure Pipelines i listrutan OAuth-konfiguration .
Välj Auktorisera för att logga in på GitHub.
Ange ett tjänstanslutningsnamn, till exempel SDAF Anslut ion till GitHub. Kontrollera att kryssrutan Bevilja åtkomstbehörighet till alla pipelines är markerad. Spara tjänstanslutningen genom att välja Spara .
Konfigurera webbappen
Automation-ramverket kan också etablera en webbapp som en del av kontrollplanet för att hjälpa till med SAP-arbetsbelastningszonen och systemkonfigurationsfilerna. Om du vill använda webbappen måste du först skapa en appregistrering i autentiseringssyfte. Öppna Azure Cloud Shell och kör följande kommandon.
Ersätt MGMT
med din miljö efter behov.
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
Spara appregistrerings-ID och lösenordsvärden för senare användning.
Skapa Azure Pipelines
Azure Pipelines implementeras som YAML-filer. De lagras i mappen deploy/pipelines på lagringsplatsen.
Kontrollplansdistributionspipeline
Skapa distributionspipelinen för kontrollplanet. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:
Inställning | Värde |
---|---|
Lagringsplats | "Rotrepo" (samma som projektnamn) |
Filial | huvud- |
Sökväg | pipelines/01-deploy-control-plane.yml |
Name | Distribution av kontrollplan |
Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen som kontrollplansdistribution.
Distributionspipeline för SAP-arbetsbelastningszon
Skapa SAP-arbetsbelastningszonens pipeline. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:
Inställning | Värde |
---|---|
Lagringsplats | "Rotrepo" (samma som projektnamn) |
Filial | huvud- |
Sökväg | pipelines/02-sap-workload-zone.yml |
Name | Distribution av SAP-arbetsbelastningszoner |
Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen till distribution av SAP-arbetsbelastningszonen.
SAP-systemdistributionspipeline
Skapa SAP-systemdistributionspipelinen. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:
Inställning | Värde |
---|---|
Lagringsplats | "Rotrepo" (samma som projektnamn) |
Filial | huvud- |
Sökväg | pipelines/03-sap-system-deployment.yml |
Name | SAP-systemdistribution (infrastruktur) |
Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen till SAP-systemdistribution (infrastruktur).)
SAP-pipeline för programvaruförvärv
Skapa SAP-pipelinen för programvaruförvärv. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:
Inställning | Värde |
---|---|
Lagringsplats | "Rotrepo" (samma som projektnamn) |
Filial | huvud- |
Sökväg | deploy/pipelines/04-sap-software-download.yml |
Name | SAP-programvaruförvärv |
Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen som SAP-programvaruförvärv.
Sap-konfiguration och installationspipeline för programvara
Skapa sap-konfigurations- och programvaruinstallationspipelinen. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:
Inställning | Värde |
---|---|
Lagringsplats | "Rotrepo" (samma som projektnamn) |
Filial | huvud- |
Sökväg | pipelines/05-DB-and-SAP-installation.yml |
Name | Konfiguration och SAP-installation |
Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen till SAP-konfiguration och programvaruinstallation.
Distributionsborttagningspipeline
Skapa distributionsborttagningspipelinen. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:
Inställning | Värde |
---|---|
Lagringsplats | "Rotrepo" (samma som projektnamn) |
Filial | huvud- |
Sökväg | pipelines/10-remover-terraform.yml |
Name | Borttagning av distribution |
Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen som Distributionsborttagning.
Pipeline för borttagning av kontrollplan
Skapa pipelinen för borttagning av kontrollplansdistribution. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:
Inställning | Värde |
---|---|
Lagringsplats | "Rotrepo" (samma som projektnamn) |
Filial | huvud- |
Sökväg | pipelines/12-remove-control-plane.yml |
Name | Borttagning av kontrollplan |
Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen som borttagning av kontrollplan.
Distributionsborttagningspipeline med hjälp av Azure Resource Manager
Skapa azure Resource Manager-pipelinen för distributionsborttagning. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:
Inställning | Värde |
---|---|
Lagringsplats | "Rotrepo" (samma som projektnamn) |
Filial | huvud- |
Sökväg | pipelines/11-remover-arm-fallback.yml |
Name | Borttagning av distribution med Azure Resource Manager |
Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen som Distributionsborttagning med ARM-processor.
Kommentar
Använd endast den här pipelinen som en sista utväg. Om du bara tar bort resursgrupperna återstår rester som kan komplicera omdistributionen.
Pipeline för lagringsplatsuppdatering
Skapa pipelinen för lagringsuppdatering. Under avsnittet Pipelines väljer du Ny pipeline. Välj Azure Repos Git som källa för din kod. Konfigurera din pipeline så att den använder en befintlig YAML-fil för Azure Pipelines. Ange pipelinen med följande inställningar:
Inställning | Värde |
---|---|
Lagringsplats | "Rotrepo" (samma som projektnamn) |
Filial | huvud- |
Sökväg | pipelines/20-update-ado-repository.yml |
Name | Uppdatering av lagringsplats |
Spara pipelinen. Om du vill se Spara väljer du sparren bredvid Kör. Gå till avsnittet Pipelines och välj pipelinen. Välj Byt namn/Flytta från ellipsmenyn till höger och byt namn på pipelinen till Lagringsplatsuppdatering.
Den här pipelinen bör användas när det finns en uppdatering på den sap-automation-lagringsplats som du vill använda.
Importera rensningsaktiviteten från Visual Studio Marketplace
Pipelines använder en anpassad uppgift för att utföra rensningsaktiviteter efter distributionen. Du kan installera den anpassade uppgiften från rensning efter bygget. Installera den i din Azure DevOps-organisation innan du kör pipelines.
Förberedelser för en lokalt installerad agent
Skapa en agentpool genom att gå till Organisations-Inställningar. Under avsnittet Pipelines väljer du Agentpooler>Lägg till pool. Välj Egen värd som pooltyp. Namnge poolen så att den överensstämmer med kontrollplanets miljö. Använd till exempel
MGMT-WEEU-POOL
. Se till att Bevilja åtkomstbehörighet till alla pipelines är markerat och välj Skapa för att skapa poolen.Logga in med det användarkonto som du planerar att använda i din Azure DevOps-organisation .
Öppna användarinställningarna på startsidan och välj Personliga åtkomsttoken.
Skapa en personlig åtkomsttoken med följande inställningar:
Agentpooler: Välj Läs och hantera.
Build: Välj Läs och kör.
Kod: Välj Läs och skriv.
Variabelgrupper: Välj Läs, skapa och hantera.
Skriv ned det skapade tokenvärdet.
Variabeldefinitioner
Distributionspipelines är konfigurerade för att använda en uppsättning fördefinierade parametervärden som definieras med hjälp av variabelgrupper.
Vanliga variabler
Vanliga variabler används av alla distributionspipelines. De lagras i en variabelgrupp med namnet SDAF-General
.
Skapa en ny variabelgrupp med namnet SDAF-General
med hjälp av sidan Bibliotek i avsnittet Pipelines . Lägg till följande variabler:
Variabel | Värde | Kommentar |
---|---|---|
Deployment_Configuration_Path | ARBETSYTOR | För att testa exempelkonfigurationen använder du samples/WORKSPACES i stället för ARBETSYTOR. |
Filial | huvud- | |
S-användarnamn | <SAP Support user account name> |
|
S-lösenord | <SAP Support user password> |
Ändra variabeltypen till hemlighet genom att välja låsikonen. |
tf_version |
1.6.0 | Terraform-versionen som ska användas. Se Ladda ned Terraform. |
Spara variablerna.
Du kan också använda Azure DevOps CLI för att konfigurera grupperna.
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
Kom ihåg att tilldela behörigheter för alla pipelines med hjälp av pipelinebehörigheter.
Miljöspecifika variabler
Eftersom varje miljö kan ha olika autentiseringsuppgifter för distribution måste du skapa en variabelgrupp per miljö. Använd till exempel SDAF-MGMT
,SDAF-DEV
, och SDAF-QA
.
Skapa en ny variabelgrupp med namnet SDAF-MGMT
för kontrollplansmiljön med hjälp av sidan Bibliotek i avsnittet Pipelines . Lägg till följande variabler:
Variabel | Värde | Kommentar |
---|---|---|
Handläggare | Azure Pipelines eller namnet på agentpoolen |
Den här poolen skapas i ett senare steg. |
CP_ARM_CLIENT_ID | Service principal application ID |
|
CP_ARM_OBJECT_ID | Service principal object ID |
|
CP_ARM_CLIENT_SECRET | Service principal password |
Ändra variabeltypen till hemlighet genom att välja låsikonen. |
CP_ARM_SUBSCRIPTION_ID | Target subscription ID |
|
CP_ARM_TENANT_ID | Tenant ID för tjänstens huvudnamn |
|
AZURE_CONNECTION_NAME | Tidigare skapat anslutningsnamn | |
sap_fqdn | SAP:s fullständigt kvalificerade domännamn, till exempel sap.contoso.net |
Behövs bara om Privat DNS inte används. |
FENCING_SPN_ID | Service principal application ID för fäktningsagenten |
Krävs för distributioner med hög tillgänglighet som använder tjänstens huvudnamn för fäktningsagenten. |
FENCING_SPN_PWD | Service principal password för fäktningsagenten |
Krävs för distributioner med hög tillgänglighet som använder tjänstens huvudnamn för fäktningsagenten. |
FENCING_SPN_TENANT | Service principal tenant ID för fäktningsagenten |
Krävs för distributioner med hög tillgänglighet som använder tjänstens huvudnamn för fäktningsagenten. |
PAT | <Personal Access Token> |
Använd den personliga token som definierades i föregående steg. |
POOL | <Agent Pool name> |
Agentpoolen som ska användas för den här miljön. |
APP_REGISTRATION_APP_ID | App registration application ID |
Krävs om du distribuerar webbappen. |
WEB_APP_CLIENT_SECRET | App registration password |
Krävs om du distribuerar webbappen. |
SDAF_GENERAL_GROUP_ID | Grupp-ID för gruppen SDAF-General | ID:t kan hämtas från URL-parametern variableGroupId när du öppnar variabelgruppen med hjälp av en webbläsare. Exempel: variableGroupId=8 . |
WORKLOADZONE_PIPELINE_ID | ID:t för pipelinen SAP workload zone deployment |
ID:t kan hämtas från URL-parametern definitionId från pipelinesidan i Azure DevOps. Exempel: definitionId=31 . |
SYSTEM_PIPELINE_ID | ID:t för pipelinen SAP system deployment (infrastructure) |
ID:t kan hämtas från URL-parametern definitionId från pipelinesidan i Azure DevOps. Exempel: definitionId=32 . |
Spara variablerna.
Kom ihåg att tilldela behörigheter för alla pipelines med hjälp av pipelinebehörigheter.
När du använder webbappen kontrollerar du att Build Service har minst Contribute-behörigheter.
Du kan använda klonfunktionen för att skapa nästa miljövariabelgrupp. APP_REGISTRATION_APP_ID, WEB_APP_CLIENT_SECRET, SDAF_GENERAL_GROUP_ID, WORKLOADZONE_PIPELINE_ID och SYSTEM_PIPELINE_ID behövs endast för gruppen SDAF-MGMT.
Skapa en tjänstanslutning
Om du vill ta bort Azure-resurserna behöver du en Azure Resource Manager-tjänstanslutning. Mer information finns i Hantera tjänstanslutningar.
Om du vill skapa tjänstanslutningen går du till Project Inställningar. Under avsnittet Pipelines väljer du Tjänstanslutningar.
Välj Azure Resource Manager som tjänstanslutningstyp och Tjänstens huvudnamn (manuell) som autentiseringsmetod. Ange målprenumerationen, som vanligtvis är kontrollplansprenumerationen. Ange information om tjänstens huvudnamn. Välj Verifiera för att verifiera autentiseringsuppgifterna. Mer information om hur du skapar ett huvudnamn för tjänsten finns i Skapa ett huvudnamn för tjänsten.
Ange ett tjänstanslutningsnamn, till exempel använda Connection to MGMT subscription
. Kontrollera att kryssrutan Bevilja åtkomstbehörighet till alla pipelines är markerad. Välj Verifiera och spara för att spara tjänstanslutningen.
Behörigheter
De flesta pipelines lägger till filer till Azure Repos och kräver därför pull-behörigheter. I Project Inställningar går du till avsnittet Lagringsplatser och väljer fliken Säkerhet på källkodslagringsplatsen och tilldelar Contribute-behörigheter till Build Service
.
Distribuera kontrollplanet
Nyligen skapade pipelines kanske inte visas i standardvyn. Välj fliken Senaste och gå tillbaka till Alla flikar för att visa de nya pipelinesna.
Välj distributionspipelinen för kontrollplanet och ange konfigurationsnamnen för distribueraren och SAP-biblioteket. Välj Kör för att distribuera kontrollplanet. Markera kryssrutan Distribuera konfigurationswebbprogrammet om du vill konfigurera konfigurationswebbappen.
Konfigurera en lokalt installerad Azure DevOps Services-agent manuellt
Manuell konfiguration behövs bara om Azure DevOps Services-agenten inte konfigureras automatiskt. Kontrollera att agentpoolen är tom innan du fortsätter.
Så här ansluter du till distribueraren:
Logga in på Azure-portalen.
Gå till den resursgrupp som innehåller den virtuella distributionsdatorn.
Anslut till den virtuella datorn med hjälp av Azure Bastion.
Standardanvändarnamnet är azureadm.
Välj Privat SSH-nyckel från Azure Key Vault.
Välj den prenumeration som innehåller kontrollplanet.
Välj nyckelvalvet för distribueraren.
I listan med hemligheter väljer du hemligheten som slutar med -sshkey.
Anslut till den virtuella datorn
Kör följande skript för att konfigurera distribueraren:
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
Starta om distribueraren, återanslut och kör följande skript för att konfigurera Azure DevOps-agenten:
cd ~/Azure_SAP_Automated_Deployment/
$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh
Godkänn licensen och ange den URL som du hämtade när du skapade Azure DevOps-projektet när du uppmanas att ange server-URL:en. För autentisering väljer du PAT och anger tokenvärdet från föregående steg.
När du uppmanas till det anger du namnet på programpoolen som du skapade i föregående steg. Acceptera standardagentnamnet och standardnamnet för arbetsmappen. Agenten är nu konfigurerad och startar.
Distribuera kontrollplanets webbprogram
Om du väljer parametern deploy the web app infrastructure
när du kör distributionspipelinen för kontrollplanet etableras den infrastruktur som krävs för att vara värd för webbappen. Pipelinen Distribuera webbapp publicerar programmets programvara till den infrastrukturen.
Vänta tills distributionen är klar. Välj fliken Tillägg och följ anvisningarna för att slutföra konfigurationen. reply-url
Uppdatera värdena för appregistreringen.
När du kör kontrollplanspipelinen lagras en del av webbappens URL som behövs i en variabel med namnet WEBAPP_URL_BASE
i din miljöspecifika variabelgrupp. När som helst kan du uppdatera URL:erna för den registrerade programwebbappen med hjälp av följande kommando.
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
Du måste också bevilja läsarbehörighet till den systemtilldelade hanterade identiteten för App Service. Gå till App Service-resursen. Välj Identitet till vänster. På fliken Systemtilldelad väljer du Azure-rolltilldelningar>Lägg till rolltilldelning. Välj Prenumeration som omfång och Läsare som roll. Välj sedan Spara. Utan det här steget fungerar inte webbappens listrutefunktioner.
Nu bör du kunna besöka webbappen och använda den för att distribuera SAP-arbetsbelastningszoner och SAP-systeminfrastruktur.