Mengonfigurasi penamaan khusus untuk kerangka kerja otomatisasi
Kerangka Kerja Otomatisasi Penyebaran SAP menggunakan konvensi penamaan standar untuk penamaan sumber daya Azure.
Modul Terraform sap_namegenerator
menentukan nama seluruh sumber daya yang disebarkan kerangka kerja otomatisasi. Modul ini terletak di /deploy/terraform/terraform-units/modules/sap_namegenerator/
dalam repositori. Kerangka kerja ini juga mendukung penyediaan nama Anda sendiri untuk beberapa sumber daya dengan menggunakan file parameter.
Penamaan sumber daya menggunakan format berikut:
awalan sumber daya + resource_group_prefix + pemisah + nama sumber daya + akhiran sumber daya.
Jika kemampuan ini tidak cukup, Anda juga dapat menggunakan logika penamaan kustom dengan menyediakan file JSON kustom yang berisi nama sumber daya atau dengan memodifikasi modul penamaan yang digunakan oleh otomatisasi.
Berikan penimpaan nama dengan menggunakan file JSON
Anda dapat menentukan file JSON penamaan kustom dalam file parameter Anda tfvars
dengan menggunakan name_override_file
parameter .
File JSON memiliki bagian untuk berbagai jenis sumber daya.
Jenis penyebarannya adalah:
- DEPLOYER (sarana kontrol)
- SDU (infrastruktur sistem SAP)
- WORKLOAD_ZONE (zona beban kerja)
Nama set ketersediaan
Nama untuk set ketersediaan ditentukan dalam availabilityset_names
struktur. Contoh berikut mencantumkan nama set ketersediaan untuk penyebaran.
"availabilityset_names" : {
"app": "app-avset",
"db" : "db-avset",
"scs": "scs-avset",
"web": "web-avset"
}
Nama brankas kunci
Nama-nama untuk brankas kunci didefinisikan dalam keyvault_names
struktur. Contoh berikut mencantumkan nama brankas kunci untuk penyebaran di DEV
lingkungan di Eropa Barat.
"keyvault_names": {
"DEPLOYER": {
"private_access": "DEVWEEUprvtABC",
"user_access": "DEVWEEUuserABC"
},
"SDU": {
"private_access": "DEVWEEUSAP01X00pABC",
"user_access": "DEVWEEUSAP01X00uABC"
},
"WORKLOAD_ZONE": {
"private_access": "DEVWEEUSAP01prvtABC",
"user_access": "DEVWEEUSAP01userABC"
}
}
Nama brankas kunci harus unik di seluruh Azure. Kerangka Kerja Automasi Penyebaran SAP menambahkan tiga karakter acak (ABC dalam contoh) di akhir nama brankas kunci untuk mengurangi kemungkinan konflik nama.
Nama private_access
saat ini tidak digunakan.
Nama akun penyimpanan
Nama untuk akun penyimpanan ditentukan dalam storageaccount_names
struktur. Contoh berikut mencantumkan nama akun penyimpanan untuk penyebaran di DEV
lingkungan di Eropa Barat.
"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"
}
}
Nama brankas kunci harus unik di seluruh Azure. Kerangka Kerja Otomatisasi Penyebaran SAP menambahkan tiga karakter acak (abc dalam contoh) di akhir nama brankas kunci untuk mengurangi kemungkinan konflik nama.
Nama komputer virtual
Nama untuk komputer virtual didefinisikan dalam virtualmachine_names
struktur. Nama komputer dan mesin virtual dapat disediakan.
Contoh berikut mencantumkan nama komputer virtual untuk penyebaran di DEV
lingkungan di Eropa Barat. Penyebaran memiliki server database, dua server aplikasi, server layanan pusat, dan dispatcher web.
"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"
]
}
Mengonfigurasi modul penamaan kustom
Terdapat beberapa file di dalam modul untuk penamaan sumber daya:
- Nama komputer virtual dan komputer didefinisikan dalam (
vm.tf
). - Penamaan grup sumber daya didefinisikan dalam (
resourcegroup.tf
). - Brankas kunci didefinisikan dalam (
keyvault.tf
). - Akhiran sumber daya ditentukan dalam (
variables_local.tf
).
Nama sumber daya yang berbeda diidentifikasi oleh awalan dalam kode Terraform:
- Penyebaran penyebar SAP menggunakan nama sumber daya dengan awalan
deployer_
. - Penyebaran pustaka SAP menggunakan nama sumber daya dengan awalan
library
. - Penyebaran lanskap SAP menggunakan nama sumber daya dengan awalan
vnet_
. - Penyebaran sistem SAP menggunakan nama sumber daya dengan awalan
sdu_
.
Nama yang dihitung dikembalikan dalam kamus data, yang digunakan oleh semua modul Terraform.
Menggunakan nama kustom
Beberapa nama sumber daya dapat diubah dengan memberikan parameter dalam tfvars
file parameter.
Sumber daya | Parameter | Catatan |
---|---|---|
Prefix |
custom_prefix |
Digunakan sebagai awalan untuk semua sumber daya dalam grup sumber daya |
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 |
Mengubah modul penamaan
Untuk menyiapkan lingkungan Terraform Anda untuk penamaan kustom, Anda harus terlebih dahulu membuat modul penamaan kustom. Cara yang paling mudah adalah menyalin modul yang sudah ada dan membuat perubahan yang diperlukan dalam modul yang disalin.
- Buat folder level akar dalam lingkungan Terraform Anda. Contohnya
Azure_SAP_Automated_Deployment
. - Buka folder tingkat akar baru Anda.
- Klon repositori kerangka kerja otomatisasi. Langkah ini akan membuat folder
sap-automation
yang baru. - Buat folder dalam folder level akar yang disebut
Contoso_naming
. - Buka folder
sap-automation
. - Lihat cabang yang sesuai di Git.
- Masuk ke
\deploy\terraform\terraform-units\modules
dalamsap-automation
folder. - Salin folder
sap_namegenerator
ke folderContoso_naming
.
Modul penamaan dipanggil dari folder akar 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
}
Selanjutnya, Anda perlu menentukan titik file modul Terraform Anda yang lain ke modul penamaan kustom Anda. File modul ini meliputi:
deploy\terraform\run\sap_system\module.tf
deploy\terraform\bootstrap\sap_deployer\module.tf
deploy\terraform\bootstrap\sap_library\module.tf
deploy\terraform\run\sap_library\module.tf
deploy\terraform\run\sap_deployer\module.tf
Untuk setiap file, ubah sumber modul sap_namegenerator
untuk mengarahkan ke lokasi modul penamaan baru Anda. Contohnya:
module "sap_namegenerator" { source = "../../terraform-units/modules/sap_namegenerator"
menjadi module "sap_namegenerator" { source = "../../../../Contoso_naming"
.
Mengubah logika penamaan grup sumber daya
Untuk mengubah logika penamaan grup sumber daya Anda, buka folder modul penamaan kustom Anda (misalnya, Workspaces\Contoso_naming
). Kemudian, edit file resourcegroup.tf
. Ubah kode berikut ini dengan logika penamaan Anda sendiri.
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)
}
Mengubah akhiran sumber daya
Untuk mengubah akhiran sumber daya Anda, buka folder modul penamaan kustom Anda (misalnya, Workspaces\Contoso_naming
). Kemudian, edit file variables_local.tf
. Ubah peta berikut dengan akhiran sumber daya Anda sendiri.
Catatan
Hanya ubah nilai peta. Jangan ubah kunci peta, yang menggunakan kode Terraform.
Misalnya, jika Anda ingin mengganti nama komponen antarmuka jaringan administrator, ubah "admin-nic" = "-admin-nic"
menjadi "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"
}
}