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.
SAP Deployment Automation Framework verwendet eine Standardbenennungskonvention für die Azure-Ressourcenbenennung.
Das Terraform-Modul sap_namegenerator definiert die Namen aller Ressourcen, die das Automatisierungsframework bereitstellt. Das Modul befindet sich /deploy/terraform/terraform-units/modules/sap_namegenerator/ im Repository. Das Framework unterstützt auch die Bereitstellung eigener Namen für einige der Ressourcen mithilfe der Parameterdateien.
Die Benennung der Ressourcen verwendet das folgende Format:
Ressourcenpräfix + Ressourcengruppen-Präfix + Trennzeichen + Ressourcenname + Ressourcensuffix.
Wenn diese Funktionen nicht ausreichen, können Sie auch benutzerdefinierte Benennungslogik verwenden, indem Sie entweder eine benutzerdefinierte JSON-Datei bereitstellen, die die Ressourcennamen enthält, oder indem Sie das von der Automatisierung verwendete Benennungsmodul ändern.
Bereitstellen von Namensaußerkraftsetzungen mithilfe einer JSON-Datei
Sie können eine benutzerdefinierte JSON-Benennungsdatei in Der tfvars Parameterdatei angeben, indem Sie den name_override_file Parameter verwenden.
Die JSON-Datei enthält Abschnitte für die verschiedenen Ressourcentypen.
Die Bereitstellungstypen sind:
- DEPLOYER (Steuerungsebene)
- SDU (SAP-Systeminfrastruktur)
- WORKLOAD_ZONE (Arbeitslastbereich)
Namen der Verfügbarkeitsgruppe
Die Namen für die Verfügbarkeitssätze werden in der availabilityset_names Struktur definiert. Im folgenden Beispiel sind die Verfügbarkeitsgruppennamen für eine Bereitstellung aufgeführt.
"availabilityset_names" : {
"app": "app-avset",
"db" : "db-avset",
"scs": "scs-avset",
"web": "web-avset"
}
Schlüsseltresornamen
Die Namen für die Schlüsseltresore werden in der Struktur keyvault_names definiert. Im folgenden Beispiel werden die Schlüsseltresornamen für eine Bereitstellung in der Umgebung DEV in „Europa, Westen“ aufgeführt.
"keyvault_names": {
"DEPLOYER": {
"private_access": "DEVWEEUprvtABC",
"user_access": "DEVWEEUuserABC"
},
"SDU": {
"private_access": "DEVWEEUSAP01X00pABC",
"user_access": "DEVWEEUSAP01X00uABC"
},
"WORKLOAD_ZONE": {
"private_access": "DEVWEEUSAP01prvtABC",
"user_access": "DEVWEEUSAP01userABC"
}
}
Die Namen von Key Vault-Instanzen müssen in Azure eindeutig sein. Das SAP Deployment Automation Framework fügt drei zufällige Zeichen (ABC im Beispiel) am Ende des Schlüsselbundnamens an, um die Wahrscheinlichkeit von Namenskonflikten zu verringern.
Die private_access Namen werden derzeit nicht verwendet.
Namen von Speicherkonten
Die Namen für die Speicherkonten werden in der storageaccount_names Struktur definiert. Im folgenden Beispiel werden die Speicherkontonamen für eine Bereitstellung in der DEV Umgebung in Westeuropa aufgeführt.
"storageaccount_names": {
"DEPLOYER": "devweeudiagabc",
"LIBRARY": {
"library_storageaccount_name": "devweeusaplibabc",
"terraformstate_storageaccount_name": "devweeutfstateabc"
},
"SDU": "devweeusap01diagabc",
"WORKLOAD_ZONE": {
"landscape_shared_transport_storage_account_name": "devweeusap01sharedabc",
"landscape_storageaccount_name": "devweeusap01diagabc",
"witness_storageaccount_name": "devweeusap01witnessabc"
}
}
Die Namen von Key Vault-Instanzen müssen in Azure eindeutig sein. Das SAP Deployment Automation Framework fügt drei zufällige Zeichen (im Beispiel abc) an das Ende des Schlüsseltresornamens an, um die Wahrscheinlichkeit von Namenskonflikten zu verringern.
Namen virtueller Computer
Die Namen für die virtuellen Computer werden in der virtualmachine_names Struktur definiert. Sowohl der Computer als auch die Namen des virtuellen Computers können bereitgestellt werden.
Im folgenden Beispiel werden die Namen des virtuellen Computers für eine Bereitstellung in der DEV Umgebung in Westeuropa aufgeführt. Die Bereitstellung verfügt über einen Datenbankserver, zwei Anwendungsserver, einen zentralen Dienstserver und einen Web dispatcher.
"virtualmachine_names": {
"ANCHOR_COMPUTERNAME": [],
"ANCHOR_SECONDARY_DNSNAME": [],
"ANCHOR_VMNAME": [],
"ANYDB_COMPUTERNAME": [
"x00db00l0abc"
],
"ANYDB_SECONDARY_DNSNAME": [
"x00dhdb00l0abc",
"x00dhdb00l1abc"
],
"ANYDB_VMNAME": [
"x00db00l0abc"
],
"APP_COMPUTERNAME": [
"x00app00labc",
"x00app01labc"
],
"APP_SECONDARY_DNSNAME": [
"x00app00labc",
"x00app01labc"
],
"APP_VMNAME": [
"x00app00labc",
"x00app01labc"
],
"DEPLOYER": [
"devweeudeploy00"
],
"HANA_COMPUTERNAME": [
"x00dhdb00l0af"
],
"HANA_SECONDARY_DNSNAME": [
"x00dhdb00l0abc"
],
"HANA_VMNAME": [
"x00dhdb00l0abc"
],
"ISCSI_COMPUTERNAME": [
"devsap01weeuiscsi00"
],
"OBSERVER_COMPUTERNAME": [
"x00observer00labc"
],
"OBSERVER_VMNAME": [
"x00observer00labc"
],
"SCS_COMPUTERNAME": [
"x00scs00labc"
],
"SCS_SECONDARY_DNSNAME": [
"x00scs00labc"
],
"SCS_VMNAME": [
"x00scs00labc"
],
"WEB_COMPUTERNAME": [
"x00web00labc"
],
"WEB_SECONDARY_DNSNAME": [
"x00web00labc"
],
"WEB_VMNAME": [
"x00web00labc"
]
}
Konfigurieren des benutzerdefinierten Benennungsmoduls
Es gibt mehrere Dateien innerhalb des Moduls zum Benennen von Ressourcen:
- Virtuelle Computer und Computernamen werden in (
vm.tf) definiert. - Die Ressourcengruppenbenennung wird in (
resourcegroup.tf) definiert. - Die Schlüsseltresore sind in (
keyvault.tf) definiert. - Die Ressourcensuffixe sind in (
variables_local.tf) definiert.
Die verschiedenen Ressourcennamen werden durch Präfixe im Terraform-Code identifiziert:
- SAP-Deployer-Deployments verwenden Ressourcennamen mit dem Präfix
deployer_. - SAP-Bibliotheksbereitstellungen verwenden Ressourcennamen mit dem Präfix
library. - SAP-Landschaftsbereitstellungen verwenden Ressourcennamen mit dem Präfix
vnet_. - SAP-Systembereitstellungen verwenden Ressourcennamen mit dem Präfix
sdu_.
Die berechneten Namen werden in einem Datenwörterbuch zurückgegeben, das von allen Terraform-Modulen verwendet wird.
Verwenden von benutzerdefinierten Namen
Einige der Ressourcennamen können geändert werden, indem Parameter in der tfvars Parameterdatei bereitgestellt werden.
| Ressource | Parameter | Hinweise |
|---|---|---|
Prefix |
custom_prefix |
Wird als Präfix für alle Ressourcen in der Ressourcengruppe verwendet |
Resource group |
resourcegroup_name |
|
admin subnet name |
admin_subnet_name |
|
admin nsg name |
admin_subnet_nsg_name |
|
db subnet name |
db_subnet_name |
|
db nsg name |
db_subnet_nsg_name |
|
app subnet name |
app_subnet_name |
|
app nsg name |
app_subnet_nsg_name |
|
web subnet name |
web_subnet_name |
|
web nsg name |
web_subnet_nsg_name |
|
admin nsg name |
admin_subnet_nsg_name |
Ändern des Benennungsmoduls
Um Ihre Terraform-Umgebung für die benutzerdefinierte Benennung vorzubereiten, müssen Sie zuerst ein benutzerdefiniertes Benennungsmodul erstellen. Die einfachste Möglichkeit besteht darin, das vorhandene Modul zu kopieren und die erforderlichen Änderungen im kopierten Modul vorzunehmen.
- Erstellen Sie einen Ordner auf Stammebene in Ihrer Terraform-Umgebung. Beispiel ist
Azure_SAP_Automated_Deployment. - Wechseln Sie zu Ihrem neuen Ordner auf Stammebene.
- Klonen Sie das Automatisierungsframework-Repository. In diesem Schritt wird ein neuer Ordner
sap-automationerstellt. - Erstellen Sie einen Ordner innerhalb des Stammordners namens
Contoso_naming. - Navigieren Sie zum Ordner
sap-automation. - Sehen Sie sich den entsprechenden Branch in Git an.
- Gehen Sie zu
\deploy\terraform\terraform-units\modulesim Ordnersap-automation. - Kopieren Sie den Ordner
sap_namegeneratorin denContoso_namingOrdner.
Das Benennungsmodul wird aus den Stammordnern terraform aufgerufen:
module "sap_namegenerator" {
source = "../../terraform-units/modules/sap_namegenerator"
environment = local.infrastructure.environment
location = local.infrastructure.region
codename = lower(try(local.infrastructure.codename, ""))
random_id = module.common_infrastructure.random_id
sap_vnet_name = local.vnet_logical_name
sap_sid = local.sap_sid
db_sid = local.db_sid
app_ostype = try(local.application.os.os_type, "LINUX")
anchor_ostype = upper(try(local.anchor_vms.os.os_type, "LINUX"))
db_ostype = try(local.databases[0].os.os_type, "LINUX")
db_server_count = var.database_server_count
app_server_count = try(local.application.application_server_count, 0)
web_server_count = try(local.application.webdispatcher_count, 0)
scs_server_count = local.application.scs_high_availability ? 2 * local.application.scs_server_count : local.application.scs_server_count
app_zones = local.app_zones
scs_zones = local.scs_zones
web_zones = local.web_zones
db_zones = local.db_zones
resource_offset = try(var.options.resource_offset, 0)
custom_prefix = var.custom_prefix
}
Als Nächstes müssen Sie Ihre anderen Terraform-Moduldateien auf Ihr benutzerdefiniertes Benennungsmodul verweisen. Zu diesen Moduldateien gehören:
deploy\terraform\run\sap_system\module.tfdeploy\terraform\bootstrap\sap_deployer\module.tfdeploy\terraform\bootstrap\sap_library\module.tfdeploy\terraform\run\sap_library\module.tfdeploy\terraform\run\sap_deployer\module.tf
Ändern Sie für jede Datei die Quelle für das Modul sap_namegenerator so, dass sie auf den Speicherort des neuen Benennungsmoduls verweist. Beispiel:
module "sap_namegenerator" { source = "../../terraform-units/modules/sap_namegenerator" wird module "sap_namegenerator" { source = "../../../../Contoso_naming".
Ändern der Benennungslogik für Ressourcengruppen
Um die Benennungslogik Ihrer Ressourcengruppe zu ändern, wechseln Sie zu Ihrem benutzerdefinierten Benennungsmodulordner (z. B Workspaces\Contoso_naming. ). Bearbeiten Sie dann die Datei resourcegroup.tf. Ändern Sie den folgenden Code mit Ihrer eigenen Benennungslogik.
locals {
// Resource group naming
sdu_name = length(var.codename) > 0 ? (
upper(format("%s-%s-%s_%s-%s", local.env_verified, local.location_short, local.sap_vnet_verified, var.codename, var.sap_sid))) : (
upper(format("%s-%s-%s-%s", local.env_verified, local.location_short, local.sap_vnet_verified, var.sap_sid))
)
deployer_name = upper(format("%s-%s-%s", local.deployer_env_verified, local.deployer_location_short, local.dep_vnet_verified))
landscape_name = upper(format("%s-%s-%s", local.landscape_env_verified, local.location_short, local.sap_vnet_verified))
library_name = upper(format("%s-%s", local.library_env_verified, local.location_short))
// Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. The name must be unique.
deployer_storageaccount_name = substr(replace(lower(format("%s%s%sdiag%s", local.deployer_env_verified, local.deployer_location_short, local.dep_vnet_verified, local.random_id_verified)), "/[^a-z0-9]/", ""), 0, var.azlimits.stgaccnt)
landscape_storageaccount_name = substr(replace(lower(format("%s%s%sdiag%s", local.landscape_env_verified, local.location_short, local.sap_vnet_verified, local.random_id_verified)), "/[^a-z0-9]/", ""), 0, var.azlimits.stgaccnt)
library_storageaccount_name = substr(replace(lower(format("%s%ssaplib%s", local.library_env_verified, local.location_short, local.random_id_verified)), "/[^a-z0-9]/", ""), 0, var.azlimits.stgaccnt)
sdu_storageaccount_name = substr(replace(lower(format("%s%s%sdiag%s", local.env_verified, local.location_short, local.sap_vnet_verified, local.random_id_verified)), "/[^a-z0-9]/", ""), 0, var.azlimits.stgaccnt)
terraformstate_storageaccount_name = substr(replace(lower(format("%s%stfstate%s", local.library_env_verified, local.location_short, local.random_id_verified)), "/[^a-z0-9]/", ""), 0, var.azlimits.stgaccnt)
}
Ändern von Ressourcensuffixen
Um die Ressourcensuffixe zu ändern, navigieren Sie zu Ihrem benutzerdefinierten Benennungsmodulordner (z. B., Workspaces\Contoso_naming). Bearbeiten Sie dann die Datei variables_local.tf. Passen Sie die folgende Karte mit Ihren eigenen Suffixen für Ressourcen an.
Hinweis
Ändern Sie nur die Kartenwerte. Ändern Sie nicht den Kartenschlüssel, den der Terraform-Code verwendet.
Wenn Sie beispielsweise die Netzwerkschnittstellenkomponente des Administrators umbenennen möchten, wechseln Sie "admin-nic" = "-admin-nic" zu "admin-nic" = "yourNICname".
variable resource_suffixes {
type = map(string)
description = "Extension of resource name"
default = {
"admin_nic" = "-admin-nic"
"admin_subnet" = "admin-subnet"
"admin_subnet_nsg" = "adminSubnet-nsg"
"app_alb" = "app-alb"
"app_avset" = "app-avset"
"app_subnet" = "app-subnet"
"app_subnet_nsg" = "appSubnet-nsg"
"db_alb" = "db-alb"
"db_alb_bepool" = "dbAlb-bePool"
"db_alb_feip" = "dbAlb-feip"
"db_alb_hp" = "dbAlb-hp"
"db_alb_rule" = "dbAlb-rule_"
"db_avset" = "db-avset"
"db_nic" = "-db-nic"
"db_subnet" = "db-subnet"
"db_subnet_nsg" = "dbSubnet-nsg"
"deployer_rg" = "-INFRASTRUCTURE"
"deployer_state" = "_DEPLOYER.terraform.tfstate"
"deployer_subnet" = "_deployment-subnet"
"deployer_subnet_nsg" = "_deployment-nsg"
"iscsi_subnet" = "iscsi-subnet"
"iscsi_subnet_nsg" = "iscsiSubnet-nsg"
"library_rg" = "-SAP_LIBRARY"
"library_state" = "_SAP-LIBRARY.terraform.tfstate"
"kv" = ""
"msi" = "-msi"
"nic" = "-nic"
"osdisk" = "-OsDisk"
"pip" = "-pip"
"ppg" = "-ppg"
"sapbits" = "sapbits"
"storage_nic" = "-storage-nic"
"storage_subnet" = "_storage-subnet"
"storage_subnet_nsg" = "_storageSubnet-nsg"
"scs_alb" = "scs-alb"
"scs_alb_bepool" = "scsAlb-bePool"
"scs_alb_feip" = "scsAlb-feip"
"scs_alb_hp" = "scsAlb-hp"
"scs_alb_rule" = "scsAlb-rule_"
"scs_avset" = "scs-avset"
"scs_ers_feip" = "scsErs-feip"
"scs_ers_hp" = "scsErs-hp"
"scs_ers_rule" = "scsErs-rule_"
"scs_scs_rule" = "scsScs-rule_"
"sdu_rg" = ""
"tfstate" = "tfstate"
"vm" = ""
"vnet" = "-vnet"
"vnet_rg" = "-INFRASTRUCTURE"
"web_alb" = "web-alb"
"web_alb_bepool" = "webAlb-bePool"
"web_alb_feip" = "webAlb-feip"
"web_alb_hp" = "webAlb-hp"
"web_alb_inrule" = "webAlb-inRule"
"web_avset" = "web-avset"
"web_subnet" = "web-subnet"
"web_subnet_nsg" = "webSubnet-nsg"
}
}