SAP 自動化架構中的工作負載區域設定
SAP 應用程式通常會有多個開發層。 例如,您可能有開發、品質保證和生產層。 SAP 部署自動化架構會將這些層級稱為工作負載區域。 具有兩個 SAP 系統的工作負載區域範例如下圖所示。
工作負載區域會向工作負載區域中的所有 SAP 系統提供共用服務。 這些共用服務包括:
- Azure 虛擬網路
- Azure Key Vault
- 用於安裝媒體的共用 Azure 儲存體帳戶
- Azure NetApp Files 帳戶和容量集區 (選用)
工作負載區域通常會部署在輪輻訂用帳戶中,且會使用唯一的服務主體來完成工作負載區域中所有成品的部署。
工作負載區域部署設定
SAP 工作負載區域的設定是透過 Terraform tfvars
變數檔案來完成。 您可以在 samples/WORKSPACES/LANDSCAPE
資料夾中找到變數檔案的範例。
下列各節顯示變數檔案的不同區段。
環境參數
下表包含可定義環境設定的參數。
變數 |
描述 |
類型 |
備註 |
environment |
工作負載區域的識別碼 (最多五個字元) |
必要 |
例如,針對實際執行環境的 PROD 和針對品質保證環境的 QA 。 |
location |
要部署的 Azure 區域 |
必要 |
|
name_override_file |
命名覆寫檔案 |
選擇性 |
請參閱自訂命名。 |
tags |
要與所有資源建立關聯的標籤字典。 |
選擇性 |
|
資源群組參數
下表包含定義資源群組的參數。
變數 |
描述 |
類型 |
resourcegroup_name |
所要建立資源群組的名稱 |
選擇性 |
resourcegroup_arm_id |
現有資源群組的 Azure 資源識別碼 |
選擇性 |
resourcegroup_tags |
要與資源群組相關聯的標籤 |
選擇性 |
網路參數
自動化架構支援建立虛擬網路和子網路 (綠地),或使用現有虛擬網路和現有子網路 (棕地) 或綠地和棕地的組合:
- 綠地案例:必須指定虛擬網路位址空間和子網路位址首碼。
- 棕地案例:必須指定虛擬網路和子網路的 Azure 資源識別碼。
請確定虛擬網路位址空間夠大,足以裝載所有的資源。
下表包含網路參數。
變數 |
描述 |
類型 |
備註 |
network_logical_name |
網路的邏輯名稱,例如 SAP01 |
必要 |
用於資源命名 |
network_name |
網路的名稱 |
選擇性 |
|
network_arm_id |
虛擬網路的 Azure 資源識別碼 |
選擇性 |
適用於棕地部署 |
network_address_space |
虛擬網路的位址範圍 |
必要 |
適用於綠地部署 |
|
|
|
|
admin_subnet_address_prefix |
admin 子網路的位址範圍 |
必要 |
適用於綠地部署 |
admin_subnet_arm_id |
admin 子網路的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
admin_subnet_name |
admin 子網路的名稱 |
選擇性 |
|
admin_subnet_nsg_name |
admin 網路安全性群組的名稱 |
選擇性 |
|
admin_subnet_nsg_arm_id |
admin 網路安全性群組的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
|
|
|
|
db_subnet_address_prefix |
db 子網路的位址範圍 |
必要 |
適用於綠地部署 |
db_subnet_arm_id |
db 子網路的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
db_subnet_name |
db 子網路的名稱 |
選擇性 |
|
db_subnet_nsg_name |
db 網路安全性群組的名稱 |
選擇性 |
|
db_subnet_nsg_arm_id |
db 網路安全性群組的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
|
|
|
|
app_subnet_address_prefix |
app 子網路的位址範圍 |
必要 |
適用於綠地部署 |
app_subnet_arm_id |
app 子網路的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
app_subnet_name |
app 子網路的名稱 |
選擇性 |
|
app_subnet_nsg_name |
app 網路安全性群組的名稱 |
選擇性 |
|
app_subnet_nsg_arm_id |
app 網路安全性群組的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
|
|
|
|
web_subnet_address_prefix |
web 子網路的位址範圍 |
必要 |
適用於綠地部署 |
web_subnet_arm_id |
web 子網路的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
web_subnet_name |
web 子網路的名稱 |
選擇性 |
|
web_subnet_nsg_name |
web 網路安全性群組的名稱 |
選擇性 |
|
web_subnet_nsg_arm_id |
web 網路安全性群組的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
下表包含如果使用 Azure NetApp Files 的網路參數。
變數 |
描述 |
類型 |
備註 |
anf_subnet_arm_id |
ANF 子網路的 Azure 資源識別碼 |
必要 |
使用現有子網路時 |
anf_subnet_address_prefix |
ANF 子網路的位址範圍 |
必要 |
使用 ANF 進行部署時 |
anf_subnet_name |
ANF 子網路的名稱 |
選擇性 |
|
anf_subnet_nsg_name |
anf 網路安全性群組的名稱 |
選擇性 |
|
anf_subnet_nsg_arm_id |
anf 網路安全性群組的 Azure 資源識別碼 |
選擇性 |
適用於棕地部署 |
下表包含從這個工作負載區域裝載 iSCSI 裝置時的網路參數。
變數 |
描述 |
類型 |
備註 |
iscsi_subnet_address_prefix |
iscsi 子網路的位址範圍 |
必要 |
適用於綠地部署 |
iscsi_subnet_arm_id |
iscsi 子網路的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
iscsi_subnet_name |
iscsi 子網路的名稱 |
選擇性 |
|
iscsi_subnet_nsg_arm_id |
iscsi 網路安全性群組的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
iscsi_subnet_nsg_name |
iscsi 網路安全性群組的名稱 |
選擇性 |
|
下表包含從這個工作負載區域裝載 Azure Monitor for SAP 時的網路參數。
變數 |
描述 |
類型 |
備註 |
ams_subnet_address_prefix |
iscsi 子網路的位址範圍 |
必要 |
適用於綠地部署 |
ams_subnet_arm_id |
iscsi 子網路的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
ams_subnet_name |
iscsi 子網路的名稱 |
選擇性 |
|
ams_subnet_nsg_arm_id |
iscsi 網路安全性群組的 Azure 資源識別碼 |
必要 |
適用於棕地部署 |
ams_subnet_nsg_name |
iscsi 網路安全性群組的名稱 |
選擇性 |
|
下表包含其他網路參數。
變數 |
描述 |
類型 |
備註 |
use_private_endpoint |
是為儲存體帳戶和金鑰保存庫建立的私人端點。 |
選擇性 |
|
use_service_endpoint |
是為子網路定義的服務端點。 |
選擇性 |
|
peer_with_control_plane_vnet |
虛擬網路是否與控制平面虛擬網路對等互連。 |
選擇性 |
SAP 安裝的必要項目 |
public_network_access_enabled |
是否在儲存體帳戶和金鑰保存庫上啟用公用存取 |
選擇性 |
|
最低必要網路定義
network_logical_name = "SAP01"
network_address_space = "10.110.0.0/16"
db_subnet_address_prefix = "10.110.96.0/19"
app_subnet_address_prefix = "10.110.32.0/19"
Authentication parameters
下表定義用於定義虛擬機器驗證的參數。
變數 |
描述 |
類型 |
備註 |
automation_username |
系統管理員帳戶名稱 |
選擇性 |
預設:azureadm |
automation_password |
系統管理員密碼 |
選擇性 |
|
automation_path_to_public_key |
現有公開金鑰的路徑 |
選擇性 |
|
automation_path_to_private_key |
現有私用金鑰的路徑 |
選擇性 |
|
use_spn |
若定義此變數,則會使用服務主體來執行部署,否則會使用 MSI |
選擇性 |
|
最低必要驗證定義
automation_username = "azureadm"
金鑰保存庫參數
下表定義用於定義金鑰保存庫資訊的參數。
變數 |
描述 |
類型 |
備註 |
spn_keyvault_id |
現有部署認證 (SPN) 金鑰保存庫的 Azure 資源識別碼 |
選擇性 |
|
user_keyvault_id |
現有系統認證金鑰保存庫的 Azure 資源識別碼 |
選擇性 |
|
additional_users_to_add_to_keyvault_policies |
要新增至部署金鑰保存庫存取原則的使用者物件識別碼清單 |
選擇性 |
|
enable_purge_control_for_keyvaults |
停用 Azure 金鑰保存庫的清除保護 |
選擇性 |
僅適用於測試環境。 |
enable_rbac_authorization_for_keyvault |
在金鑰保存庫上啟用 RBAC |
選擇性 |
|
soft_delete_retention_days |
應在虛刪除期間保留項目的天數 |
選擇性 |
|
keyvault_private_endpoint_id |
金鑰保存庫私人端點的 Azure 資源識別碼 |
選擇性 |
|
私人 DNS
變數 |
描述 |
類型 |
dns_label |
若已指定,則為私人 DNS 區域的 DNS 名稱 |
選擇性 |
dns_resource_group_name |
包含私人 DNS 區域的資源群組名稱 |
選擇性 |
register_virtual_network_to_dns |
控制 SAP 虛擬網路是否已向私人 DNS 區域註冊 |
選擇性 |
dns_server_list |
如果指定,則為 DNS 伺服器 IP 位址的清單 |
選擇性 |
NFS 支援
變數 |
描述 |
類型 |
備註 |
create_transport_storage |
如果定義,請建立傳輸目錄的儲存體。 |
選擇性 |
|
export_install_path |
如果提供,請匯出安裝媒體的掛接路徑。 |
選擇性 |
|
export_transport_path |
如果提供,請匯出傳輸共用的掛接路徑。 |
選擇性 |
|
install_always_create_fileshares |
一律建立檔案共用。 |
選擇性 |
|
install_private_endpoint_id |
install 私人端點的 Azure 資源識別碼。 |
選擇性 |
針對現有端點 |
install_volume_size |
定義 install 磁碟區的大小 (以 GB 為單位)。 |
選擇性 |
|
NFS_provider |
定義要使用的 NFS 後端。 |
選擇性 |
選項為AFS 適用於 Azure 檔案儲存體 NFS 或ANF 適用於 Azure NetApp 檔案、NONE 適用於來自 SCS 伺服器的 NFS,或NFS 適用於外部 NFS 解決方案。 |
transport_private_endpoint_id |
金鑰保存庫私人端點的 Azure 資源識別碼 |
選擇性 |
|
transport_volume_size |
定義 transport 磁碟區的大小 (以 GB 為單位)。 |
選擇性 |
|
use_AFS_for_installation_media |
如果提供,則將 AFS 用於安裝媒體。 |
選擇性 |
|
Azure 檔案儲存體 NFS 支援
變數 |
描述 |
類型 |
備註 |
install_storage_account_id |
install 儲存體帳戶的 Azure 資源識別碼 |
選擇性 |
適用於棕地部署 |
transport_storage_account_id |
transport 儲存體帳戶的 Azure 資源識別碼 |
選擇性 |
適用於棕地部署 |
Storage account replication type |
儲存體帳戶複寫類型,預設 ZRS |
選擇性 |
|
最低必要 Azure Files NFS 定義
NFS_provider = "AFS"
use_private_endpoint = true
Azure NetApp Files 支援
變數 |
描述 |
類型 |
備註 |
ANF_account_name |
Azure NetApp Files 帳戶的名稱 |
選擇性 |
|
ANF_service_level |
Azure NetApp Files 容量集區的服務等級 |
選擇性 |
|
ANF_pool_size |
Azure NetApp Files 容量集區的大小 (以 GB 為單位) |
選擇性 |
|
ANF_qos_type |
集區的服務品質類型 (自動或手動) |
選擇性 |
|
ANF_use_existing_pool |
針對 Azure NetApp Files 容量集區使用現有項目 |
選擇性 |
|
ANF_pool_name |
Azure NetApp Files 容量集區的名稱 |
選擇性 |
|
ANF_account_arm_id |
Azure NetApp Files 帳戶的 Azure 資源識別碼 |
選擇性 |
適用於棕地部署 |
|
|
|
|
ANF_transport_volume_use_existing |
定義是否使用現有的傳輸磁碟區 |
選擇性 |
|
ANF_transport_volume_name |
定義傳輸磁碟區名稱 |
選擇性 |
適用於棕地部署 |
ANF_transport_volume_size |
定義傳輸磁碟區的大小 (以 GB 為單位) |
選擇性 |
|
ANF_transport_volume_throughput |
定義傳輸磁碟區的輸送量 |
選擇性 |
|
ANF_transport_volume_zone |
定義傳輸磁碟區的可用性區域 |
選擇性 |
|
|
|
|
|
ANF_install_volume_use_existing |
定義是否使用現有的安裝磁碟區 |
選擇性 |
|
ANF_install_volume_name |
定義安裝磁碟區名稱 |
選擇性 |
適用於棕地部署 |
ANF_install_volume_size |
定義 install 磁碟區的大小 (以 GB 為單位) |
選擇性 |
|
ANF_install_volume_throughput |
定義安裝磁碟區的輸送量 |
選擇性 |
|
ANF_install_volume_zone |
定義安裝磁碟區的可用性區域 |
選擇性 |
|
最低必要 ANF 定義
NFS_provider = "ANF"
anf_subnet_address_prefix = "10.110.64.0/27"
ANF_service_level = "Ultra"
DNS 支援
變數 |
描述 |
類型 |
dns_label |
私人 DNS 區域的 DNS 名稱。 |
選擇性 |
management_dns_resourcegroup_name |
包含私人 DNS 區域的資源群組。 |
選擇性 |
management_dns_subscription_id |
訂用帳戶的訂用帳戶識別碼,此訂用帳戶包含私人 DNS 區域。 |
選擇性 |
use_custom_dns_a_registration |
使用現有的私人 DNS 區域。 |
選擇性 |
NAT 支援
變數 |
描述 |
類型 |
deploy_nat_gateway |
若設定此變數,則會部署 NAT 閘道。 |
選擇性 |
nat_gateway_name |
NAT 閘道的名稱。 |
選擇性 |
nat_gateway_arm_id |
NAT 閘道的 Azure 資源識別碼。 |
選擇性 |
nat_gateway_public_ip_zones |
NAT 閘道公用 IP 位址的區域 |
選擇性 |
nat_gateway_public_ip_arm_id |
NAT 閘道公用IP位址的 Azure 資源識別碼 |
選擇性 |
nat_gateway_idle_timeout_in_minutes |
NAT 閘道的閒置逾時分鐘數 (default=4) |
選擇性 |
nat_gateway_public_ip_tags |
公用 IP 資源的標籤 |
選擇性 |
其他參數
變數 |
描述 |
類型 |
備註 |
diagnostics_storage_account_arm_id |
診斷儲存體帳戶的 Azure 資源識別碼。 |
必要 |
適用於棕地部署。 |
place_delete_lock_on_resources |
在金鑰保存庫和虛擬網路上放置刪除鎖定 |
選擇性 |
|
witness_storage_account_arm_id |
見證儲存體帳戶的 Azure 資源識別碼。 |
必要 |
適用於棕地部署。 |
Agent_IP |
代理程式的 IP 位址。 |
選擇性 |
|
add_Agent_IP |
控制是否將代理程式 IP 新增至金鑰保存庫和儲存體帳戶防火牆 |
選擇性 |
|
enable_firewall_for_keyvaults_and_storage |
限制對所選子網路的存取。 |
選擇性 |
|
ISCSI 參數
變數 |
描述 |
類型 |
備註 |
iscsi_authentication_type |
定義 iSCSI 虛擬機器的預設驗證 |
選擇性 |
|
iscsi_authentication_username |
系統管理員帳戶名稱 |
選擇性 |
|
iscsi_count |
iSCSI 虛擬機器的數目 |
選擇性 |
|
iscsi_size |
iSCSI 虛擬機器的大小 |
選擇性 |
|
iscsi_image |
定義要使用的虛擬機器映像 (下表) |
選擇性 |
|
iscsi_nic_ips |
iSCSI 虛擬機器的 IP 位址 |
選擇性 |
如果已定義 iscsi_use_DHCP ,則會忽略 |
iscsi_use_DHCP |
控制是否要使用 Azure 子網路所提供的動態 IP 位址 |
選擇性 |
|
iscsi_vm_zones |
iSCSI 虛擬機器的可用性區域 |
選擇性 |
|
公用程式 VM 參數
變數 |
描述 |
類型 |
備註 |
utility_vm_count |
定義要部署的公用程式虛擬機器數目 |
選擇性 |
使用公用程式虛擬機器來裝載 SAPGui |
utility_vm_image |
定義要使用的虛擬機器映像 |
選擇性 |
預設值:Windows Server 2019 |
utility_vm_nic_ips |
定義虛擬機器的 IP 位址 |
選擇性 |
|
utility_vm_os_disk_size |
定義虛擬機器的 OS 磁碟大小 |
選擇性 |
預設值:128 |
utility_vm_os_disk_type |
定義虛擬機器的 OS 磁碟類型 |
選擇性 |
預設值:Premium_LRS |
utility_vm_size |
定義公用程式虛擬機器的 SKU |
選擇性 |
預設值:Standard_D4ds_v4 |
utility_vm_useDHCP |
定義是否應使用 Azure 子網路提供的 IP |
選擇性 |
|
`user_assigned_identity_id |
要指派給虛擬機器之使用者指派的身分識別 |
選擇性 |
|
虛擬機器和作業系統映像是使用下列結構進行定義:
{
os_type = "linux"
type = "marketplace"
source_image_id = ""
publisher = "SUSE"
offer = "sles-sap-15-sp5"
sku = "gen2"
version= " latest"
}
Azure Monitor for SAP 參數
變數 |
描述 |
類型 |
備註 |
create_ams_instance |
定義是否應該建立 Azure Monitor for SAP 執行個體 |
選擇性 |
|
ams_instance_name |
定義執行個體的名稱 |
選擇性 |
|
ams_laws_arm_id |
定義 Log Analytics 工作區的 ARM 資源識別碼 |
選擇性 |
|
下表包含 Terraform 參數。 如果您未使用部署指令碼,則必須手動輸入這些參數。
變數 |
描述 |
類型 |
tfstate_resource_id |
SAP 程式庫中包含 Terraform 狀態檔案之儲存體帳戶的 Azure 資源識別碼。 |
必要 |
deployer_tfstate_key |
部署器的狀態檔案名稱。 |
必要 |
後續步驟