Konfigurieren der Steuerungsebene
Die Steuerungsebene für das SAP Deployment Automation Framework besteht aus den folgenden Komponenten:
- Bereitsteller
- SAP-Bibliothek
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"