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.
Eine SAP-Anwendung verfügt in der Regel über mehrere Bereitstellungsebenen. Beispielsweise können Sie über Entwicklungs-, Qualitätssicherungs- und Produktionsebenen verfügen. Im SAP Deployment Automation Framework werden diese Ebenen als Workloadzonen bezeichnet. In der folgenden Abbildung sehen Sie ein Beispiel für eine Workloadzone mit zwei SAP-Systemen.
Die Workloadzone stellt gemeinsam genutzte Dienste für alle SAP-Systeme in der Workloadzone bereit. Zu diesen gemeinsam genutzten Diensten zählen:
- Virtuelles Azure-Netzwerk
- Azure Key Vault (ein Dienst zur sicheren Verwaltung kryptografischer Schlüssel)
- Gemeinsam genutztes Azure Storage-Konto für Installationsmedien
- Azure NetApp Files-Konto und Kapazitätspools (optional)
Die Workloadzone wird in der Regel in einem Spoke-Abonnement bereitgestellt, und für die Bereitstellung aller Artefakte in der Workloadzone wird ein eindeutiger Dienstprinzipal verwendet.
Bereitstellungskonfiguration für Workloadzonen
Für die Konfiguration der SAP-Workloadzone wird eine Terraform-Variablendatei vom Typ tfvars verwendet. Beispiele für die Variablendatei finden Sie im Ordner samples/WORKSPACES/LANDSCAPE.
In den folgenden Abschnitten werden die verschiedenen Abschnitte der Variablendatei gezeigt.
Umgebungsparameter
Die folgende Tabelle enthält die Parameter, die die Umgebungseinstellungen definieren:
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
environment |
Bezeichner für die Workloadzone (max. fünf Zeichen) | Obligatorisch. | Zum Beispiel PROD für eine Produktionsumgebung und QA für eine Qualitätssicherungsumgebung. |
location |
Die Azure-Region, in der die Bereitstellung erfolgen soll | Erforderlich | |
name_override_file |
Datei zum Überschreiben von Namen | Wahlfrei | Weitere Informationen finden Sie unter Benutzerdefinierte Benennung. |
tags |
Ein Wörterbuch mit Tags, die allen Ressourcen zugeordnet werden sollen. | Wahlfrei |
Ressourcengruppenparameter
Die folgende Tabelle enthält die Parameter, die die Ressourcengruppe definieren:
| Variable | BESCHREIBUNG | Typ |
|---|---|---|
resourcegroup_name |
Name der zu erstellenden Ressourcengruppe | Wahlfrei |
resourcegroup_arm_id |
Azure-Ressourcenbezeichner für eine bestehende Ressourcengruppe | Wahlfrei |
resourcegroup_tags |
Tags, die der Ressourcengruppe zugeordnet werden sollen | Wahlfrei |
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.
- Brownfield-Szenario: Die Azure-Ressourcenkennung für das virtuelle Netzwerk und die Subnetze müssen angegeben werden.
Sicherstellen, dass der Adressraum des virtuellen Netzwerks groß genug ist, um alle Ressourcen zu hosten.
Die folgende Tabelle enthält die Netzwerkparameter:
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
network_logical_name |
Der logische Name des Netzwerks, z. B. SAP01 |
Erforderlich | Wird für die Ressourcenbenennung verwendet |
network_name |
Der Name des Netzwerks | Wahlfrei | |
network_arm_id |
Die Azure-Ressourcenkennung für das virtuelle Netzwerk | Wahlfrei | Für Brownfield-Bereitstellungen |
network_address_space |
Der Adressbereich für das virtuelle Netz | Obligatorisch. | Für Greenfield-Bereitstellungen |
admin_subnet_address_prefix |
Der Adressbereich für das admin-Subnetz |
Obligatorisch. | Für Greenfield-Bereitstellungen |
admin_subnet_arm_id |
Die Azure-Ressourcenkennung für das admin-Subnetz |
Obligatorisch. | Für Brownfield-Bereitstellungen |
admin_subnet_name |
Der Name des admin-Subnetzes |
Wahlfrei | |
admin_subnet_nsg_name |
Der Name der admin-Netzwerksicherheitsgruppe |
Wahlfrei | |
admin_subnet_nsg_arm_id |
Der Azure-Ressourcenbezeichner für die admin-Netzwerksicherheitsgruppe |
Obligatorisch. | Für Brownfield-Bereitstellungen |
db_subnet_address_prefix |
Der Adressbereich für das db-Subnetz |
Obligatorisch. | Für Greenfield-Bereitstellungen |
db_subnet_arm_id |
Die Azure-Ressourcenkennung für das db-Subnetz |
Obligatorisch. | Für Brownfield-Bereitstellungen |
db_subnet_name |
Der Name des db-Subnetzes |
Wahlfrei | |
db_subnet_nsg_name |
Der Name der db-Netzwerksicherheitsgruppe |
Wahlfrei | |
db_subnet_nsg_arm_id |
Der Azure-Ressourcenbezeichner für die db-Netzwerksicherheitsgruppe |
Obligatorisch. | Für Brownfield-Bereitstellungen |
app_subnet_address_prefix |
Der Adressbereich für das app-Subnetz |
Obligatorisch. | Für Greenfield-Bereitstellungen |
app_subnet_arm_id |
Die Azure-Ressourcenkennung für das app-Subnetz |
Obligatorisch. | Für Brownfield-Bereitstellungen |
app_subnet_name |
Der Name des app-Subnetzes |
Wahlfrei | |
app_subnet_nsg_name |
Der Name der app-Netzwerksicherheitsgruppe |
Wahlfrei | |
app_subnet_nsg_arm_id |
Der Azure-Ressourcenbezeichner für die app-Netzwerksicherheitsgruppe |
Obligatorisch. | Für Brownfield-Bereitstellungen |
web_subnet_address_prefix |
Der Adressbereich für das web-Subnetz |
Obligatorisch. | Für Greenfield-Bereitstellungen |
web_subnet_arm_id |
Die Azure-Ressourcenkennung für das web-Subnetz |
Obligatorisch. | Für Brownfield-Bereitstellungen |
web_subnet_name |
Der Name des web-Subnetzes |
Wahlfrei | |
web_subnet_nsg_name |
Der Name der web-Netzwerksicherheitsgruppe |
Wahlfrei | |
web_subnet_nsg_arm_id |
Der Azure-Ressourcenbezeichner für die web-Netzwerksicherheitsgruppe |
Obligatorisch. | Für Brownfield-Bereitstellungen |
Die folgende Tabelle enthält die Netzwerkparameter bei Verwendung von Azure NetApp Files:
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
anf_subnet_arm_id |
Die Azure-Ressourcenkennung für das ANF-Subnetz |
Erforderlich | Bei Verwendung vorhandener Subnetze |
anf_subnet_address_prefix |
Der Adressbereich für das ANF-Subnetz |
Erforderlich | Bei Verwendung von ANF für Bereitstellungen |
anf_subnet_name |
Der Name des ANF-Subnetzes |
Wahlfrei | |
anf_subnet_nsg_name |
Der Name der anf-Netzwerksicherheitsgruppe |
Wahlfrei | |
anf_subnet_nsg_arm_id |
Der Azure-Ressourcenbezeichner für die anf-Netzwerksicherheitsgruppe |
Wahlfrei | Für Brownfield-Bereitstellungen |
Die folgende Tabelle enthält die Netzwerkparameter für Szenarien, in denen iSCSI-Geräte über diese Workloadzone gehostet werden:
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
iscsi_subnet_address_prefix |
Der Adressbereich für das iscsi-Subnetz |
Obligatorisch. | Für Greenfield-Bereitstellungen |
iscsi_subnet_arm_id |
Die Azure-Ressourcenkennung für das iscsi-Subnetz |
Obligatorisch. | Für Brownfield-Bereitstellungen |
iscsi_subnet_name |
Der Name des iscsi-Subnetzes |
Wahlfrei | |
iscsi_subnet_nsg_arm_id |
Der Azure-Ressourcenbezeichner für die iscsi-Netzwerksicherheitsgruppe |
Obligatorisch. | Für Brownfield-Bereitstellungen |
iscsi_subnet_nsg_name |
Der Name der iscsi-Netzwerksicherheitsgruppe |
Wahlfrei |
Die folgende Tabelle enthält die Netzwerkparameter für Szenarien, in denen Azure Monitor für SAP über diese Workloadzone gehostet wird:
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
ams_subnet_address_prefix |
Der Adressbereich für das iscsi-Subnetz |
Obligatorisch. | Für Greenfield-Bereitstellungen |
ams_subnet_arm_id |
Die Azure-Ressourcenkennung für das iscsi-Subnetz |
Obligatorisch. | Für Brownfield-Bereitstellungen |
ams_subnet_name |
Der Name des iscsi-Subnetzes |
Wahlfrei | |
ams_subnet_nsg_arm_id |
Der Azure-Ressourcenbezeichner für die iscsi-Netzwerksicherheitsgruppe |
Obligatorisch. | Für Brownfield-Bereitstellungen |
ams_subnet_nsg_name |
Der Name der iscsi-Netzwerksicherheitsgruppe |
Wahlfrei |
Die folgende Tabelle enthält zusätzliche Netzwerkparameter:
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
use_private_endpoint |
Sind private Endpunkte, die für Speicherkonten und Schlüsseltresore erstellt werden | Wahlfrei | |
use_service_endpoint |
Sind für die Subnetze definierte Dienstendpunkte | Wahlfrei | |
peer_with_control_plane_vnet |
Steuert, ob virtuelle Netzwerke mittels Peering mit dem virtuellen Netzwerk auf Steuerungsebene verknüpft werden | Wahlfrei | Erforderlich für die SAP-Installation |
public_network_access_enabled |
Steuert, ob öffentlicher Zugriff für die Speicherkonten und Schlüsseltresore zugelassen wird | Wahlfrei |
Mindestanforderungen für die Netzwerkdefinition
network_logical_name = "SAP01"
network_address_space = "10.110.0.0/16"
db_subnet_address_prefix = "10.110.96.0/19"
app_subnet_address_prefix = "10.110.32.0/19"
Authentifizierungsparameter
In der folgenden Tabelle werden die Anmeldeinformationen definiert, die zum Definieren der VM-Authentifizierung verwendet werden:
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
automation_username |
Name des Administratorkontos | Wahlfrei | Standard: azureadm |
automation_password |
Administratorkennwort | Wahlfrei | |
automation_path_to_public_key |
Pfad zum vorhandenen öffentlichen Schlüssel | Wahlfrei | |
automation_path_to_private_key |
Pfad zum vorhandenen privaten Schlüssel | Wahlfrei | |
use_spn |
Falls definiert, wird die Bereitstellung mithilfe eines Dienstprinzipals durchgeführt, andernfalls mit einer MSI | Wahlfrei |
Mindestanforderungen für die Authentifizierungsdefinition
automation_username = "azureadm"
Key Vault-Parameter
In der folgenden Tabelle werden die Parameter definiert, die für die Definition der Informationen zum Schlüsseltresor verwendet werden:
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
spn_keyvault_id |
Azure-Ressourcenbezeichner für den Schlüsseltresor mit vorhandenen Bereitstellungsanmeldeinformationen (SPNs) | Wahlfrei | |
user_keyvault_id |
Azure-Ressourcenbezeichner für den Schlüsseltresor mit vorhandenen Systemanmeldeinformationen | Wahlfrei | |
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 | Wahlfrei | |
enable_purge_control_for_keyvaults |
Deaktiviert den Bereinigungsschutz für Azure-Schlüsseltresore | Wahlfrei | Nur für Testumgebungen vorgesehen |
enable_rbac_authorization_for_keyvault |
Aktiviert RBAC auf Schlüsseltresorn | Wahlfrei | |
soft_delete_retention_days |
Die Anzahl der Tage, an denen Elemente im Vorläufigen Löschzeitraum aufbewahrt werden sollen | Wahlfrei | |
keyvault_private_endpoint_id |
Azure-Ressourcen-ID des privaten Endpunkts des Schlüsseltresors | Wahlfrei |
Privates DNS
| Variable | BESCHREIBUNG | Typ |
|---|---|---|
dns_label |
Wenn angegeben, ist dies der DNS-Name der privaten DNS-Zone | Wahlfrei |
dns_resource_group_name |
Der Name der Ressourcengruppe, die die private DNS-Zone enthält | Wahlfrei |
register_virtual_network_to_dns |
Steuert, ob das virtuelle SAP-Netzwerk bei der privaten DNS-Zone registriert wird | Wahlfrei |
dns_server_list |
Eine Liste mit IP-Adressen des DNS-Servers (sofern angegeben) | Wahlfrei |
NFS-Unterstützung
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
create_transport_storage |
Erstellt Speicher für die Transportverzeichnisse (sofern definiert) | Wahlfrei | |
export_install_path |
Exportiert den Einbindungspfad für die Installationsmedien (sofern angegeben) | Wahlfrei | |
export_transport_path |
Exportiert den Einbindungspfad für die Transportfreigabe (sofern angegeben) | Wahlfrei | |
install_always_create_fileshares |
Erstellen Sie immer Dateifreigaben. | Wahlfrei | |
install_private_endpoint_id |
Azure-Ressourcen-ID für den privaten Endpunkt install |
Wahlfrei | Für vorhandene Endpunkte |
install_volume_size |
Definiert die Größe für das install-Volume (in GB) |
Wahlfrei | |
NFS_provider |
Definiert, welche NFS-Back-End verwendet werden soll | Wahlfrei | Die Optionen lauten AFS für das Azure Files-NFS oder ANF für Azure NetApp Files, NONE für das NFS des SCS-Servers oder NFS für eine externe NFS-Lösung. |
transport_private_endpoint_id |
Azure-Ressourcen-ID des privaten Endpunkts des Schlüsseltresors | Wahlfrei | |
transport_volume_size |
Definiert die Größe für das transport-Volume (in GB) |
Wahlfrei | |
use_AFS_for_installation_media |
Verwendet AFS für die Installationsmedien (sofern angegeben) | Wahlfrei |
Azure Files NFS-Unterstützung
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
install_storage_account_id |
Azure-Ressourcenbezeichner für das install-Speicherkonto |
Wahlfrei | Für Brownfield-Bereitstellungen |
transport_storage_account_id |
Azure-Ressourcenbezeichner für das transport-Speicherkonto |
Wahlfrei | Für Brownfield-Bereitstellungen |
Storage account replication type |
Replikationstyp des Speicherkontos, Standard-ZRS | Wahlfrei |
Mindestanforderungen für die Azure Files-NFS-Definition
NFS_provider = "AFS"
use_private_endpoint = true
Azure NetApp Files-Unterstützung
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
ANF_account_name |
Name für das Azure NetApp Files-Konto | Wahlfrei | |
ANF_service_level |
Servicelevel für den Azure NetApp Files-Kapazitätspool | Wahlfrei | |
ANF_pool_size |
Größe des Azure NetApp Files-Kapazitätspools (in GB) | Wahlfrei | |
ANF_qos_type |
Servicequalitätstyp des Pools („Automatisch“ oder „Manuell“) | Wahlfrei | |
ANF_use_existing_pool |
Legt fest, dass ein vorhandener Azure NetApp Files-Kapazitätspool verwendet werden soll | Wahlfrei | |
ANF_pool_name |
Name des Azure NetApp Files-Kapazitätspools | Wahlfrei | |
ANF_account_arm_id |
Azure-Ressourcenbezeichner für das Azure NetApp Files-Konto | Wahlfrei | Für Brownfield-Bereitstellungen |
ANF_transport_volume_use_existing |
Definiert, ob ein vorhandenes Transportvolume verwendet wird | Wahlfrei | |
ANF_transport_volume_name |
Definiert den Namen des Transportvolumes | Wahlfrei | Für Brownfield-Bereitstellungen |
ANF_transport_volume_size |
Definiert die Größe des Transportvolumes (in GB) | Wahlfrei | |
ANF_transport_volume_throughput |
Definiert den Durchsatz für das Transportvolume | Wahlfrei | |
ANF_transport_volume_zone |
Definiert die Verfügbarkeitszone des Transportvolumes. | Wahlfrei | |
ANF_install_volume_use_existing |
Definiert, ob ein vorhandenes Installationsvolume verwendet wird | Wahlfrei | |
ANF_install_volume_name |
Definiert den Namen des Installationsvolumes | Wahlfrei | Für Brownfield-Bereitstellungen |
ANF_install_volume_size |
Definiert die Größe für das Installationsvolume (in GB) | Wahlfrei | |
ANF_install_volume_throughput |
Definiert den Durchsatz für das Installationsvolume | Wahlfrei | |
ANF_install_volume_zone |
Definiert die Verfügbarkeitszone des Installationsvolumes. | Wahlfrei |
Mindestanforderungen für die ANF-Definition
NFS_provider = "ANF"
anf_subnet_address_prefix = "10.110.64.0/27"
ANF_service_level = "Ultra"
DNS-Unterstützung
| Variable | BESCHREIBUNG | Typ |
|---|---|---|
dns_label |
DNS-Name der privaten DNS-Zone | Wahlfrei |
management_dns_resourcegroup_name |
Ressourcengruppe mit der privaten DNS-Zone | Wahlfrei |
management_dns_subscription_id |
Abonnement-ID für das Abonnement, das die private DNS-Zone enthält | Wahlfrei |
use_custom_dns_a_registration |
Legt fest, dass eine vorhandene private DNS-Zone verwendet werden soll | Wahlfrei |
NAT-Unterstützung
| Variable | BESCHREIBUNG | Typ |
|---|---|---|
deploy_nat_gateway |
Falls festgelegt, wird ein NAT-Gateway bereitgestellt. | Wahlfrei |
nat_gateway_name |
Der Name des NAT Gateways. | Wahlfrei |
nat_gateway_arm_id |
Der Azure-Ressourcenbezeichner des NAT Gateways. | Wahlfrei |
nat_gateway_public_ip_zones |
Die Zonen für die öffentliche IP-Adresse des NAT Gateways | Wahlfrei |
nat_gateway_public_ip_arm_id |
Der Azure-Ressourcenbezeichner für die öffentliche IP-Adresse des NAT Gateways | Wahlfrei |
nat_gateway_idle_timeout_in_minutes |
Das Leerlauftimeout in Minuten für das NAT Gateway (Standard=4) | Wahlfrei |
nat_gateway_public_ip_tags |
Tags für die öffentliche IP-Ressource | Wahlfrei |
Weitere Parameter
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
diagnostics_storage_account_arm_id |
Azure-Ressourcenbezeichner für das Diagnosespeicherkonto | Erforderlich | Für Brownfield-Bereitstellungen |
place_delete_lock_on_resources |
Platziert Löschsperren in den Schlüsseltresoren und im virtuellen Netzwerk | Wahlfrei | |
witness_storage_account_arm_id |
Der Azure-Ressourcenbezeichner für das Zeugenspeicherkonto | Erforderlich | Für Brownfield-Bereitstellungen |
Agent_IP |
IP-Adresse des Agenten. | Wahlfrei | |
add_Agent_IP |
Steuert, ob Agent-IP zur Firewall des Schlüsseltresors und des Speicherkontos hinzugefügt wird | Wahlfrei | |
enable_firewall_for_keyvaults_and_storage |
Beschränken Sie den Zugriff auf ausgewählte Subnetze. | Wahlfrei |
iSCSI-Parameter
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
iscsi_authentication_type |
Definiert die Standardauthentifizierung für die virtuellen iSCSI-Computer | Wahlfrei | |
iscsi_authentication_username |
Name des Administratorkontos | Wahlfrei | |
iscsi_count |
Die Anzahl virtueller iSCSI-Computer | Wahlfrei | |
iscsi_size |
Die Größe virtueller iSCSI-Computer | Wahlfrei | |
iscsi_image |
Definiert das zu verwendende VM-Image (nächste Tabelle) | Wahlfrei | |
iscsi_nic_ips |
IP-Adressen für die virtuellen iSCSI-Computer | Wahlfrei | Wird ignoriert, wenn iscsi_use_DHCP definiert ist |
iscsi_use_DHCP |
Steuert, ob vom Azure-Subnetz bereitgestellte dynamische IP-Adressen verwendet werden sollen. | Wahlfrei | |
iscsi_vm_zones |
Verfügbarkeitszonen für die virtuellen iSCSI-Computer | Wahlfrei |
Parameter für virtuelle Hilfscomputer
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
utility_vm_count |
Definiert die Anzahl bereitzustellender virtueller Hilfscomputer | Wahlfrei | Verwenden Sie den virtuellen Hilfscomputer, um SAPGui zu hosten |
utility_vm_image |
Definiert das zu verwendende VM-Image | Wahlfrei | Standard: Windows Server 2019 |
utility_vm_nic_ips |
Definiert die IP-Adressen für die virtuellen Computer | Wahlfrei | |
utility_vm_os_disk_size |
Definiert die Größe des Betriebssystemdatenträgers für den virtuellen Computer | Wahlfrei | Standardwert: 128 |
utility_vm_os_disk_type |
Definiert die Art des Betriebssystemdatenträgers für den virtuellen Computer | Wahlfrei | Standardwert: Premium_LRS |
utility_vm_size |
Definiert die SKU für die virtuellen Hilfscomputer | Wahlfrei | Standard: Standard_D4ds_v4 |
utility_vm_useDHCP |
Definiert, ob die von Azure bereitgestellten Subnetz-IP-Adressen verwendet werden sollen | Wahlfrei | |
| "user_assigned_identity_id | Benutzerseitig zugewiesene Identität, die den virtuellen Computern zugewiesen werden soll | Wahlfrei |
Die VM- und Betriebssystem-Images werden mithilfe der folgenden Struktur definiert:
{
os_type = "linux"
type = "marketplace"
source_image_id = ""
publisher = "SUSE"
offer = "sles-sap-15-sp5"
sku = "gen2"
version= " latest"
}
Azure Monitor für SAP-Parameter
| Variable | BESCHREIBUNG | Typ | Notizen |
|---|---|---|---|
create_ams_instance |
Definiert, ob eine Instanz von Azure Monitor für SAP erstellt werden soll | Wahlfrei | |
ams_instance_name |
Definiert den Namen der Instanz | Wahlfrei | |
ams_laws_arm_id |
Definiert die ARM-Ressourcen-ID für den Log Analytics-Arbeitsbereich | Wahlfrei |
Terraform-Parameter
Die folgende Tabelle enthält 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-Zustandsdateien enthält | Erforderlich |
deployer_tfstate_key |
Name der Zustandsdatei für den Bereitsteller | Erforderlich |