Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
SAP Deployment Automation Framework använder en standardnamnkonvention för de Azure-resurser som det distribuerar. Om standardnamnen inte matchar organisationens namngivningsstandarder, eller om du behöver undvika namngivningskonflikter i Azure-prenumerationer, kan du åsidosätta dem med dina egna namn.
Den här artikeln visar hur du anger anpassade resursnamn med hjälp av en JSON-åsidosättningsfil eller genom att ändra Terraform-namngivningsmodulen direkt.
Förutsättningar
- Ett Azure-abonnemang. Om du inte har en prenumeration skapar du ett kostnadsfritt konto.
- Terraform installerat på den lokala datorn.
- Git installerat på den lokala datorn.
- Åtkomst till SAP Deployment Automation Framework-lagringsplatsen.
- Kunskaper om JSON- och Terraform HCL-syntax.
Ange namnändringar med hjälp av en JSON-fil
Terraform-modulen sap_namegenerator definierar namnen på alla resurser som ramverket distribuerar. Modulen finns på /deploy/terraform/terraform-units/modules/sap_namegenerator/ på lagringsplatsen. Ramverket har också stöd för att tillhandahålla egna namn för vissa av resurserna med hjälp av parameterfilerna.
Resursnamngivning använder följande format:
resource prefix + resource_group_prefix + separator + resource name + resource suffix.
Du kan ange en JSON-fil med anpassad namngivning i tfvars parameterfilen med hjälp av parametern name_override_file .
JSON-filen innehåller avsnitt för de olika resurstyperna.
Distributionstyperna är:
- DEPLOYER (kontrollplan)
- SDU (SAP-systeminfrastruktur)
- WORKLOAD_ZONE (arbetsbelastningszon)
Definiera namn på tillgänglighetsuppsättningar
Namn på tillgänglighetsuppsättningar definieras i availabilityset_names strukturen. I exemplet nedan visas tillgänglighetsuppsättningarnas namn för en distribution.
"availabilityset_names" : {
"app": "app-avset",
"db" : "db-avset",
"scs": "scs-avset",
"web": "web-avset"
}
Definiera namn på nyckelvalv
Nyckelvalvsnamn definieras i keyvault_names strukturen. Följande exempel visar key vault-namnen för en distribution i DEV miljön i Västeuropa.
"keyvault_names": {
"DEPLOYER": {
"private_access": "DEVWEEUprvtABC",
"user_access": "DEVWEEUuserABC"
},
"SDU": {
"private_access": "DEVWEEUSAP01X00pABC",
"user_access": "DEVWEEUSAP01X00uABC"
},
"WORKLOAD_ZONE": {
"private_access": "DEVWEEUSAP01prvtABC",
"user_access": "DEVWEEUSAP01userABC"
}
}
Nyckelvalvsnamn måste vara unika i Hela Azure. SAP Deployment Automation Framework lägger till tre slumpmässiga tecken (ABC i exemplet) i slutet av nyckelvalvets namn för att minska sannolikheten för namnkonflikter.
Namnen private_access används inte.
Definiera lagringskontonamn
Lagringskontonamn definieras i storageaccount_names strukturen. I följande exempel visas lagringskontonamnen för en distribution i DEV miljön i Västeuropa.
"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"
}
}
Lagringskontonamn måste vara unika i Hela Azure. SAP Deployment Automation Framework lägger till tre slumpmässiga tecken (abc i exemplet) i slutet av lagringskontots namn för att minska sannolikheten för namnkonflikter.
Definiera namn på virtuella datorer
Namn på virtuella datorer definieras i virtualmachine_names strukturen. Du kan ange både datornamnet och namnet på den virtuella datorn.
I följande exempel visas namnen på de virtuella maskinerna för en distribution i DEV-miljön i Västeuropa. Distributionen har en databasserver, två programservrar, en central tjänstserver och en webbutskickare.
"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"
]
}
Konfigurera modulen för anpassad namngivning
Modulen innehåller flera filer för namngivning av resurser:
- Virtuella maskiners och datorers namn definieras i
vm.tf. - Namngivning av resursgrupper definieras i
resourcegroup.tf. - Nyckelvalv definieras i
keyvault.tf. - Resurssuffixer definieras i
variables_local.tf.
Följande prefix i Terraform-koden identifierar resursnamnen:
- SAP-distributioner använder resursnamn med prefixet
deployer_. - SAP-biblioteksdistributioner använder resursnamn med prefixet
library. - SAP-miljödistributioner använder resursnamn med prefixet
vnet_. - SAP-systemdistributioner använder resursnamn med prefixet
sdu_.
De beräknade namnen returneras i en dataordlista som används av alla Terraform-moduler.
Använda anpassade namn
Du kan ändra vissa resursnamn genom att ange parametrar i tfvars parameterfilen.
| Resurs | Parameter | Noteringar |
|---|---|---|
Prefix |
custom_prefix |
Används som prefix för alla resurser i resursgruppen |
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 |
Ändra namngivningsmodulen
Skapa en anpassad namngivningsmodul för att förbereda Terraform-miljön för anpassad namngivning. Det enklaste sättet är att kopiera den befintliga modulen och göra nödvändiga ändringar i den kopierade modulen.
- Skapa en mapp på rotnivå i Terraform-miljön. Till exempel
Azure_SAP_Automated_Deployment. - Gå till den nya mappen på rotnivå.
- Klona automation framework-lagringsplatsen. Det här steget skapar en ny mapp
sap-automation. - Skapa en mapp i mappen på rotnivå med namnet
Contoso_naming. - Öppna mappen
sap-automation. - Kolla in lämplig gren i Git.
- Gå till
\deploy\terraform\terraform-units\modulesisap-automationmappen. - Kopiera mappen
sap_namegeneratortillContoso_namingmappen.
Namngivningsmodulen anropas från rotmapparna terraform :
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
}
Peka sedan dina andra Terraform-modulfiler till din anpassade namngivningsmodul. Dessa modulfiler omfattar:
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
För varje fil ändrar du källan för modulen sap_namegenerator så att den pekar på platsen för den nya namngivningsmodulen. Till exempel:
module "sap_namegenerator" { source = "../../terraform-units/modules/sap_namegenerator" blir module "sap_namegenerator" { source = "../../../../Contoso_naming".
Ändra namngivningslogik för resursgrupper
Så här ändrar du namnlogik för resursgruppen:
- Gå till mappen för den anpassade namngivningsmodulen (till exempel
Workspaces\Contoso_naming). - Öppna
resourcegroup.tf-filen. - Ändra följande kod med din egen namngivningslogik:
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)
}
Ändra resurssuffix
För att ändra resurssuffixerna:
- Gå till mappen för den anpassade namngivningsmodulen (till exempel
Workspaces\Contoso_naming). - Öppna
variables_local.tf-filen. - Ändra följande karta med dina egna resurssuffix.
Anmärkning
Ändra endast kartvärdena. Ändra inte kartnyckeln, som Terraform-koden använder.
Om du till exempel vill byta namn på administratörens nätverksgränssnittskomponent ändrar du "admin-nic" = "-admin-nic" till "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"
}
}