Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
SAP Deployment Automation Framework maakt gebruik van een standaardnaamconventie voor de Azure-resources die worden geïmplementeerd. Als de standaardnamen niet overeenkomen met de naamgevingsstandaarden van uw organisatie of als u naamconflicten tussen Azure-abonnementen wilt voorkomen, kunt u deze overschrijven met uw eigen namen.
In dit artikel leest u hoe u aangepaste resourcenamen kunt opgeven met behulp van een JSON-onderdrukkingsbestand of door de Terraform-naamgevingsmodule rechtstreeks te wijzigen.
Vereiste voorwaarden
- Een Azure-abonnement. Als je geen abonnement hebt, maak een gratis account aan.
- Terraform is geïnstalleerd op uw lokale computer.
- Git is geïnstalleerd op uw lokale computer.
- Toegang tot de SAP Deployment Automation Framework-opslagplaats.
- Bekendheid met JSON- en Terraform HCL-syntaxis.
Naamoverschrijvingen opgeven met behulp van een JSON-bestand
De Terraform-module sap_namegenerator definieert de namen van alle resources die door het framework worden geïmplementeerd. De module bevindt zich in /deploy/terraform/terraform-units/modules/sap_namegenerator/ de opslagplaats. Het framework biedt ook ondersteuning voor het leveren van uw eigen namen voor sommige resources met behulp van de parameterbestanden.
Naamgeving van resources maakt gebruik van de volgende indeling:
resource prefix + resource_group_prefix + separator + resource name + resource suffix.
U kunt een aangepast JSON-naamgevingsbestand opgeven in uw tfvars parameterbestand met behulp van de name_override_file parameter.
Het JSON-bestand bevat secties voor de verschillende resourcetypen.
De implementatietypen zijn:
- DEPLOYER (besturingsvlak)
- SDU (SAP-systeeminfrastructuur)
- WORKLOAD_ZONE (workload zone)
Namen van beschikbaarheidssets definiëren
Namen van beschikbaarheidssets worden gedefinieerd in de availabilityset_names structuur. In het volgende voorbeeld ziet u de namen van de beschikbaarheidssets voor een implementatie.
"availabilityset_names" : {
"app": "app-avset",
"db" : "db-avset",
"scs": "scs-avset",
"web": "web-avset"
}
Key Vault-namen definiëren
Namen van sleutelkluizen worden gedefinieerd in de keyvault_names structuur. In het volgende voorbeeld ziet u de namen van de sleutelkluizen voor een implementatie in de DEV, omgeving in West-Europa.
"keyvault_names": {
"DEPLOYER": {
"private_access": "DEVWEEUprvtABC",
"user_access": "DEVWEEUuserABC"
},
"SDU": {
"private_access": "DEVWEEUSAP01X00pABC",
"user_access": "DEVWEEUSAP01X00uABC"
},
"WORKLOAD_ZONE": {
"private_access": "DEVWEEUSAP01prvtABC",
"user_access": "DEVWEEUSAP01userABC"
}
}
Sleutelkluisnamen moeten uniek zijn in Azure. SAP Deployment Automation Framework voegt drie willekeurige tekens (ABC in het voorbeeld) toe aan het einde van de sleutelkluisnaam om de kans op naamconflicten te verminderen.
De private_access namen worden niet gebruikt.
Namen van opslagaccounts definiëren
Namen van opslagaccounts worden gedefinieerd in de storageaccount_names structuur. In het volgende voorbeeld ziet u de namen van het opslagaccount voor een implementatie in de DEV omgeving in West-Europa.
"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"
}
}
Namen van opslagaccounts moeten uniek zijn in Azure. SAP Deployment Automation Framework voegt drie willekeurige tekens (abc in het voorbeeld) toe aan het einde van de naam van het opslagaccount om de kans op naamconflicten te verminderen.
Namen van virtuele machines definiëren
Namen van virtuele machines worden gedefinieerd in de virtualmachine_names structuur. U kunt zowel de computernaam als de naam van de virtuele machine opgeven.
In het volgende voorbeeld ziet u de namen van virtuele machines voor een implementatie in de DEV omgeving in Europa - west. De implementatie heeft een databaseserver, twee toepassingsservers, een centrale servicesserver en een 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"
]
}
De aangepaste naamgevingsmodule configureren
De module bevat meerdere bestanden voor het benoemen van resources:
- Namen van virtuele machines en computers worden gedefinieerd in
vm.tf. - Naamgeving van resourcegroepen wordt gedefinieerd in
resourcegroup.tf. - Sleutelkluizen worden gedefinieerd in
keyvault.tf. - Resource-achtervoegsels worden gedefinieerd in
variables_local.tf.
De volgende voorvoegsels in de Terraform-code identificeren de resourcenamen:
- SAP-implementaties gebruiken resourcenamen met het voorvoegsel
deployer_. - SAP-bibliotheekimplementaties gebruiken resourcenamen met het voorvoegsel
library. - SAP-implementaties gebruiken resourcebenamingen met het voorvoegsel
vnet_. - SAP-systeemimplementaties gebruiken resourcenamen met het voorvoegsel
sdu_.
De berekende namen worden geretourneerd in een gegevenswoordenlijst, die wordt gebruikt door alle Terraform-modules.
Aangepaste namen gebruiken
U kunt sommige resourcenamen wijzigen door parameters op te geven in het tfvars parameterbestand.
| Hulpbron | Maatstaf | Opmerkingen |
|---|---|---|
Prefix |
custom_prefix |
Wordt gebruikt als voorvoegsel voor alle resources in de resourcegroep |
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 |
De naamgevingsmodule wijzigen
Als u uw Terraform-omgeving wilt voorbereiden voor aangepaste naamgeving, maakt u een aangepaste naamgevingsmodule. De eenvoudigste manier is om de bestaande module te kopiëren en de vereiste wijzigingen aan te brengen in de gekopieerde module.
- Maak een map op hoofdniveau in uw Terraform-omgeving. Bijvoorbeeld:
Azure_SAP_Automated_Deployment. - Ga naar de nieuwe map op hoofdniveau.
- Kloon de opslagplaats voor het Automation-framework. Met deze stap maakt u een nieuwe map
sap-automation. - Maak een map in de map op hoofdniveau met de naam
Contoso_naming. - Ga naar de
sap-automationmap. - Bekijk de geschikte tak in Git.
- Ga naar
\deploy\terraform\terraform-units\modulesbinnen de mapsap-automation. - Kopieer de map
sap_namegeneratornaar deContoso_namingmap.
De naamgevingsmodule wordt aangeroepen vanuit de hoofdmappen 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
}
Verwijs vervolgens uw andere Terraform-modulebestanden naar uw aangepaste naamgevingsmodule. Deze modulebestanden omvatten:
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
Wijzig voor elk bestand de bron voor de module sap_namegenerator zodat deze verwijst naar de locatie van de nieuwe naamgevingsmodule. Voorbeeld:
module "sap_namegenerator" { source = "../../terraform-units/modules/sap_namegenerator" wordt module "sap_namegenerator" { source = "../../../../Contoso_naming".
Naamgevingslogica voor resourcegroepen wijzigen
Ga als volgt te werk om de naamgevingslogica van uw resourcegroep te wijzigen:
- Ga naar de map met aangepaste naamgevingsmodules (bijvoorbeeld
Workspaces\Contoso_naming). - Open het bestand
resourcegroup.tf. - Wijzig de volgende code met uw eigen naamgevingslogica:
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)
}
Achtervoegsels van bronnen wijzigen
Om uw resourceachtervoegsels te wijzigen:
- Ga naar de map met aangepaste naamgevingsmodules (bijvoorbeeld
Workspaces\Contoso_naming). - Open het bestand
variables_local.tf. - Wijzig de volgende kaart met uw eigen resourceachtervoegsels.
Opmerking
Wijzig alleen de kaartwaarden. Wijzig de kaartsleutel niet, die door de Terraform-code wordt gebruikt.
Als u bijvoorbeeld de naam van het onderdeel van de netwerkinterface van de beheerder wilt wijzigen, gaat u naar "admin-nic" = "-admin-nic""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"
}
}