Konfigurieren der Steuerungsebene

Die Steuerungsebene für das SAP Deployment Automation Framework besteht aus den folgenden Komponenten:

  • Bereitsteller
  • SAP-Bibliothek

Abbildung der Steuerungsebene.

Bereitsteller

Der Bereitsteller (deployer) ist die Ausführungs-Engine des SAP Deployment Automation Framework. Es handelt sich um eine vorkonfigurierte VM (virtueller Computer), die für die Ausführung von Terraform- und Ansible-Befehlen verwendet wird. Bei der Verwendung von Azure DevOps ist der Bereitsteller ein selbstgehosteter Agent.

Die Konfiguration des Bereitstellers erfolgt in einer Terraform-tfvars-Variablendatei.

Wenn Sie eine vorhandene Ressourcengruppe für den Bereitsteller verwenden möchten, stellen Sie die Azure-Ressourcen-ID für die Ressourcengruppe mithilfe des resource_group_arm_id-Parameters in der TFVARS-Datei des Bereitstellers bereit. Wenn der Parameter nicht definiert ist, wird die Ressourcengruppe mit der Standardbenennung erstellt. Sie können den Standardnamen mithilfe des resource_group_name-Parameters ändern.

Terraform-Parameter

Diese Tabelle zeigt die Terraform-Parameter. Diese Parameter müssen manuell eingegeben werden, wenn Sie nicht die Bereitstellungsskripts verwenden.

Variable BESCHREIBUNG Typ
tfstate_resource_id Azure-Ressourcenbezeichner für das Speicherkonto in der SAP-Bibliothek, das die Terraform-Statusdateien enthält Erforderlich

Umgebungsparameter

In der folgenden Tabelle sind die Parameter aufgeführt, die die Ressourcenbenennung definieren.

Variable BESCHREIBUNG Typ Notizen
environment Bezeichner für die Steuerungsebene (max. 5 Zeichen). Obligatorisch. Beispielsweise PROD für eine Produktionsumgebung und NP für eine Nichtproduktionsumgebung.
location Die Azure-Region, in der die Bereitstellung erfolgen soll. Erforderlich Verwenden Sie Kleinbuchstaben.
codename Zusätzliche Komponente zum Benennen der Ressourcen. Optional
name_override_file Datei zum Überschreiben von Namen. Optional Weitere Informationen finden Sie unter Benutzerdefinierte Benennung.
place_delete_lock_on_resources Wenden Sie eine Löschsperre auf die Schlüsselressourcen an. Optional

Resource group

In der folgenden Tabelle sind die Parameter aufgeführt, die die Ressourcengruppe definieren.

Variable BESCHREIBUNG type
resourcegroup_name Name der zu erstellenden Ressourcengruppe Optional
resourcegroup_arm_id Azure-Ressourcenbezeichner für eine bestehende Ressourcengruppe Optional
resourcegroup_tags Tags, die der Ressourcengruppe zugeordnet werden sollen Optional

Netzwerk-Parameter

Automation Framework unterstützt sowohl das Erstellen des virtuellen Netzwerks und der Subnetze („Greenfield“) als auch die Verwendung eines vorhandenen virtuellen Netzwerks und vorhandener Subnetze („Brownfield“) oder einer Kombination aus Greenfield und Brownfield:

  • Greenfield-Szenario: Der Adressraum des virtuellen Netzwerks und die Adresspräfixe im Subnetz müssen angegeben werden.
  • Brown Field-Szenario: Der Azure-Ressourcenbezeichner für das virtuelle Netzwerk und die Subnetze muss angegeben werden.

Das empfohlene CIDR des Adressraums des virtuellen Netzwerks ist /27, wodurch Platz für 32 IP-Adressen ermöglicht wird. Der CIDR-Wert /28 lässt nur 16 IP-Adressen zu. Wenn Sie Azure Firewall einbinden möchten, verwenden Sie einen CIDR-Wert von /25, da Azure Firewall einen Bereich von /26 benötigt.

Der empfohlene CIDR-Wert für das Verwaltungssubnetz ist /28, der 16 IP-Adressen zulässt. Der empfohlene CIDR-Wert für das Firewallsubnetz ist /26, der 64 IP-Adressen zulässt.

In der folgenden Tabelle sind die Netzwerkparameter aufgeführt.

Variable BESCHREIBUNG Typ Notizen
management_network_name Der Name des virtuellen Netzwerks, in dem der Bereitsteller bereitgestellt wird Optional Für Green Field-Bereitstellungen
management_network_logical_name Der logische Name des Netzwerks (DEV-WEEU-MGMT01-INFRASTRUCTURE) Erforderlich
management_network_arm_id Die Azure-Ressourcenkennung für das virtuelle Netzwerk Optional Für Brownfield-Bereitstellungen
management_network_address_space Der Adressbereich für das virtuelle Netz Obligatorisch. Für Green Field-Bereitstellungen
management_subnet_name Der Name des Subnetzes Optional
management_subnet_address_prefix Der Adressbereich für das -Subnetz Obligatorisch. Für Greenfield-Bereitstellungen
management_subnet_arm_id Die Azure-Ressourcenkennung für das -Subnetz Obligatorisch. Für Brownfield-Bereitstellungen
management_subnet_nsg_name Der Name der -Netzwerksicherheitsgruppe Optional
management_subnet_nsg_arm_id Der Azure-Ressourcenbezeichner für die -Netzwerksicherheitsgruppe Obligatorisch. Für Brown Field-Bereitstellungen
management_subnet_nsg_allowed_ips Bereich der zulässigen IP-Adressen, die der Azure Firewall hinzugefügt werden sollen Optional
management_firewall_subnet_arm_id Der Azure-Ressourcenbezeichner für das Azure Firewall-Subnetz Obligatorisch. Für Brownfield-Bereitstellungen
management_firewall_subnet_address_prefix Der Adressbereich für das -Subnetz Obligatorisch. Für Green Field-Bereitstellungen
management_bastion_subnet_arm_id Der Azure-Ressourcenbezeichner für das Azure Bastion-Subnetz Obligatorisch. Für Brownfield-Bereitstellungen
management_bastion_subnet_address_prefix Der Adressbereich für das -Subnetz Obligatorisch. Für Green Field-Bereitstellungen
webapp_subnet_arm_id Die Azure-Ressourcenkennung für das Web-App-Subnetz. Obligatorisch. Für Brownfield-Bereitstellungen
webapp_subnet_address_prefix Der Adressbereich für das -Subnetz Obligatorisch. Für Green Field-Bereitstellungen
use_private_endpoint Verwenden privater Endpunkte. Optional
use_service_endpoint Verwenden Sie für die Subnetze Dienstendpunkte. Optional

Hinweis

Wenn Sie ein vorhandenes Subnetz für die Web-App verwenden, muss das Subnetz leer sein, sich in derselben Region wie die bereitgestellte Ressourcengruppe befinden und an „Microsoft.Web/serverFarms“ delegiert sein.

Parameter der Bereitsteller-VM

In der folgenden Tabelle sind die Parameter für die Bereitsteller-VM aufgeführt.

Variable BESCHREIBUNG type
deployer_size Definiert die zu verwendende VM-SKU, Standardwert: Standard_D4ds_v4 Optional
deployer_count Definiert die Anzahl der Bereitsteller Optional
deployer_image Definiert das zu verwendende VM-Image, Standardwert: Ubuntu 22.04 Optional
plan Definiert den Plan für das VM-Image Optional
deployer_disk_type Definiert den Datenträgertyp, Standardwert: Premium_LRS Optional
deployer_use_DHCP Steuert, ob vom Azure-Subnetz bereitgestellte IP-Adressen verwendet werden sollen (dynamisch): TRUE Optional
deployer_private_ip_address Definiert die zu verwendende private IP-Adresse Optional
deployer_enable_public_ip Definiert, wenn der Bereitsteller über eine öffentliche IP-Adresse verfügt Optional
auto_configure_deployer Definiert, ob der Bereitsteller mit der erforderlichen Software (Terraform und Ansible) konfiguriert wird Optional
add_system_assigned_identity Definiert, ob dem Bereitsteller eine Systemidentität zugewiesen ist Optional

Das VM-Image wird mithilfe der folgenden Struktur definiert:

xxx_vm_image  = {
  os_type         = ""
  source_image_id = ""
  publisher       = "Canonical"
  offer           = "0001-com-ubuntu-server-jammy"
  sku             = "22_04-lts"
  version         = "latest"
  type            = "marketplace"
}

Hinweis

Der Typ kann marketplace/marketplace_with_plan/custom sein. Damit ein Image vom Typ marketplace_with_plan verwendet werden kann, muss dieses mindestens einmal im Abonnement verwendet worden sein. Die Benutzer oder Benutzerinnen werden bei der ersten Verwendung aufgefordert, die Lizenzbedingungen zu akzeptieren, und die Automatisierung hat keine Möglichkeit, dies zu genehmigen.

Authentifizierungsparameter

In diesem Abschnitt werden die Parameter definiert, die zum Definieren der VM-Authentifizierung verwendet werden.

Variable BESCHREIBUNG Typ
deployer_vm_authentication_type Definiert die Standardauthentifizierung für den Bereitsteller. Optional
deployer_authentication_username Name des Administratorkontos Optional
deployer_authentication_password Administratorkennwort Optional
deployer_authentication_path_to_public_key Pfad zum öffentlichen Schlüssel, der für die Authentifizierung verwendet wird Optional
deployer_authentication_path_to_private_key Pfad zum privaten Schlüssel, der für die Authentifizierung verwendet wird Optional
use_spn Falls definiert, wird die Bereitstellung mithilfe eines Dienstprinzipals durchgeführt, andernfalls mit einer MSI Optional

Key Vault-Parameter

In diesem Abschnitt werden die Parameter definiert, die zum Definieren der Azure Key Vault-Informationen verwendet werden.

Variable BESCHREIBUNG type
user_keyvault_id Der Azure-Ressourcenbezeichner für den Benutzerschlüsseltresor Optional
spn_keyvault_id Der Azure-Ressourcenbezeichner für den Schlüsseltresor, der die Anmeldeinformationen für die Bereitstellung enthält Optional
deployer_private_key_secret_name Der Geheimnisname im Schlüsseltresor für den privaten Schlüssel des Bereitstellers Optional
deployer_public_key_secret_name Der Geheimnisname im Schlüsseltresor für den öffentlichen Schlüssel des Bereitstellers Optional
deployer_username_secret_name Der Geheimnisname im Schlüsseltresor für den Benutzernamen des Bereitstellers Optional
deployer_password_secret_name Der Geheimnisname im Schlüsseltresor für das Kennwort des Bereitstellers Optional
additional_users_to_add_to_keyvault_policies Eine Liste der Benutzerobjekt-IDs, die den Zugriffsrichtlinien im Schlüsseltresor für die Bereitstellung hinzugefügt werden sollen Optional
set_secret_expiry Legen Sie den Ablauf für Geheimnisse im Schlüsseltresor auf 12 Monate fest. Optional
soft_delete_retention_days Die Anzahl der Tage, an denen Elemente im Vorläufigen Löschzeitraum aufbewahrt werden sollen. Optional
deployer_assign_subscription_permissions Steuert die Zuweisung der Abonnementberechtigung. Optional

DNS-Unterstützung

Variable BESCHREIBUNG type
dns_label DNS-Name der privaten DNS-Zone Optional
use_custom_dns_a_registration Verwendet ein externes System für DNS; für natives Azure auf FALSE festlegen Optional
management_dns_subscription_id Abonnement-ID für das Abonnement, das die private DNS-Zone enthält Optional
management_dns_resourcegroup_name Die Ressourcengruppe mit der privaten DNS-Zone Optional

Weitere Parameter

Variable BESCHREIBUNG Typ Notizen
firewall_deployment Boolesches Flag, das steuert, ob eine Azure Firewall-Instanz bereitgestellt werden soll Optional
bastion_deployment Boolesches Flag, das steuert, ob ein Azure Bastion-Host bereitgestellt werden soll Optional
bastion_sku SKU für den Azure Bastion-Host, der bereitgestellt werden soll (Basic/Standard) Optional
enable_purge_control_for_keyvaults Boolesches Flag, das steuert, ob die Bereinigungssteuerung für den Schlüsseltresor aktiviert ist Optional Nur für Testbereitstellungen verwenden
enable_firewall_for_keyvaults_and_storage Beschränken Sie den Zugriff auf ausgewählte Subnetze. Optional
Agent_IP IP-Adresse des Agent Optional
add_Agent_IP Steuert, ob Agent-IP zur Firewall des Schlüsseltresors und des Speicherkontos hinzugefügt wird Optional

Web-App-Parameter

Variable BESCHREIBUNG Typ Notizen
use_webapp Boolescher Wert, der angibt, ob eine Web-App bereitgestellt werden soll Optional
app_service_SKU_name Die SKU des App Service-Plans Optional
app_registration_app_id Die App-Registrierungs-ID, die für die Web-App verwendet werden soll Optional
webapp_client_secret Die SKU des App Service-Plans Optional Wird im Schlüsseltresor aufbewahrt

Beispielparameterdatei für Bereitsteller (nur erforderliche Parameter)

# The environment value is a mandatory field, it is used for partitioning the environments, for example (PROD and NP)
environment="MGMT"

# The location/region value is a mandatory field, it is used to control where the resources are deployed
location="westeurope"

# 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"

# management_bastion_subnet_address_prefix is a mandatory parameter if bastion is deployed and if the subnets are not defined in the workload or if existing subnets are not used
management_bastion_subnet_address_prefix = "10.10.20.128/26"

deployer_enable_public_ip=false

firewall_deployment=true

bastion_deployment=true

SAP-Bibliothek

Die SAP-Bibliothek stellt den persistenten Speicher der Terraform-Zustandsdateien und die heruntergeladenen SAP-Installationsmedien für die Steuerungsebene bereit.

Die Konfiguration der SAP-Bibliothek erfolgt in einer Terraform-tfvars-Variablendatei.

Wenn Sie eine vorhandene Ressourcengruppe für die SAP-Bibliothek verwenden möchten, stellen Sie die Azure-Ressourcen-ID für die Ressourcengruppe mithilfe des resource_group_arm_id-Parameters in der TFVARS-Datei des Bereitstellers bereit. Wenn der Parameter nicht definiert ist, wird die Ressourcengruppe mit der Standardbenennung erstellt. Sie können den Standardnamen mithilfe des resource_group_name-Parameters ändern.

Terraform-Parameter

Diese Tabelle zeigt die Terraform-Parameter. Diese Parameter müssen manuell eingegeben werden, wenn Sie nicht die Bereitstellungsskripts oder Azure Pipelines verwenden.

Variable BESCHREIBUNG Typ Notizen
deployer_tfstate_key Der Name der Zustandsdatei für den Bereitsteller Erforderlich

Umgebungsparameter

In der folgenden Tabelle sind die Parameter aufgeführt, die die Ressourcenbenennung definieren.

Variable BESCHREIBUNG Typ Notizen
environment Der Bezeichner für die Steuerungsebene (max. 5 Zeichen) Obligatorisch. Beispielsweise PROD für eine Produktionsumgebung und NP für eine Nichtproduktionsumgebung.
location Die Azure-Region, in der die Bereitstellung erfolgen soll. Erforderlich Verwenden Sie Kleinbuchstaben.
name_override_file Datei zum Überschreiben von Namen Optional Weitere Informationen finden Sie unter Benutzerdefinierte Benennung.

Resource group

In der folgenden Tabelle sind die Parameter aufgeführt, die die Ressourcengruppe definieren.

Variable BESCHREIBUNG type
resourcegroup_name Name der zu erstellenden Ressourcengruppe Optional
resourcegroup_arm_id Azure-Ressourcenbezeichner für eine bestehende Ressourcengruppe Optional
resourcegroup_tags Tags, die der Ressourcengruppe zugeordnet werden sollen Optional

Speicherkonto für SAP-Installationsmedien

Variable BESCHREIBUNG Typ
library_sapmedia_arm_id Azure-Ressourcenbezeichner Optional

Terraform-Speicherkonto für den Remotezustand

Variable BESCHREIBUNG Typ
library_terraform_state_arm_id Azure-Ressourcenbezeichner Optional

DNS-Unterstützung

Variable BESCHREIBUNG type
dns_label DNS-Name der privaten DNS-Zone Optional
use_custom_dns_a_registration Verwenden Sie eine vorhandene private DNS-Zone. Optional
management_dns_subscription_id Abonnement-ID für das Abonnement, das die private DNS-Zone enthält Optional
management_dns_resourcegroup_name Die Ressourcengruppe mit der privaten DNS-Zone Optional

Zusätzliche Parameter

Variable BESCHREIBUNG type
use_private_endpoint Verwenden privater Endpunkte. Optional
use_service_endpoint Verwenden Sie für die Subnetze Dienstendpunkte. Optional
enable_firewall_for_keyvaults_and_storage Beschränken Sie den Zugriff auf ausgewählte Subnetze. Optional
subnets_to_add_to_firewall_for_keyvaults_and_storage Subnetze, die Zugriff auf Schlüsseltresore und Speicherkonten benötigen Optional

Beispielparameterdatei für die SAP-Bibliothek (nur erforderliche Parameter)

# The environment value is a mandatory field, it is used for partitioning the environments, for example (PROD and NP)
environment = "MGMT"

# The location/region value is a mandatory field, it is used to control where the resources are deployed
location = "westeurope"

Nächster Schritt