Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie Bereitstellungen mithilfe von SAP Deployment Automation Framework durchführen. In diesem Beispiel wird Azure Cloud Shell verwendet, um die Infrastruktur der Steuerebene bereitzustellen. Der vm (deployer virtual machine) erstellt die verbleibende Infrastruktur und SAP HANA Konfigurationen.
Es gibt drei Hauptschritte einer SAP-Bereitstellung auf Azure mit dem Automatisierungsframework:
Bereiten Sie die Region vor. Sie stellen Komponenten bereit, um das SAP-Automatisierungsframework in einer angegebenen Azure Region zu unterstützen. In diesem Schritt führen Sie Folgendes aus:
- Erstellen Sie die Bereitstellungsumgebung.
- Erstellen Sie einen freigegebenen Speicher für Terraform-Zustandsdateien.
- Erstellen Sie gemeinsam genutzten Speicher für SAP-Installationsmedien.
Bereiten Sie die Arbeitslastzone vor. Sie stellen die Komponenten der Workloadzone bereit, z. B. das virtuelle Netzwerk und die Key Vaults.
Stellen Sie das System bereit. Sie stellen die Infrastruktur für das SAP-System bereit.
Es gibt mehrere Workflows im Bereitstellungsautomatisierungsprozess. Dieser Artikel konzentriert sich auf einen Workflow für eine einfache Bereitstellung. Sie können diesen Workflow, die eigenständige SAP S4 HANA-Umgebung, mithilfe von Bash bereitstellen. In den folgenden Abschnitten werden die allgemeine Hierarchie und die verschiedenen Phasen der Bereitstellung beschrieben.
Voraussetzungen
- Ein Azure-Abonnement. Falls Sie nicht über ein Abonnement verfügen, können Sie ein kostenloses Konto erstellen.
- Azure CLI Version 2.5.0 oder höher.
- Terraform Version 1.5 oder höher.
- Git zum Klonen von Automatisierungsframework-Repositorys.
- Ein SSH-Client oder Azure Bastion zum Herstellen einer Verbindung mit der Bereitstellungs-VM.
- Ein Azure Konto mit Berechtigungen zum Erstellen von Dienstprinzipalen und Zuweisen von Rollen (Mitwirkender und Benutzerzugriffsadministrator) für das Zielabonnement.
- Ausreichendes Azure Abonnement-Kernkontingent für DdSV4- und EdsV4-Familien-SKUs in der ausgewählten Region. Etwa 50 Kerne, die für jede VM-Familie verfügbar sind, sollten ausreichen.
- Ein gültiges SAP-Benutzerkonto (SAP-User oder S-Benutzerkonto) mit Softwaredownloadberechtigungen zum Herunterladen der SAP-Software.
- Das Repository SAP Deployment Automation Framework auf GitHub.
- (Optional) .NET SDK, wenn Sie die Konfigurationswebanwendung bereitstellen möchten.
Übersicht über die Umgebung
DAS SAP Deployment Automation Framework verfügt über zwei Hauptkomponenten:
- Bereitstellungsinfrastruktur (Kontrollfläche)
- SAP-Infrastruktur (SAP-Workload)
Das folgende Diagramm zeigt die Abhängigkeit zwischen der Steuerebene und der Anwendungsebene.
Das Framework verwendet Terraform für die Infrastrukturbereitstellung und ansible für das Betriebssystem und die Anwendungskonfiguration. Das folgende Diagramm zeigt die logische Trennung der Steuerebene und der Arbeitsauslastungszone.
Verwaltungszone
Die Verwaltungszone enthält die Steuerungsebeneninfrastruktur, aus der andere Umgebungen bereitgestellt werden. Nachdem die Verwaltungszone bereitgestellt wurde, müssen Sie, wenn überhaupt, nur selten erneut bereitstellen.
Der Deployer ist das Ausführungsmodul des SAP-Automatisierungsframeworks. Diese vorkonfigurierte VM wird zum Ausführen von Terraform- und Ansible-Befehlen verwendet.
Die SAP-Bibliothek bietet den persistenten Speicher für die Terraform-Zustandsdateien und die heruntergeladenen SAP-Installationsmedien für die Steuerungsebene.
Sie konfigurieren den Deployer und die Bibliothek in einer Terraform-Variablendatei .tfvars . Weitere Informationen finden Sie unter Konfigurieren der Steuerebene.
Arbeitslastzone
Eine SAP-Anwendung verfügt in der Regel über mehrere Bereitstellungsebenen. Beispielsweise können Sie über Entwicklungs-, Qualitätssicherungs- und Produktionsstufen verfügen. Das SAP Deployment Automation Framework bezeichnet diese Ebenen als Arbeitsauslastungszonen.
Die SAP-Workload-Zone enthält die Netzwerk- und freigegebenen Komponenten für die SAP-VMs. Zu diesen Komponenten gehören Routentabellen, Netzwerksicherheitsgruppen und virtuelle Netzwerke. Die Landschaft bietet die Möglichkeit, Bereitstellungen in verschiedene Umgebungen aufzuteilen. Weitere Informationen finden Sie unter Konfigurieren der Workloadzone.
Die Systembereitstellung besteht aus den virtuellen Computern zum Ausführen der SAP-Anwendung, einschließlich Web-, App- und Datenbankebenen. Weitere Informationen finden Sie unter Konfigurieren des SAP-Systems.
Einrichten von Cloud Shell
Wechseln Sie zu Azure Cloud Shell.
Melden Sie sich bei Ihrem Azure Konto an.
az loginAuthentifizieren Sie Ihre Anmeldung. Schließen Sie das Fenster erst, wenn Sie dazu aufgefordert werden.
Überprüfen Sie Ihr aktives Abonnement, und notieren Sie Ihre Abonnement-ID:
az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=tableOder
az account list --output=table | grep TrueÄndern Sie bei Bedarf Ihr aktives Abonnement.
az account set --subscription <Subscription ID>Überprüfen Sie, ob Ihr aktives Abonnement geändert wurde.
az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=tableEntfernen Sie optional alle Bereitstellungsartefakte. Verwenden Sie diesen Befehl, wenn Sie alle Reste früherer Bereitstellungsartefakte entfernen möchten.
cd ~ rm -rf Azure_SAP_Automated_Deployment .sap_deployment_automation .terraform.dErstellen Sie den Bereitstellungsordner, und klonen Sie das Repository.
mkdir -p ${HOME}/Azure_SAP_Automated_Deployment; cd $_ git clone https://github.com/Azure/sap-automation-bootstrap.git config git clone https://github.com/Azure/sap-automation.git sap-automation git clone https://github.com/Azure/sap-automation-samples.git samples cp -Rp samples/Terraform/WORKSPACES ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACESÜberprüfen Sie optional die Versionen von Terraform und die Azure CLI, die auf Ihrer Instanz von Cloud Shell verfügbar sind.
./sap-automation/deploy/scripts/helpers/check_workstation.shAktualisieren Sie zum Ausführen des Automatisierungsframeworks auf die folgenden Versionen:
-
azVersion 2.5.0 oder höher. -
terraformVersion 1.5 oder höher. Aktualisieren Sie nach Bedarf mithilfe der Terraform-Anweisungen.
-
Erstellen eines Diensthauptkontos
Das SAP-Automatisierungsbereitstellungsframework verwendet Dienstprinzipale für die Bereitstellung. Erstellen Sie einen Dienstprinzipal für die Steuerungsebene-Bereitstellung. Um Dienstprinzipale zu erstellen, vergewissern Sie sich, dass Sie ein Konto mit den erforderlichen Berechtigungen verwenden.
Wenn Sie einen Namen für Ihren Dienstprinzipal auswählen, stellen Sie sicher, dass der Name innerhalb Ihres Azure-Mandanten eindeutig ist.
Erteilen Sie den Dienstprinzipalmitwirkenden und den Administratorberechtigungen für den Benutzerzugriff.
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"Überprüfen Sie die Ausgabe. Beispiel:
{ "appId": "<AppId>", "displayName": "<environment>-Deployment-Account ", "name": "<AppId>", "password": "<AppSecret>", "tenant": "<TenantId>" }Notieren Sie die Ausgabedetails. Speichern Sie die Werte für
appId,password, undTenant.Die Ausgabe wird den folgenden Parametern zugeordnet. Sie verwenden diese Parameter in späteren Schritten mit Automatisierungsbefehlen.
Parameter-Eingabename Ausgabename spn_idappIdspn_secretpasswordtenant_idtenantWeisen Sie optional dem Dienstprinzipal die Rolle Benutzerzugriffsadministrator zu.
export appId="<appId>" az role assignment create --assignee ${appId} \ --role "User Access Administrator" \ --scope /subscriptions/${ARM_SUBSCRIPTION_ID}
Von Bedeutung
Wenn Sie der Dienstprinzipal nicht die Rolle "Benutzerzugriffsadministrator" zuweisen, können Sie berechtigungen nicht mithilfe der Automatisierung zuweisen.
Konfigurieren Sie die Anmeldeinformationen der Webanwendung der Steuerungsebene
Als Teil der Steuerungsebene des SAP Automation Frameworks können Sie optional eine interaktive Webanwendung erstellen, die Sie bei der Erstellung der erforderlichen Konfigurationsdateien unterstützt.
Erstellen einer App-Registrierung
Wenn Sie die Web-App verwenden möchten, müssen Sie zunächst eine App-Registrierung für Authentifizierungszwecke erstellen. Öffnen Sie Cloud Shell, und führen Sie die folgenden Befehle aus:
Ersetzen Sie LAB nach Bedarf durch Ihre Umgebung.
export env_code="LAB"
echo '[{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}]}]' >> manifest.json
export TF_VAR_app_registration_app_id=$(az ad app create \
--display-name ${env_code}-webapp-registration \
--enable-id-token-issuance true \
--sign-in-audience AzureADMyOrg \
--required-resource-access @manifest.json \
--query "appId" --output tsv )
#remove the placeholder manifest.json
rm manifest.json
export TF_VAR_webapp_client_secret=$(az ad app credential reset \
--id $TF_VAR_app_registration_app_id --append \
--query "password" --output tsv )
export TF_use_webapp=true
echo "App registration ID: ${TF_VAR_app_registration_app_id}"
echo "App registration password: ${TF_VAR_webapp_client_secret}"
Hinweis
Stellen Sie sicher, dass Sie mit einem Benutzerkonto angemeldet sind, das über die erforderlichen Berechtigungen zum Erstellen von Anwendungsregistrierungen verfügt. Weitere Informationen zu App-Registrierungen finden Sie unter Erstellen einer App-Registrierung.
Notieren Sie die Ausgabedetails. Stellen Sie sicher, dass Sie die Werte für App registration ID und App registration password speichern.
Die Ausgabe wird den folgenden Parametern zugeordnet. Sie verwenden diese Parameter in späteren Schritten mit Automatisierungsbefehlen.
| Parameter-Eingabename | Ausgabename |
|---|---|
app_registration_app_id |
App registration ID |
webapp_client_secret |
App registration password |
Konfigurationsdateien ansehen
Öffnen Sie Visual Studio Code aus Cloud Shell.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES code .Erweitern Sie das
WORKSPACESVerzeichnis. Es gibt sechs Unterordner:CONFIGURATION,DEPLOYER,LANDSCAPE,LIBRARY,SYSTEMundBOMS. Erweitern Sie jeden dieser Ordner, um nach regionalen Bereitstellungskonfigurationsdateien zu suchen.Suchen Sie die Terraform-Variablendateien im entsprechenden Unterordner. Die Terraform-Variablendatei könnte z. B. wie in diesem Beispiel
DEPLOYERaussehen:# The environment value is a mandatory field, it is used for partitioning the environments, for example, PROD and NP. environment = "LAB" # The location/region value is a mandatory field, it is used to control where the resources are deployed location = "swedencentral" # management_network_address_space is the address space for management virtual network management_network_address_space = "10.10.20.0/25" # management_subnet_address_prefix is the address prefix for the management subnet management_subnet_address_prefix = "10.10.20.64/28" # management_firewall_subnet_address_prefix is the address prefix for the firewall subnet management_firewall_subnet_address_prefix = "10.10.20.0/26" firewall_deployment = true # management_bastion_subnet_address_prefix is the address prefix for the bastion subnet management_bastion_subnet_address_prefix = "10.10.20.128/26" bastion_deployment = true # deployer_enable_public_ip controls if the deployer Virtual machines will have Public IPs deployer_enable_public_ip = true # deployer_count defines how many deployer VMs will be deployed deployer_count = 1 # use_service_endpoint defines that the management subnets have service endpoints enabled use_service_endpoint = true # use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = false # enable_firewall_for_keyvaults_and_storage defines that the storage accounts and key vaults have firewall enabled enable_firewall_for_keyvaults_and_storage = false # public_network_access_enabled controls if storage account and key vaults have public network access enabled public_network_access_enabled = trueBeachten Sie die Speicherorte der Terraform-Variablendateien für zukünftige Bearbeitungen während der Bereitstellung.
Suchen Sie die Terraform-Variablendateien für die SAP-Bibliothek im entsprechenden Unterordner. Die Terraform-Variablendatei könnte z. B. wie in diesem Beispiel
LIBRARYaussehen:# The environment value is a mandatory field, it is used for partitioning the environments, for example, PROD and NP. environment = "LAB" # The location/region value is a mandatory field, it is used to control where the resources are deployed location = "swedencentral" #Defines the DNS suffix for the resources dns_label = "lab.sdaf.contoso.net" # use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = falseBeachten Sie die Speicherorte der Terraform-Variablendateien für zukünftige Bearbeitungen während der Bereitstellung.
Von Bedeutung
Stellen Sie sicher, dass die
dns_labelIhrer Instanz von Azure Privates DNS entspricht.
Bereitstellen der Steuerungsebene
Verwenden Sie das skript deploy_controlplane.sh , um den Deployer und die Bibliothek bereitzustellen. Diese Bereitstellungselemente bilden die Steuerungsebene für einen ausgewählten Automatisierungsbereich.
Die Bereitstellung durchläuft Zyklen der Bereitstellung der Infrastruktur, das Aktualisieren des Zustands und das Hochladen der Terraform-Zustandsdateien in das Bibliotheksspeicherkonto. Alle diese Schritte werden in ein einzelnes Bereitstellungsskript verpackt. Das Skript benötigt den Speicherort der Konfigurationsdatei für die Bereitstellung und Bibliothek sowie einige andere Parameter.
Wählen Sie beispielsweise "Westeuropa" als Bereitstellungsort mit dem vierstelligen Namen SECEaus, wie zuvor beschrieben. Die Konfigurationsdatei LAB-SECE-DEP05-INFRASTRUCTURE.tfvars für den Beispiel-Deployment befindet sich im Ordner ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/LAB-SECE-DEP05-INFRASTRUCTURE.
Die SAP Library-Beispielkonfigurationsdatei LAB-SECE-SAP_LIBRARY.tfvars befindet sich im ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/LAB-SECE-SAP_LIBRARY Ordner.
Legen Sie die Umgebungsvariablen für den Dienstprinzipal fest:
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appId>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenantId>"Wenn Sie das Skript von einer Arbeitsstation ausführen, die nicht Teil des Bereitstellungsnetzwerks oder von Cloud Shell ist, können Sie den folgenden Befehl verwenden, um die Umgebungsvariable zum Zulassen der Konnektivität von Ihrer IP-Adresse festzulegen:
export TF_VAR_Agent_IP=<your-public-ip-address>Wenn Sie die Konfigurationswebanwendung bereitstellen, müssen Sie auch die folgenden Umgebungsvariablen festlegen:
export TF_VAR_app_registration_app_id=<appRegistrationId> export TF_VAR_webapp_client_secret=<appRegistrationPassword> export TF_use_webapp=trueErstellen Sie den Deployer und die SAP-Bibliothek, und fügen Sie mithilfe dieses Skripts die Dienstprinzipaldetails zum Bereitstellungsschlüsseltresor hinzu:
export env_code="LAB" export vnet_code="DEP05" export region_code="SECE" export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" cd $CONFIG_REPO_PATH az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}" deployer_parameter_file="${CONFIG_REPO_PATH}/DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars" library_parameter_file="${CONFIG_REPO_PATH}/LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars" ${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/deploy_controlplane.sh \ --deployer_parameter_file "${deployer_parameter_file}" \ --library_parameter_file "${library_parameter_file}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --spn_id "${ARM_CLIENT_ID}" \ --spn_secret "${ARM_CLIENT_SECRET}" \ --tenant_id "${ARM_TENANT_ID}"Wenn Authentifizierungsprobleme auftreten, führen Sie
az logoutaus, um sich abzumelden undtoken-cachezu leeren. Führen Sie dann den Befehlaz loginaus, um die Authentifizierung erneut zu authentifizieren.Warten Sie, bis das Automatisierungsframework die Terraform-Vorgänge
planundapplyausführt.Die Bereitstellung des Deployers kann etwa 15 bis 20 Minuten dauern.
Sie müssen einige Werte für anstehende Schritte notieren. Suchen Sie in der Ausgabe nach diesem Textblock:
######################################################################################### # # # Please save these values: # # - Key Vault: LABSECEDEP05user39B # # - Deployer IP: x.x.x.x # # - Storage Account: labsecetfstate53e # # - Web Application Name: lab-sece-sapdeployment39B # # - App registration Id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # # # #########################################################################################Wechseln Sie zum portal Azure.
Klicken Sie auf Ressourcengruppen. Suchen Sie nach neuen Ressourcengruppen für die Bereitstellungsinfrastruktur und -bibliothek. Beispielsweise können Sie sehen
LAB-[region]-DEP05-INFRASTRUCTUREundLAB-[region]-SAP_LIBRARY.Die Inhalte der Ressourcengruppe "deployer" und "SAP Library" werden hier gezeigt.
Die Terraform-Zustandsdatei wird nun in das Speicherkonto eingefügt, dessen Name enthält
tfstate. Das Speicherkonto weist einen Containertfstatemit den Bereitstellungs- und Bibliotheksstatusdateien auf. Der Inhalt destfstateContainer wird nach einer erfolgreichen Bereitstellung des Control Plane hier angezeigt.
Häufige Probleme und Lösungen
Hier sind einige Tipps zur Problembehandlung:
Wenn beim Erstellen des Deployer-Moduls die folgende Fehlermeldung angezeigt wird, stellen Sie sicher, dass Sie sich beim Ausführen des Skripts im
WORKSPACESVerzeichnis befinden:Incorrect parameter file. The file must contain the environment attribute!!Der folgende Fehler ist vorübergehend. Führen Sie denselben Befehl erneut aus,
deploy_controlplane.sh.Error: file provisioner error .. timeout - last error: dial tcpWenn nach dem Ausführen des Skripts
deploy_controlplane.shAuthentifizierungsprobleme auftreten, führen Sie den folgenden Befehl aus:az logout az login
Herstellen einer Verbindung mit dem virtuellen Bereitstellungscomputer
Nachdem die Steuerebene bereitgestellt wurde, wird der Terraform-Zustand mithilfe des Remote-Backend azurerm gespeichert. Alle Geheimnisse zum Verbinden mit der Bereitstellungs-VM sind in einem Key Vault in der Ressourcengruppe des Deployers verfügbar.
So stellen Sie eine Verbindung mit Ihrer Bereitstellungs-VM her:
Melden Sie sich beim portal Azure an.
Wählen oder suchen Sie nach Schlüssel-Tresoren.
Suchen Sie auf der Seite "Key Vault " den Bereitstellungsschlüsseltresor. Der Name beginnt mit
LAB[REGION]DEP05user. Filtern Sie bei Bedarf nach Ressourcengruppe oder Standort.Wählen Sie im Abschnitt "Einstellungen" im linken Bereich " Geheime Schlüssel" aus.
Suchen Sie den geheimen Schlüssel, der sshkey enthält, und wählen Sie es aus. Es könnte wie
LAB-[REGION]-DEP05-sshkeyfolgt aussehen.Wählen Sie auf der Seite des geheimen Schlüssels die aktuelle Version aus. Kopieren Sie dann den geheimen Wert.
Öffnen Sie einen Nur-Text-Editor. Kopieren Sie den geheimen Wert.
Speichern Sie die Datei, in der Sie SSH-Schlüssel beibehalten. Verwenden Sie z. B.
C:\\Users\\<your-username>\\.ssh.Speichern Sie die Datei. Wenn Sie aufgefordert werden, "Speichern unter" auszuwählen, wählen Sie "Alle Dateien" aus, wenn SSH keine Option ist. Verwenden Sie z. B.
deployer.ssh.Stellen Sie eine Verbindung mit der Bereitstellungs-VM über einen beliebigen SSH-Client her, z. B. Visual Studio Code. Verwenden Sie die zuvor erwähnte öffentliche IP-Adresse und den heruntergeladenen SSH-Schlüssel. Anweisungen zum Herstellen einer Verbindung mit dem Deployer mithilfe von Visual Studio Code finden Sie unter Verbinden mit dem Deployer mithilfe von Visual Studio Code. Wenn Sie PuTTY verwenden, konvertieren Sie zuerst die SSH-Schlüsseldatei mithilfe von PuTTYGen.
Hinweis
Der Standardbenutzername ist azureadm.
Stellen Sie sicher, dass die Zum Speichern des SSH-Schlüssels verwendete Datei die Datei mit dem richtigen Format speichern kann, d. h. ohne Wagenrücklaufzeichen (CR). Verwenden Sie Visual Studio Code oder einen einfachen Text-Editor.
Nachdem Sie mit der Bereitstellungs-VM verbunden sind, können Sie die SAP-Software mithilfe der Stückliste (Bill of Materials, BOM) herunterladen.
Stellen Sie eine Verbindung mit der Bereitstellungs-VM her, wenn Sie keine öffentliche IP verwenden
Für Bereitstellungen ohne öffentliche IP-Konnektivität ist die direkte Konnektivität über das Internet nicht zulässig. In diesen Fällen können Sie ein Azure Bastion Sprungfeld verwenden oder den nächsten Schritt von einem Computer ausführen, auf dem eine Verbindung mit dem Azure virtuellen Netzwerk besteht.
Im folgenden Beispiel wird Azure Bastion verwendet.
So stellen Sie eine Verbindung mit dem Deployer her:
Melden Sie sich beim portal Azure an.
Wechseln Sie zu der Ressourcengruppe, die den virtuellen Bereitstellungscomputer enthält.
Stellen Sie mithilfe von Azure Bastion eine Verbindung mit dem virtuellen Computer her.
Der Standardbenutzername ist azureadm.
Wählen Sie SSH Private Key aus Azure Key Vault aus.
Wählen Sie das Abonnement aus, das die Steuerebene enthält.
Wählen Sie den Schlüsseltresor des Bereitstellers aus.
Wählen Sie in der Liste der geheimen Schlüssel den geheimen Schlüssel aus, der mit -sshkey endet.
Stellen Sie eine Verbindung mit der VM her.
Der Rest der Aufgaben muss auf dem Deployer ausgeführt werden.
Steuerungsebene sichern
Die Steuerungsebene ist der wichtigste Teil des SAP-Automatisierungsframeworks. Es ist wichtig, die Steuerebene zu sichern. Die folgenden Schritte helfen Ihnen, die Steuerungsebene zu sichern.
Sie sollten die Steuerebenendatei tfvars aktualisieren, damit Sie private Endpunkte aktivieren und den öffentlichen Zugriff auf die Speicherkonten und Schlüsselvaults blockieren können.
Um die Konfigurationsdateien für die Steuerungsebene in den virtuellen Bereitstellungscomputer zu kopieren, können Sie das
sync_deployer.shSkript verwenden. Melden Sie sich bei der Bereitstellungs-VM an, und aktualisieren Sie den folgenden Befehl, um Ihren Terraform-Statusspeicherkontonamen zu verwenden. Führen Sie dann das folgende Skript aus:terraform_state_storage_account=labsecetfstate### cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES ../sap-automation/deploy/scripts/sync_deployer.sh --storageaccountname $terraform_state_storage_account --state_subscription $ARM_SUBSCRIPTION_IDMit diesem Befehl werden die
tfvarsKonfigurationsdateien aus dem Speicherkonto der SAP-Bibliothek in den virtuellen Bereitstellungscomputer kopiert.Ändern Sie die Konfigurationsdateien für die Steuerungsebene in:
# use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = true # enable_firewall_for_keyvaults_and_storage defines that the storage accounts and key vaults have firewall enabled enable_firewall_for_keyvaults_and_storage = true # public_network_access_enabled controls if storage account and key vaults have public network access enabled public_network_access_enabled = false # if you want to use the webapp use_webapp = trueFühren Sie die Bereitstellung erneut aus, um die Änderungen anzuwenden. Aktualisieren Sie den Namen des Speicherkontos und den Schlüsseltresornamen im Skript.
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appId>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenantId>"Erstellen Sie den Deployer und die SAP-Bibliothek.
export env_code="LAB" export vnet_code="DEP05" export region_code="SECE" terraform_state_storage_account=labsecetfstate### vault_name="LABSECEDEP05user###" export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" cd $CONFIG_REPO_PATH deployer_parameter_file="${CONFIG_REPO_PATH}/DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars" library_parameter_file="${CONFIG_REPO_PATH}/LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars" az logout az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}" ${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/deploy_controlplane.sh \ --deployer_parameter_file "${deployer_parameter_file}" \ --library_parameter_file "${library_parameter_file}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --storageaccountname "${terraform_state_storage_account}" \ --vault "${vault_name}"
Bereitstellen der Webanwendung
Sie können die Webanwendung mithilfe des folgenden Skripts bereitstellen:
export env_code="LAB"
export vnet_code="DEP05"
export region_code="SECE"
export webapp_name="<webAppName>"
export app_id="<appRegistrationId>"
export webapp_id="<webAppId>"
export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
cd $DEPLOYMENT_REPO_PATH
cd Webapp/SDAF
dotnet build SDAFWebApp.csproj
dotnet publish SDAFWebApp.csproj --output publish
cd publish
zip -r SDAF.zip .
az webapp deploy --resource-group ${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE --name $webapp_name --src-path SDAF.zip --type zip
az ad app update --id $app_id --web-home-page-url https://$webapp_name.azurewebsites.net --web-redirect-uris https://$webapp_name.azurewebsites.net/ https://$webapp_name.azurewebsites.net/.auth/login/aad/callback
az role assignment create --assignee $webapp_id --role reader --subscription $ARM_SUBSCRIPTION_ID --scope /subscriptions/$ARM_SUBSCRIPTION_ID
az webapp restart --resource-group ${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE --name $webapp_name
Sammeln von Workloadzoneninformationen
Sammeln Sie die folgenden Informationen in einem Text-Editor. Diese Informationen wurden am Ende der Phase "Bereitstellen der Steuerungsebene" gesammelt.
Der Name des Terraform-Dateispeicherkontos in der Bibliotheksressourcengruppe:
Im Anschluss an das vorherige Beispiel ist die Ressourcengruppe
LAB-SECE-SAP_LIBRARY.Der Name des Speicherkontos enthält
labsecetfstate.
Der Name des Key Vaults in der Bereitstellungsressourcengruppe:
Im Anschluss an das vorherige Beispiel ist die Ressourcengruppe
LAB-SECE-DEP05-INFRASTRUCTURE.Der Name des Schlüsseltresors enthält
LABSECEDEP05user.
Die öffentliche IP-Adresse der Bereitstellungs-VM. Wechseln Sie zur Ressourcengruppe Ihres Deployers, öffnen Sie den virtuellen Bereitstellungscomputer, und kopieren Sie die öffentliche IP-Adresse.
Sie müssen die folgenden Informationen sammeln:
Der Name der Bereitstellungsstatusdatei befindet sich unter der Bibliotheksressourcengruppe:
Wählen Sie Bibliotheksressourcengruppe>Statusspeicherkonto>Container>
tfstateaus. Kopieren Sie den Namen der Bereitstellungsstatusdatei.Im Folgenden, im vorherigen Beispiel lautet der Name des BLOB
LAB-SECE-DEP05-INFRASTRUCTURE.terraform.tfstate.
Registrieren Sie den Dienstprinzipal, falls erforderlich. In diesem Beispiel ist dieser Schritt nicht erforderlich.
Wenn eine Umgebung zum ersten Mal instanziiert wird, muss ein Dienstprinzipal registriert werden. In diesem Beispiel befindet sich die Steuerebene in der
LABUmgebung und die Workloadzone befindet sich ebenfalls inLAB. Aus diesem Grund muss ein Serviceprinzipal für dieLABUmgebung registriert werden.export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appID>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenant>" export key_vault="<vaultName>" export env_code="LAB" export region_code="SECE" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/set_secrets.sh \ --environment "${env_code}" \ --region "${region_code}" \ --vault "${key_vault}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --spn_id "${ARM_CLIENT_ID}" \ --spn_secret "${ARM_CLIENT_SECRET}" \ --tenant_id "${ARM_TENANT_ID}"
Vorbereiten der Bereitstellung der Workloadzone
Stellen Sie eine Verbindung mit Ihrer Bereitstellungs-VM her, um die folgenden Schritte auszuführen. Eine Kopie des Repositorys ist jetzt vorhanden.
Bereitstellen der Workloadzone
Verwenden Sie das Skript install_workloadzone , um die SAP-Workloadzone bereitzustellen.
Wechseln Sie auf der Bereitstellungs-VM zum
Azure_SAP_Automated_DeploymentOrdner.cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/LAB-SECE-SAP04-INFRASTRUCTUREÖffnen Sie optional die Konfigurationsdatei für die Workloadzone, und ändern Sie ggf. den logischen Netzwerknamen so, dass er dem Netzwerknamen entspricht.
Starten Sie die Bereitstellung der Workloadzone. Die Details, die Sie zuvor gesammelt haben, sind hier erforderlich:
- Name der Bereitstellungsdatei
tfstate(imtfstateContainer gefunden) - Name des
tfstateSpeicherkontos - Name des Deployer-Schlüsselbunds
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appId>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenantId>"export deployer_env_code="LAB" export sap_env_code="LAB" export region_code="SECE" export deployer_vnet_code="DEP05" export vnet_code="SAP04" export tfstate_storage_account="<storageaccountName>" export key_vault="<vaultName>" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}" cd "${CONFIG_REPO_PATH}/LANDSCAPE/${sap_env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE" parameterFile="${sap_env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars" deployerState="${deployer_env_code}-${region_code}-${deployer_vnet_code}-INFRASTRUCTURE.terraform.tfstate" $SAP_AUTOMATION_REPO_PATH/deploy/scripts/install_workloadzone.sh \ --parameterfile "${parameterFile}" \ --deployer_environment "${deployer_env_code}" \ --deployer_tfstate_key "${deployerState}" \ --keyvault "${key_vault}" \ --storageaccountname "${tfstate_storage_account}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --spn_id "${ARM_CLIENT_ID}" \ --spn_secret "${ARM_CLIENT_SECRET}" \ --tenant_id "${ARM_TENANT_ID}"Die Bereitstellung der Workload-Zone sollte automatisch gestartet werden.
Warten Sie, bis die Bereitstellung abgeschlossen ist. Die neue Ressourcengruppe wird im Azure Portal angezeigt.
- Name der Bereitstellungsdatei
Vorbereiten der Bereitstellung der SAP-Systeminfrastruktur
Stellen Sie eine Verbindung mit Ihrer Bereitstellungs-VM her, um die folgenden Schritte auszuführen. Eine Kopie des Repositorys ist jetzt vorhanden.
Wechseln Sie in den WORKSPACES/SYSTEM Ordner, und kopieren Sie die Beispielkonfigurationsdateien aus dem Repository.
Bereitstellen der SAP-Systeminfrastruktur
Nachdem die Workloadzone abgeschlossen ist, können Sie die SAP-Systeminfrastrukturressourcen bereitstellen. Das SAP-System erstellt Ihre VMs und unterstützende Komponenten für Ihre SAP-Anwendung. Verwenden Sie das skript installer.sh , um das SAP-System bereitzustellen.
Das SAP-System stellt Folgendes bereit:
- Die Datenbankebene, die Datenbank-VMs und deren Datenträger und eine Azure Load Balancer Standard Instanz bereitstellt. Sie können HANA-Datenbanken oder AnyDB-Datenbanken auf dieser Ebene ausführen.
- Die SCS-Ebene, die eine kundendefinierte Anzahl von VMs und eine Azure Load Balancer Standard Instanz bereitstellt.
- Die Anwendungsebene, die die virtuellen Computer und deren Datenträger bereitstellt.
- Die Web Dispatcher-Ebene.
Bereitstellen des SAP-Systems:
export sap_env_code="LAB"
export region_code="SECE"
export vnet_code="SAP04"
export SID="L00"
export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
cd ${CONFIG_REPO_PATH}/SYSTEM/${sap_env_code}-${region_code}-${vnet_code}-${SID}
${DEPLOYMENT_REPO_PATH}/deploy/scripts/installer.sh \
--parameterfile "${sap_env_code}-${region_code}-${vnet_code}-${SID}.tfvars" \
--type sap_system
Überprüfen Sie, ob sich die Systemressourcengruppe jetzt im Azure-Portal befindet.
Sap-Software mithilfe der Materialrechnung abrufen
Das Automatisierungsframework bietet Ihnen Tools zum Herunterladen von Software aus SAP mithilfe der SAP-BOM. Die Software wird in die SAP-Bibliothek heruntergeladen, die als Archiv für alle Medien fungiert, die für die Bereitstellung von SAP erforderlich sind.
Die SAP BOM imitiert den SAP-Wartungsplaner. Es gibt relevante Produkt-IDs und eine Reihe von Download-URLs.
Ein Beispielextrakt einer BOM-Datei sieht wie in diesem Beispiel aus:
---
name: 'S41909SPS03_v0010'
target: 'S/4 HANA 1909 SPS 03'
version: 7
product_ids:
dbl: NW_ABAP_DB:S4HANA1909.CORE.HDB.ABAP
scs: NW_ABAP_ASCS:S4HANA1909.CORE.HDB.ABAP
scs_ha: NW_ABAP_ASCS:S4HANA1909.CORE.HDB.ABAPHA
pas: NW_ABAP_CI:S4HANA1909.CORE.HDB.ABAP
pas_ha: NW_ABAP_CI:S4HANA1909.CORE.HDB.ABAPHA
app: NW_DI:S4HANA1909.CORE.HDB.PD
app_ha: NW_DI:S4HANA1909.CORE.HDB.ABAPHA
web: NW_Webdispatcher:NW750.IND.PD
ers: NW_ERS:S4HANA1909.CORE.HDB.ABAP
ers_ha: NW_ERS:S4HANA1909.CORE.HDB.ABAPHA
materials:
dependencies:
- name: HANA_2_00_055_v0005ms
media:
# SAPCAR 7.22
- name: SAPCAR
archive: SAPCAR_1010-70006178.EXE
checksum: dff45f8df953ef09dc560ea2689e53d46a14788d5d184834bb56544d342d7b
filename: SAPCAR
permissions: '0755'
url: https://softwaredownloads.sap.com/file/0020000002208852020
# Kernel
- name: "Kernel Part I ; OS: Linux on x86_64 64bit ; DB: Database independent"
Bei dieser Beispielkonfiguration lautet LAB-SECE-DEP05-INFRASTRUCTUREdie Ressourcengruppe . Der Name des Deployer-Schlüsseltresors enthält LABSECEDEP05user im Namen. Sie verwenden diese Informationen, um die Key Vault-Geheimnisse Ihres Deployers zu konfigurieren.
Stellen Sie eine Verbindung mit Ihrer Bereitstellungs-VM her, um die folgenden Schritte auszuführen. Eine Kopie des Repositorys ist jetzt vorhanden.
Fügen Sie einen Geheimschlüssel mit dem Benutzernamen für Ihr SAP-Benutzerkonto hinzu. Ersetzen Sie
<vaultName>durch den Namen Ihres Deployer Key Vault. Ersetzen Sie<sap-username>außerdem durch Ihren SAP-Benutzernamen.export key_vault=<vaultName> export sap_username=<sap-username> az keyvault secret set --name "S-Username" --vault-name $key_vault --value "${sap_username}";Fügen Sie einen geheimen Schlüssel mit dem Kennwort für Ihr SAP-Benutzerkonto hinzu. Ersetzen Sie
<vaultName>durch Ihren Bereitstellungsschlüsseltresornamen und<sap-password>durch Ihr SAP-Kennwort.Hinweis
Die Verwendung einzelner Anführungszeichen beim Festlegen
sap_user_passwordist wichtig. Die Verwendung von Sonderzeichen im Kennwort kann andernfalls zu unvorhersehbaren Ergebnissen führen.sap_user_password='<sap-password>' az keyvault secret set --name "S-Password" --vault-name "${key_vault}" --value="${sap_user_password}";Konfigurieren Sie die SAP-Parameterdatei für den Downloadprozess. Laden Sie dann die SAP-Software mithilfe von Ansible Playbooks herunter. Führen Sie die folgenden Befehle aus:
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES mkdir BOMS cd BOMS vi sap-parameters.yamlAktualisieren Sie
bom_base_nameauf den Namen BOM. Ersetzen Sie<Deployer KeyVault Name>durch den Namen der Azure Key Vault für die Bereitstellungsressourcengruppe.Ihre Datei sollte mit der folgenden Beispielkonfiguration vergleichbar sein:
bom_base_name: S42022SPS00_v0001ms deployer_kv_name: <vaultName> BOM_directory: ${HOME}/Azure_SAP_Automated_Deployment/samples/SAPUm die Software herunterzuladen, führen Sie das Ansible Playbook aus. Eine Möglichkeit zum Ausführen der Playbooks besteht darin, das Menü "Downloader " zu verwenden. Führen Sie das
download_menuSkript aus.${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/download_menu.shWählen Sie aus, welche Playbooks ausgeführt werden sollen.
1) BoM Downloader 3) Quit Please select playbook:Wählen Sie das Playbook
1) BoM Downloaderaus, um die in der BOM-Datei beschriebene SAP-Software in das Speicherkonto herunterzuladen. Überprüfen Sie, ob der Container über alle Medien für IhresapbitsInstallation verfügt.Sie können das Playbook über das Konfigurationsmenü oder direkt über die Befehlszeile ausführen.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/BOMS/ export ANSIBLE_PRIVATE_KEY_FILE=sshkey playbook_options=( --inventory-file="${sap_sid}_hosts.yaml" --private-key=${ANSIBLE_PRIVATE_KEY_FILE} --extra-vars="_workspace_directory=`pwd`" --extra-vars="@sap-parameters.yaml" --extra-vars="bom_processing=true" "${@}" ) # Run the playbook to retrieve the ssh key from the Azure Key Vault ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml # Run the playbook to perform the Operating System configuration ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_bom_downloader.yamlWenn Sie möchten, können Sie auch die SAP-Benutzeranmeldeinformationen als Parameter übergeben.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/BOMS/ sap_username=<sap-username> sap_user_password='<sap-password>' export ANSIBLE_PRIVATE_KEY_FILE=sshkey playbook_options=( --inventory-file="${sap_sid}_hosts.yaml" --private-key=${ANSIBLE_PRIVATE_KEY_FILE} --extra-vars="_workspace_directory=`pwd`" --extra-vars="@sap-parameters.yaml" --extra-vars="s_user=${sap_username}" --extra-vars="s_password=${sap_user_password}" --extra-vars="bom_processing=true" "${@}" ) # Run the playbook to retrieve the ssh key from the Azure Key Vault ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml # Run the playbook to perform the Operating System configuration ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_bom_downloader.yaml
Installieren der SAP-Anwendung
Die SAP-Anwendungsinstallation erfolgt über Ansible Playbooks.
Wechseln Sie zum Systembereitstellungsordner.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
Stellen Sie sicher, dass die folgenden Dateien in den aktuellen Ordnern vorhanden sind: sap-parameters.yaml und L00_host.yaml.
Für ein eigenständiges SAP S/4HANA-System gibt es acht Playbooks, die sequenziert ausgeführt werden können. Eine Möglichkeit zum Ausführen der Playbooks besteht darin, das Konfigurationsmenü zu verwenden.
Führen Sie das configuration_menu Skript aus.
${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/configuration_menu.sh
Wählen Sie die auszuführenden Playbooks aus.
Playbook: Grundlegende Betriebssystemkonfiguration
Dieses Playbook führt das allgemeine Betriebssystemkonfigurationssetup auf allen Computern durch, die die Konfiguration von Softwarerepositorys, Paketen und Diensten umfasst.
Sie können das Playbook mithilfe des Konfigurationsmenüs oder der Befehlszeile ausführen.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to perform the Operating System configuration
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_01_os_base_config.yaml
Playbook: SAP-spezifische Betriebssystemkonfiguration
Dieses Playbook führt die Konfiguration des SAP-Betriebssystems auf allen Computern durch. Die Schritte umfassen die Erstellung von Volumengruppen und Dateisystemen sowie die Konfiguration von Softwarerepositorys, Paketen und Diensten.
Sie können das Playbook mithilfe des Konfigurationsmenüs oder der Befehlszeile ausführen.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to perform the SAP Specific Operating System configuration
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_02_os_sap_specific_config.yaml
Playbook: BOM-Verarbeitung
Dieses Playbook lädt die SAP-Software auf die SCS-VM herunter.
Sie können das Playbook mithilfe des Konfigurationsmenüs oder der Befehlszeile ausführen.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_03_bom_processing.yaml
Playbook: SCS-Installation
Dieses Playbook installiert SAP Central Services. Bei hochverfügbaren Konfigurationen installiert das Playbook auch die SAP ERS Instanz und konfiguriert Pacemaker.
Sie können das Playbook mithilfe des Konfigurationsmenüs oder der Befehlszeile ausführen.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_00_00_sap_scs_install.yaml
Playbook: Datenbankinstanzinstallation
Dieses Playbook installiert die Datenbankinstanzen.
Sie können das Playbook mithilfe des Konfigurationsmenüs oder der Befehlszeile ausführen.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_04_00_00_db_install.yaml
Playbook: Datenbanklast
Dieses Playbook ruft die Datenbankladeaufgabe vom primären Anwendungsserver auf.
Sie können das Playbook mithilfe des Konfigurationsmenüs oder der Befehlszeile ausführen.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_01_sap_dbload.yaml
Playbook: Einrichten der hochverfügbarkeitsbasierten Datenbank
Dieses Playbook konfiguriert die hohe Verfügbarkeit der Datenbank. Für HANA umfasst es die HANA-Systemreplikation und Pacemaker für die HANA-Datenbank.
Sie können das Playbook mithilfe des Konfigurationsmenüs oder der Befehlszeile ausführen.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_04_00_01_db_ha.yaml
Playbook: Primäre Anwendungsserverinstallation
Dieses Playbook installiert den primären Anwendungsserver. Sie können das Playbook mithilfe des Konfigurationsmenüs oder der Befehlszeile ausführen.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_02_sap_pas_install.yaml
Playbook: Anwendungsserverinstallationen
Dieses Playbook installiert die Anwendungsserver. Sie können das Playbook mithilfe des Konfigurationsmenüs oder der Befehlszeile ausführen.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_02_sap_app_install.yaml
Playbook: Web Dispatcher-Installationen
Dieses Playbook installiert die Web Dispatchers. Sie können das Playbook mithilfe des Konfigurationsmenüs oder der Befehlszeile ausführen.
Sie haben jetzt ein eigenständiges HANA-System bereitgestellt und konfiguriert. Wenn Sie eine hochverfügbare (HA) SAP HANA-Datenbank konfigurieren müssen, führen Sie das HANA-HA-Playbook aus.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_04_sap_web_install.yaml
Bereinigen von Ressourcen
Es ist wichtig, Ihre SAP-Installation nach Abschluss des Vorgangs zu bereinigen. Andernfalls entstehen weiterhin Kosten im Zusammenhang mit den Ressourcen.
Um die gesamte bereitgestellte SAP-Infrastruktur zu entfernen, müssen Sie:
- Entfernen Sie die SAP-Systeminfrastrukturressourcen.
- Entfernen Sie alle Lastzonen (die Landschaft).
- Entfernen Sie die Steuerebene.
Führen Sie die Entfernung Ihrer SAP-Infrastrukturressourcen und Workloadzonen aus der Bereitstellungs-VM aus. Führen Sie die Entfernung der Steuerebene aus Cloud Shell aus.
Bevor Sie beginnen, melden Sie sich bei Ihrem Azure Konto an. Überprüfen Sie dann, ob Sie sich im richtigen Abonnement befinden.
Entfernen der SAP-Infrastruktur
Wechseln Sie zum LAB-SECE-SAP01-L00 Unterordner innerhalb des Ordners SYSTEM . Führen Sie dann den folgenden Befehl aus:
export sap_env_code="LAB"
export region_code="SECE"
export sap_vnet_code="SAP04"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/${sap_env_code}-${region_code}-${sap_vnet_code}-L00
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh \
--parameterfile "${sap_env_code}-${region_code}-${sap_vnet_code}-L00.tfvars" \
--type sap_system
Entfernen der SAP-Workloadzone
Wechseln Sie zum LAB-XXXX-SAP01-INFRASTRUCTURE Unterordner innerhalb des Ordners LANDSCAPE . Führen Sie dann den folgenden Befehl aus:
export sap_env_code="LAB"
export region_code="SECE"
export sap_vnet_code="SAP01"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/${sap_env_code}-${region_code}-${sap_vnet_code}-INFRASTRUCTURE
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh \
--parameterfile ${sap_env_code}-${region_code}-${sap_vnet_code}-INFRASTRUCTURE.tfvars \
--type sap_landscape
Entfernen Sie die Steuerebene
Melden Sie sich bei Cloud Shell an.
Navigieren Sie zum Ordner WORKSPACES.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/
Exportieren Sie die folgenden beiden Umgebungsvariablen:
export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
export ARM_SUBSCRIPTION_ID="<subscriptionId>"
Führen Sie den folgenden Befehl aus:
export region_code="SECE"
export env_code="LAB"
export vnet_code="DEP05"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remove_controlplane.sh \
--deployer_parameter_file DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars \
--library_parameter_file LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars
Stellen Sie sicher, dass alle Ressourcen bereinigt werden.