Korzystanie z programu SAP Deployment Automation Framework z usług Azure DevOps Services
Usługa Azure DevOps usprawnia proces wdrażania, udostępniając potoki, które można uruchomić w celu przeprowadzenia wdrożenia infrastruktury oraz działań konfiguracyjnych i instalacji sap.
Za pomocą usługi Azure Repos można przechowywać pliki konfiguracji i używać usługi Azure Pipelines do wdrażania i konfigurowania infrastruktury oraz aplikacji SAP.
Tworzenie konta w usłudze Azure DevOps Services
Do korzystania z usług Azure DevOps Services potrzebna jest organizacja usługi Azure DevOps. Organizacja służy do łączenia grup powiązanych projektów. Użyj konta służbowego, aby automatycznie połączyć organizację z identyfikatorem Entra firmy Microsoft. Aby utworzyć konto, otwórz usługę Azure DevOps i zaloguj się lub utwórz nowe konto.
Konfigurowanie usług Azure DevOps Services dla platformy SAP Deployment Automation Framework
Poniższy skrypt umożliwia wykonanie podstawowej instalacji usług Azure DevOps Services dla platformy SAP Deployment Automation Framework.
Otwórz program PowerShell ISE i skopiuj następujący skrypt i zaktualizuj parametry, aby odpowiadały twojemu środowisku.
$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
}
Uruchom skrypt i postępuj zgodnie z instrukcjami. Skrypt otwiera okna przeglądarki na potrzeby uwierzytelniania i wykonywania zadań w projekcie usługi Azure DevOps.
Możesz uruchomić kod bezpośrednio z usługi GitHub lub zaimportować kopię kodu do projektu usługi Azure DevOps.
Aby potwierdzić, że projekt został utworzony, przejdź do portalu usługi Azure DevOps i wybierz projekt. Upewnij się, że repozytorium zostało wypełnione i że potoki zostały utworzone.
Ważne
Uruchom następujące kroki na lokalnej stacji roboczej. Upewnij się również, że masz zainstalowany najnowszy interfejs wiersza polecenia platformy Azure, uruchamiając az upgrade
polecenie .
Konfigurowanie artefaktów usługi Azure DevOps Services dla nowej strefy obciążenia
Użyj następującego skryptu, aby wdrożyć artefakty potrzebne do obsługi nowej strefy obciążenia. Ten proces tworzy grupę zmiennych i połączenie usługi w usłudze Azure DevOps oraz opcjonalnie jednostkę usługi wdrażania.
Otwórz program PowerShell ISE i skopiuj następujący skrypt i zaktualizuj parametry, aby odpowiadały twojemu środowisku.
$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
Tworzenie przykładowej konfiguracji płaszczyzny sterowania
Potok można uruchomić, Create Sample Deployer Configuration
aby utworzyć przykładową konfigurację płaszczyzny sterowania. Po uruchomieniu wybierz odpowiedni region świadczenia usługi Azure. Możesz również kontrolować, czy chcesz wdrożyć usługę Azure Firewall i usługę Azure Bastion.
Ręczna konfiguracja usług Azure DevOps Services dla platformy SAP Deployment Automation Framework
Usługę Azure DevOps Services dla platformy SAP Deployment Automation Framework można skonfigurować ręcznie.
Tworzenie nowego projektu
Usługa Azure Repos umożliwia przechowywanie kodu z repozytorium GitHub sap-automation i plików konfiguracji środowiska.
Otwórz usługę Azure DevOps i utwórz nowy projekt, wybierając pozycję Nowy projekt i wprowadzając szczegóły projektu. Projekt zawiera repozytorium kontroli źródła usługi Azure Repos i usługę Azure Pipelines na potrzeby wykonywania działań wdrażania.
Jeśli nie widzisz nowego projektu, upewnij się, że masz uprawnienia do tworzenia nowych projektów w organizacji.
Zarejestruj adres URL projektu.
Importowanie repozytorium
Zacznij od zaimportowania repozytorium GitHub bootstrap platformy SAP Deployment Automation Framework do usługi Azure Repos.
Przejdź do sekcji Repozytoria i wybierz pozycję Importuj repozytorium. Zaimportuj https://github.com/Azure/sap-automation-bootstrap.git
repozytorium do usługi Azure DevOps. Aby uzyskać więcej informacji, zobacz Importowanie repozytorium.
Jeśli nie możesz zaimportować repozytorium, możesz utworzyć repozytorium ręcznie. Następnie możesz zaimportować zawartość z repozytorium GitHub Bootstrap platformy SAP Deployment Automation Framework do niego.
Tworzenie repozytorium na potrzeby ręcznego importowania
Wykonaj ten krok tylko wtedy, gdy nie możesz bezpośrednio zaimportować repozytorium.
Aby utworzyć repozytorium obszarów roboczych, w sekcji Repozytoria w obszarze Ustawienia projektu wybierz pozycję Utwórz.
Wybierz repozytorium, wprowadź ciąg Git i podaj nazwę repozytorium. Na przykład użyj repozytorium SAP Configuration Repository.
Klonowanie repozytorium
Aby zapewnić bardziej kompleksową możliwość edytowania zawartości, możesz sklonować repozytorium do folderu lokalnego i edytować zawartość lokalnie.
Aby sklonować repozytorium do folderu lokalnego, w sekcji Repozytoria portalu w obszarze Pliki wybierz pozycję Klonuj. Aby uzyskać więcej informacji, zobacz Klonowanie repozytorium.
Ręczne importowanie zawartości repozytorium przy użyciu klonu lokalnego
Możesz również ręcznie pobrać zawartość z repozytorium SAP Deployment Automation Framework i dodać ją do lokalnego klonu repozytorium Usługi Azure DevOps.
Przejdź do https://github.com/Azure/SAP-automation-samples
repozytorium i pobierz zawartość repozytorium jako plik zip. Wybierz pozycję Kod i wybierz pozycję Pobierz plik ZIP.
Skopiuj zawartość z pliku zip do folderu głównego klonu lokalnego.
Otwórz folder lokalny w programie Visual Studio Code. Powinny zostać wyświetlone zmiany, które muszą zostać zsynchronizowane przez wskaźnik za pomocą ikony kontroli źródła pokazanej tutaj.
Wybierz ikonę kontroli źródła i podaj komunikat o zmianie. Na przykład wprowadź ciąg Import from GitHub (Importuj z usługi GitHub ) i naciśnij klawisze Ctrl+Enter, aby zatwierdzić zmiany. Następnie wybierz pozycję Synchronizuj zmiany , aby zsynchronizować zmiany z powrotem do repozytorium.
Wybieranie źródła kodu terraform i rozwiązania Ansible
Możesz uruchomić kod platformy SAP Deployment Automation Framework bezpośrednio z usługi GitHub lub zaimportować go lokalnie.
Uruchamianie kodu z repozytorium lokalnego
Jeśli chcesz uruchomić kod platformy SAP Deployment Automation Framework z lokalnego projektu usługi Azure DevOps, musisz utworzyć oddzielne repozytorium kodu i repozytorium konfiguracji w projekcie usługi Azure DevOps:
- Nazwa repozytorium konfiguracji:
Same as the DevOps Project name
. Źródło tohttps://github.com/Azure/sap-automation-bootstrap.git
. - Nazwa repozytorium kodu:
sap-automation
. Źródło tohttps://github.com/Azure/sap-automation.git
. - Nazwa przykładowego i repozytorium szablonu:
sap-samples
. Źródło tohttps://github.com/Azure/sap-automation-samples.git
.
Uruchamianie kodu bezpośrednio z usługi GitHub
Jeśli chcesz uruchomić kod bezpośrednio z usługi GitHub, musisz podać poświadczenia dla usługi Azure DevOps, aby móc ściągać zawartość z usługi GitHub.
Tworzenie połączenia usługi GitHub
Aby ściągnąć kod z usługi GitHub, potrzebujesz połączenia z usługą GitHub. Aby uzyskać więcej informacji, zobacz Zarządzanie połączeniami usług.
Aby utworzyć połączenie z usługą, przejdź do pozycji Project Ustawienia i w sekcji Pipelines (Potoki) przejdź do pozycji Połączenia z usługą.
Wybierz pozycję GitHub jako typ połączenia z usługą. Wybierz pozycję Azure Pipelines na liście rozwijanej Konfiguracja protokołu OAuth.
Wybierz pozycję Autoryzuj , aby zalogować się do usługi GitHub.
Wprowadź nazwę połączenia z usługą, na przykład Połączenie SDAF w usłudze GitHub. Upewnij się, że pole wyboru Udziel uprawnień dostępu do wszystkich potoków jest zaznaczone. Wybierz pozycję Zapisz , aby zapisać połączenie z usługą.
Konfigurowanie aplikacji internetowej
Platforma automatyzacji opcjonalnie aprowizuje aplikację internetową jako część płaszczyzny sterowania, aby ułatwić obsługę stref obciążeń SAP i plików konfiguracji systemu. Jeśli chcesz użyć aplikacji internetowej, musisz najpierw utworzyć rejestrację aplikacji na potrzeby uwierzytelniania. Otwórz usługę Azure Cloud Shell i uruchom następujące polecenia.
W razie potrzeby zastąp MGMT
element swoim środowiskiem.
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
Zapisz identyfikator rejestracji aplikacji i wartości hasła do późniejszego użycia.
Tworzenie usługi Azure Pipelines
Usługa Azure Pipelines jest implementowana jako pliki YAML. Są one przechowywane w folderze deploy/pipelines w repozytorium.
Potok wdrażania płaszczyzny sterowania
Utwórz potok wdrażania płaszczyzny sterowania. W sekcji Potoki wybierz pozycję Nowy potok. Wybierz pozycję Azure Repos Git jako źródło kodu. Skonfiguruj potok tak, aby używał istniejącego pliku YAML usługi Azure Pipelines. Określ potok przy użyciu następujących ustawień:
Ustawienie | Wartość |
---|---|
Repozytorium | "Repozytorium główne" (takie samo jak nazwa projektu) |
Oddział | main |
Ścieżka | pipelines/01-deploy-control-plane.yml |
Nazwisko | Wdrażanie płaszczyzny sterowania |
Zapisz potok. Aby wyświetlić polecenie Zapisz, wybierz cudzysłów obok pozycji Uruchom. Przejdź do sekcji Potoki i wybierz potok. Wybierz pozycję Zmień nazwę/Przenieś z menu wielokropka po prawej stronie i zmień nazwę potoku na Wdrożenie płaszczyzny sterowania.
Potok wdrażania strefy obciążenia SAP
Utwórz potok strefy obciążenia SAP. W sekcji Potoki wybierz pozycję Nowy potok. Wybierz pozycję Azure Repos Git jako źródło kodu. Skonfiguruj potok tak, aby używał istniejącego pliku YAML usługi Azure Pipelines. Określ potok przy użyciu następujących ustawień:
Ustawienie | Wartość |
---|---|
Repozytorium | "Repozytorium główne" (takie samo jak nazwa projektu) |
Oddział | main |
Ścieżka | pipelines/02-sap-workload-zone.yml |
Nazwisko | Wdrażanie strefy obciążenia SAP |
Zapisz potok. Aby wyświetlić polecenie Zapisz, wybierz cudzysłów obok pozycji Uruchom. Przejdź do sekcji Potoki i wybierz potok. Wybierz pozycję Zmień nazwę/Przenieś z menu wielokropka po prawej stronie i zmień nazwę potoku na wdrożenie strefy obciążenia SAP.
Potok wdrażania systemu SAP
Utwórz potok wdrażania systemu SAP. W sekcji Potoki wybierz pozycję Nowy potok. Wybierz pozycję Azure Repos Git jako źródło kodu. Skonfiguruj potok tak, aby używał istniejącego pliku YAML usługi Azure Pipelines. Określ potok przy użyciu następujących ustawień:
Ustawienie | Wartość |
---|---|
Repozytorium | "Repozytorium główne" (takie samo jak nazwa projektu) |
Oddział | main |
Ścieżka | pipelines/03-sap-system-deployment.yml |
Nazwisko | Wdrażanie systemu SAP (infrastruktura) |
Zapisz potok. Aby wyświetlić polecenie Zapisz, wybierz cudzysłów obok pozycji Uruchom. Przejdź do sekcji Potoki i wybierz potok. Wybierz pozycję Zmień nazwę/Przenieś z menu wielokropka po prawej stronie i zmień nazwę potoku na wdrożenie systemu SAP (infrastruktura).
Potok pozyskiwania oprogramowania SAP
Utwórz potok pozyskiwania oprogramowania SAP. W sekcji Potoki wybierz pozycję Nowy potok. Wybierz pozycję Azure Repos Git jako źródło kodu. Skonfiguruj potok tak, aby używał istniejącego pliku YAML usługi Azure Pipelines. Określ potok przy użyciu następujących ustawień:
Ustawienie | Wartość |
---|---|
Repozytorium | "Repozytorium główne" (takie samo jak nazwa projektu) |
Oddział | main |
Ścieżka | deploy/pipelines/04-sap-software-download.yml |
Nazwisko | Pozyskiwanie oprogramowania SAP |
Zapisz potok. Aby wyświetlić polecenie Zapisz, wybierz cudzysłów obok pozycji Uruchom. Przejdź do sekcji Potoki i wybierz potok. Wybierz pozycję Zmień nazwę/Przenieś z menu wielokropka po prawej stronie i zmień nazwę potoku na pozyskiwanie oprogramowania SAP.
Potok konfiguracji i instalacji oprogramowania SAP
Utwórz potok konfiguracji sap i instalacji oprogramowania. W sekcji Potoki wybierz pozycję Nowy potok. Wybierz pozycję Azure Repos Git jako źródło kodu. Skonfiguruj potok tak, aby używał istniejącego pliku YAML usługi Azure Pipelines. Określ potok przy użyciu następujących ustawień:
Ustawienie | Wartość |
---|---|
Repozytorium | "Repozytorium główne" (takie samo jak nazwa projektu) |
Oddział | main |
Ścieżka | pipelines/05-DB-and-SAP-installation.yml |
Nazwisko | Konfiguracja i instalacja sap |
Zapisz potok. Aby wyświetlić polecenie Zapisz, wybierz cudzysłów obok pozycji Uruchom. Przejdź do sekcji Potoki i wybierz potok. Wybierz pozycję Zmień nazwę/Przenieś z menu wielokropka po prawej stronie i zmień nazwę potoku na konfiguracja sap i instalacja oprogramowania.
Potok usuwania wdrożenia
Utwórz potok usuwania wdrożenia. W sekcji Potoki wybierz pozycję Nowy potok. Wybierz pozycję Azure Repos Git jako źródło kodu. Skonfiguruj potok tak, aby używał istniejącego pliku YAML usługi Azure Pipelines. Określ potok przy użyciu następujących ustawień:
Ustawienie | Wartość |
---|---|
Repozytorium | "Repozytorium główne" (takie samo jak nazwa projektu) |
Oddział | main |
Ścieżka | pipelines/10-remover-terraform.yml |
Nazwisko | Usuwanie wdrożenia |
Zapisz potok. Aby wyświetlić polecenie Zapisz, wybierz cudzysłów obok pozycji Uruchom. Przejdź do sekcji Potoki i wybierz potok. Wybierz pozycję Zmień nazwę/Przenieś z menu wielokropka po prawej stronie i zmień nazwę potoku na Usuwanie wdrożenia.
Potok usuwania płaszczyzny sterowania
Utwórz potok usuwania wdrożenia płaszczyzny sterowania. W sekcji Potoki wybierz pozycję Nowy potok. Wybierz pozycję Azure Repos Git jako źródło kodu. Skonfiguruj potok tak, aby używał istniejącego pliku YAML usługi Azure Pipelines. Określ potok przy użyciu następujących ustawień:
Ustawienie | Wartość |
---|---|
Repozytorium | "Repozytorium główne" (takie samo jak nazwa projektu) |
Oddział | main |
Ścieżka | pipelines/12-remove-control-plane.yml |
Nazwisko | Usuwanie płaszczyzny sterowania |
Zapisz potok. Aby wyświetlić polecenie Zapisz, wybierz cudzysłów obok pozycji Uruchom. Przejdź do sekcji Potoki i wybierz potok. Wybierz pozycję Zmień nazwę/Przenieś z menu wielokropka po prawej stronie i zmień nazwę potoku na Usuwanie płaszczyzny sterowania.
Potok usuwania wdrożenia przy użyciu usługi Azure Resource Manager
Utwórz potok usuwania wdrożenia usługi Azure Resource Manager. W sekcji Potoki wybierz pozycję Nowy potok. Wybierz pozycję Azure Repos Git jako źródło kodu. Skonfiguruj potok tak, aby używał istniejącego pliku YAML usługi Azure Pipelines. Określ potok przy użyciu następujących ustawień:
Ustawienie | Wartość |
---|---|
Repozytorium | "Repozytorium główne" (takie samo jak nazwa projektu) |
Oddział | main |
Ścieżka | pipelines/11-remover-arm-fallback.yml |
Nazwisko | Usuwanie wdrożenia przy użyciu usługi Azure Resource Manager |
Zapisz potok. Aby wyświetlić polecenie Zapisz, wybierz cudzysłów obok pozycji Uruchom. Przejdź do sekcji Potoki i wybierz potok. Wybierz pozycję Zmień nazwę/Przenieś z menu wielokropka po prawej stronie i zmień nazwę potoku na Usuwanie wdrożenia przy użyciu procesora ARM.
Uwaga
Użyj tego potoku tylko w ostateczności. Usunięcie tylko grup zasobów pozostawia resztki, które mogą komplikować ponowne wdrażanie.
Potok aktualizatora repozytorium
Utwórz potok aktualizatora repozytorium. W sekcji Potoki wybierz pozycję Nowy potok. Wybierz pozycję Azure Repos Git jako źródło kodu. Skonfiguruj potok tak, aby używał istniejącego pliku YAML usługi Azure Pipelines. Określ potok przy użyciu następujących ustawień:
Ustawienie | Wartość |
---|---|
Repozytorium | "Repozytorium główne" (takie samo jak nazwa projektu) |
Oddział | main |
Ścieżka | pipelines/20-update-ado-repository.yml |
Nazwisko | Aktualizator repozytorium |
Zapisz potok. Aby wyświetlić polecenie Zapisz, wybierz cudzysłów obok pozycji Uruchom. Przejdź do sekcji Potoki i wybierz potok. Wybierz pozycję Zmień nazwę/Przenieś z menu wielokropka po prawej stronie i zmień nazwę potoku na aktualizator repozytorium.
Ten potok powinien być używany w przypadku aktualizacji w repozytorium sap-automation, którego chcesz użyć.
Importowanie zadania oczyszczania z witryny Visual Studio Marketplace
Potoki używają niestandardowego zadania do wykonywania działań oczyszczania po wdrożeniu. Zadanie niestandardowe można zainstalować za pomocą funkcji Oczyszczania po kompilacji. Zainstaluj ją w organizacji usługi Azure DevOps przed uruchomieniem potoków.
Przygotowania do własnego agenta
Utwórz pulę agentów, przechodząc do Ustawienia organizacyjnej. W sekcji Potoki wybierz pozycję Pule>agentów Dodaj pulę. Wybierz pozycję Self-hosted jako typ puli. Nadaj puli nazwę w celu dopasowania do środowiska płaszczyzny sterowania. Użyj na przykład nazwy
MGMT-WEEU-POOL
. Upewnij się, że wybrano opcję Udziel uprawnień dostępu do wszystkich potoków , a następnie wybierz pozycję Utwórz , aby utworzyć pulę.Zaloguj się przy użyciu konta użytkownika, którego planujesz używać w organizacji usługi Azure DevOps .
Na stronie głównej otwórz ustawienia użytkownika i wybierz pozycję Osobiste tokeny dostępu.
Utwórz osobisty token dostępu przy użyciu następujących ustawień:
Pule agentów: wybierz pozycję Odczyt i zarządzaj.
Kompilacja: wybierz pozycję Odczyt i wykonaj.
Kod: wybierz pozycję Odczyt i zapis.
Grupy zmiennych: wybierz pozycję Odczyt, utwórz i zarządzaj.
Zapisz utworzoną wartość tokenu.
Definicje zmiennych
Potoki wdrażania są skonfigurowane do używania zestawu wstępnie zdefiniowanych wartości parametrów zdefiniowanych przy użyciu grup zmiennych.
Typowe zmienne
Typowe zmienne są używane przez wszystkie potoki wdrażania. Są one przechowywane w grupie zmiennych o nazwie SDAF-General
.
Utwórz nową grupę zmiennych o nazwie SDAF-General
przy użyciu strony Biblioteka w sekcji Potoki . Dodaj następujące zmienne:
Zmienna | Wartość | Uwagi |
---|---|---|
Deployment_Configuration_Path | OBSZARY ROBOCZE | Aby przetestować przykładową konfigurację, użyj polecenia samples/WORKSPACES zamiast obszarów roboczych. |
Oddział | main | |
Nazwa użytkownika S | <SAP Support user account name> |
|
Hasło S | <SAP Support user password> |
Zmień typ zmiennej na wpis tajny, wybierając ikonę blokady. |
tf_version |
1.6.0 | Wersja programu Terraform do użycia. Zobacz Pobieranie programu Terraform. |
Zapisz zmienne.
Alternatywnie możesz użyć interfejsu wiersza polecenia usługi Azure DevOps do skonfigurowania grup.
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
Pamiętaj, aby przypisać uprawnienia dla wszystkich potoków przy użyciu uprawnień potoku.
Zmienne specyficzne dla środowiska
Ponieważ każde środowisko może mieć różne poświadczenia wdrożenia, należy utworzyć grupę zmiennych dla każdego środowiska. Na przykład użyj wartości SDAF-MGMT
,SDAF-DEV
i SDAF-QA
.
Utwórz nową grupę zmiennych o nazwie SDAF-MGMT
dla środowiska płaszczyzny sterowania przy użyciu strony Biblioteka w sekcji Potoki . Dodaj następujące zmienne:
Zmienna | Wartość | Uwagi |
---|---|---|
Agent | Azure Pipelines lub nazwa puli agentów |
Ta pula zostanie utworzona w późniejszym kroku. |
CP_ARM_CLIENT_ID | Service principal application ID |
|
CP_ARM_OBJECT_ID | Service principal object ID |
|
CP_ARM_CLIENT_SECRET | Service principal password |
Zmień typ zmiennej na wpis tajny, wybierając ikonę blokady. |
CP_ARM_SUBSCRIPTION_ID | Target subscription ID |
|
CP_ARM_TENANT_ID | Tenant ID dla jednostki usługi |
|
AZURE_CONNECTION_NAME | Wcześniej utworzona nazwa połączenia | |
sap_fqdn | Na przykład w pełni kwalifikowana nazwa domeny SAP sap.contoso.net |
Wymagane tylko w przypadku, gdy Prywatna strefa DNS nie jest używana. |
FENCING_SPN_ID | Service principal application ID dla środka ogrodzeniowego |
Wymagane w przypadku wdrożeń o wysokiej dostępności, które używają jednostki usługi dla agenta ogrodzenia. |
FENCING_SPN_PWD | Service principal password dla środka ogrodzeniowego |
Wymagane w przypadku wdrożeń o wysokiej dostępności, które używają jednostki usługi dla agenta ogrodzenia. |
FENCING_SPN_TENANT | Service principal tenant ID dla środka ogrodzeniowego |
Wymagane w przypadku wdrożeń o wysokiej dostępności, które używają jednostki usługi dla agenta ogrodzenia. |
Osobisty token dostępu | <Personal Access Token> |
Użyj osobistego tokenu zdefiniowanego w poprzednim kroku. |
BASEN | <Agent Pool name> |
Pula agentów do użycia w tym środowisku. |
APP_REGISTRATION_APP_ID | App registration application ID |
Wymagane w przypadku wdrażania aplikacji internetowej. |
WEB_APP_CLIENT_SECRET | App registration password |
Wymagane w przypadku wdrażania aplikacji internetowej. |
SDAF_GENERAL_GROUP_ID | Identyfikator grupy dla grupy SDAF-General | Identyfikator można pobrać z parametru variableGroupId adresu URL podczas uzyskiwania dostępu do grupy zmiennych przy użyciu przeglądarki. Na przykład: variableGroupId=8 . |
WORKLOADZONE_PIPELINE_ID | Identyfikator potoku SAP workload zone deployment |
Identyfikator można pobrać z parametru definitionId ADRESU URL ze strony potoku w usłudze Azure DevOps. Na przykład: definitionId=31 . |
SYSTEM_PIPELINE_ID | Identyfikator potoku SAP system deployment (infrastructure) |
Identyfikator można pobrać z parametru definitionId ADRESU URL ze strony potoku w usłudze Azure DevOps. Na przykład: definitionId=32 . |
Zapisz zmienne.
Pamiętaj, aby przypisać uprawnienia dla wszystkich potoków przy użyciu uprawnień potoku.
W przypadku korzystania z aplikacji internetowej upewnij się, że usługa kompilacji ma co najmniej uprawnienia Współtworzenie.
Możesz użyć funkcji klonowania, aby utworzyć następną grupę zmiennych środowiskowych. APP_REGISTRATION_APP_ID, WEB_APP_CLIENT_SECRET, SDAF_GENERAL_GROUP_ID, WORKLOADZONE_PIPELINE_ID i SYSTEM_PIPELINE_ID są potrzebne tylko dla grupy SDAF-MGMT.
Tworzenie połączenia z usługą
Aby usunąć zasoby platformy Azure, potrzebne jest połączenie usługi Azure Resource Manager. Aby uzyskać więcej informacji, zobacz Zarządzanie połączeniami usług.
Aby utworzyć połączenie z usługą, przejdź do pozycji Projekt Ustawienia. W sekcji Potoki wybierz pozycję Połączenia usługi.
Wybierz usługę Azure Resource Manager jako typ połączenia z usługą i jednostkę usługi (ręcznie) jako metodę uwierzytelniania. Wprowadź subskrypcję docelową, która jest zazwyczaj subskrypcją płaszczyzny sterowania. Wprowadź szczegóły jednostki usługi. Wybierz pozycję Weryfikuj , aby zweryfikować poświadczenia. Aby uzyskać więcej informacji na temat tworzenia jednostki usługi, zobacz Tworzenie jednostki usługi.
Wprowadź nazwę połączenia z usługą, na przykład użyj .Connection to MGMT subscription
Upewnij się, że pole wyboru Udziel uprawnień dostępu do wszystkich potoków jest zaznaczone. Wybierz pozycję Weryfikuj i zapisz , aby zapisać połączenie z usługą.
Uprawnienia
Większość potoków dodaje pliki do usługi Azure Repos i dlatego wymaga uprawnień ściągnięcia. W obszarze Project Ustawienia w sekcji Repozytoria wybierz kartę Zabezpieczenia repozytorium kodu źródłowego i przypisz uprawnienia Współtworzenie do .Build Service
Wdrażanie płaszczyzny sterowania
Nowo utworzone potoki mogą nie być widoczne w widoku domyślnym. Wybierz kartę Ostatnie i wróć do pozycji Wszystkie karty, aby wyświetlić nowe potoki .
Wybierz potok wdrażania płaszczyzny sterowania i wprowadź nazwy konfiguracji dla narzędzia wdrażania i biblioteki SAP. Wybierz pozycję Uruchom , aby wdrożyć płaszczyznę sterowania. Pamiętaj, aby zaznaczyć pole wyboru Wdróż aplikację internetową konfiguracji, jeśli chcesz skonfigurować aplikację internetową konfiguracji.
Ręczne konfigurowanie własnego agenta usługi Azure DevOps Services
Konfiguracja ręczna jest wymagana tylko wtedy, gdy agent usługi Azure DevOps Services nie jest konfigurowany automatycznie. Przed kontynuowaniem sprawdź, czy pula agentów jest pusta.
Aby nawiązać połączenie z modułem wdrażania:
Zaloguj się w witrynie Azure Portal.
Przejdź do grupy zasobów zawierającej maszynę wirtualną programu wdrażającego.
Połączenie do maszyny wirtualnej przy użyciu usługi Azure Bastion.
Domyślna nazwa użytkownika to azureadm.
Wybierz pozycję Klucz prywatny SSH z usługi Azure Key Vault.
Wybierz subskrypcję zawierającą płaszczyznę sterowania.
Wybierz magazyn kluczy wdrażania.
Z listy wpisów tajnych wybierz wpis tajny kończący się ciągiem -sshkey.
Połącz się z maszyną wirtualną.
Uruchom następujący skrypt, aby skonfigurować narzędzie do wdrażania:
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
Uruchom ponownie narzędzie wdrażania, ponownie połącz się i uruchom następujący skrypt, aby skonfigurować agenta usługi Azure DevOps:
cd ~/Azure_SAP_Automated_Deployment/
$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh
Zaakceptuj licencję i po wyświetleniu monitu o adres URL serwera wprowadź adres URL przechwycony podczas tworzenia projektu usługi Azure DevOps. W przypadku uwierzytelniania wybierz pozycję PAT i wprowadź wartość tokenu z poprzedniego kroku.
Po wyświetleniu monitu wprowadź nazwę puli aplikacji utworzoną w poprzednim kroku. Zaakceptuj domyślną nazwę agenta i domyślną nazwę folderu roboczego. Agent jest teraz skonfigurowany i uruchamiany.
Wdrażanie aplikacji internetowej płaszczyzny sterowania
Wybranie parametru podczas uruchamiania deploy the web app infrastructure
potoku wdrażania płaszczyzny sterowania aprowizuje infrastrukturę niezbędną do hostowania aplikacji internetowej. Potok Wdrażanie aplikacji internetowej publikuje oprogramowanie aplikacji w tej infrastrukturze.
Poczekaj na zakończenie wdrożenia. Wybierz kartę Rozszerzenia i postępuj zgodnie z instrukcjami, aby sfinalizować konfigurację. reply-url
Zaktualizuj wartości rejestracji aplikacji.
W wyniku uruchomienia potoku płaszczyzny sterowania część wymaganego adresu URL aplikacji internetowej jest przechowywana w zmiennej o nazwie WEBAPP_URL_BASE
w grupie zmiennych specyficznych dla środowiska. W dowolnym momencie można zaktualizować adresy URL zarejestrowanej aplikacji internetowej przy użyciu następującego polecenia.
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
Musisz również udzielić uprawnień czytelnika do przypisanej przez system tożsamości zarządzanej usługi App Service. Przejdź do zasobu usługi App Service. Po lewej stronie wybierz pozycję Tożsamość. Na karcie Przypisane przez system wybierz pozycję Przypisania ról platformy>Azure Dodaj przypisanie roli. Wybierz pozycję Subskrypcja jako zakres i rolę Czytelnik . Następnie wybierz opcję Zapisz. Bez tego kroku funkcja listy rozwijanej aplikacji internetowej nie będzie działać.
Teraz powinno być możliwe odwiedzanie aplikacji internetowej i używanie jej do wdrażania stref obciążeń SAP i infrastruktury systemu SAP.