共用方式為


設定控制平面

SAP 部署自動化架構的控制平面包含下列元件:

  • 部署器
  • SAP 程式庫

顯示控制平面的圖表。

部署器

部署程式是SAP部署自動化架構的執行引擎。 這是預先設定的虛擬機(VM),用於執行 Terraform 和 Ansible 命令。 當您使用 Azure DevOps 時,部署程式是自我裝載的代理程式。

部署者的組態是在 Terraform tfvars 變數檔案中執行。

如果您想要針對部署者使用現有的資源群組,請使用 resource_group_arm_id 部署器 tfvars 檔案中的 參數,為資源群組提供 Azure 資源識別符。 如果未定義 參數,則會使用預設命名來建立資源群組。 您可以使用 參數來變更預設名稱 resource_group_name

Terraform 參數

下表顯示 Terraform 參數。 如果您未使用部署文本,則必須手動輸入這些參數。

變數 描述 類型
tfstate_resource_id SAP 連結庫中記憶體帳戶的 Azure 資源識別碼,其中包含 Terraform 狀態檔案 必要

環境參數

下表顯示定義資源命名的參數。

變數 描述 類型​ 備註
environment 控制平面的標識碼(最多 5 個字元)。 必要 例如, PROD 針對生產環境和 NP 非生產環境。
location 要在其中部署的 Azure 區域。 必要 使用小寫。
codename 用於命名資源的其他元件。 選擇性
name_override_file 名稱覆寫檔案。 選擇性 請參閱 自定義命名
place_delete_lock_on_resources 將刪除鎖定放在金鑰資源上。 選擇性

資源群組

下表顯示定義資源群組的參數。

變數 描述 類型
resourcegroup_name 所要建立資源群組的名稱 選擇性
resourcegroup_arm_id 現有資源群組的 Azure 資源識別碼 選擇性
resourcegroup_tags 要與資源群組相關聯的標籤 選擇性

網路參數

自動化架構支援建立虛擬網路和子網(綠色欄位),或使用現有的虛擬網路和現有的子網(棕色字段)或綠色字段和棕色欄位的組合:

  • 綠色欄位案例:必須指定虛擬網路位址空間和子網位址前綴。
  • Brown-field 案例:必須指定虛擬網路和子網的 Azure 資源標識符。

虛擬網路位址空間的建議 CIDR 為 /27,其允許 32 個 IP 位址空間。 CIDR 值 /28 只允許 16 個 IP 位址。 如果您想要包含 Azure 防火牆,請使用 CIDR 值 /25,因為 Azure 防火牆需要 /26 的範圍。

管理子網的建議 CIDR 值為 /28,允許 16 個 IP 位址。 防火牆子網的建議 CIDR 值為 /26,允許 64 個 IP 位址。

下表顯示網路參數。

變數 描述 類型​ 備註
management_network_name 部署者將部署所在的虛擬網路名稱 選擇性 針對綠色欄位部署
management_network_logical_name 網路的邏輯名稱 (DEV-WEEU-MGMT01-INFRASTRUCTURE) 必要
management_network_arm_id 虛擬網路的 Azure 資源識別碼 選擇性 用於棕色場部署
management_network_address_space 虛擬網路的位址範圍 必要 針對綠色欄位部署
management_subnet_name 子網路的名稱 選擇性
management_subnet_address_prefix 此子網路的位址範圍 必要 針對綠色欄位部署
management_subnet_arm_id 子網路的 Azure 資源識別碼 必要 用於棕色場部署
management_subnet_nsg_name 網路安全組的名稱 選擇性
management_subnet_nsg_arm_id 網路安全組的 Azure 資源識別碼 必要 用於棕色場部署
management_subnet_nsg_allowed_ips 要新增至 Azure 防火牆的允許 IP 位址範圍 選擇性
management_firewall_subnet_arm_id Azure 防火牆 子網的 Azure 資源識別符 必要 用於棕色場部署
management_firewall_subnet_address_prefix 此子網路的位址範圍 必要 針對綠色欄位部署
management_bastion_subnet_arm_id Azure Bastion 子網的 Azure 資源標識符 必要 用於棕色場部署
management_bastion_subnet_address_prefix 此子網路的位址範圍 必要 針對綠色欄位部署
webapp_subnet_arm_id Web 應用程式子網路的 Azure 資源識別碼 必要 用於棕色場部署
webapp_subnet_address_prefix 此子網路的位址範圍 必要 針對綠色欄位部署
use_private_endpoint 使用私人端點。 選擇性
use_service_endpoint 使用子網的服務端點。 選擇性

注意

當您針對 Web 應用程式使用現有的子網時,子網必須是空的、與部署的資源群組位於相同的區域中,並委派給 Microsoft.Web/serverFarms。

部署者虛擬機參數

下表顯示與部署者 VM 相關的參數。

變數 描述 類型
deployer_size 定義要使用的 VM SKU,預設值:Standard_D4ds_v4 選擇性
deployer_count 定義部署者的數目 選擇性
deployer_image 定義要使用的 VM 映射,預設值:Ubuntu 22.04 選擇性
plan 定義與 VM 映像相關聯的計劃 選擇性
deployer_disk_type 定義磁碟類型,預設值:進階版_LRS 選擇性
deployer_use_DHCP 控制是否應該使用 Azure 子網提供的 IP 位址(動態) true 選擇性
deployer_private_ip_address 定義要使用的私人IP位址 選擇性
deployer_enable_public_ip 定義部署器是否有公用 IP 選擇性
auto_configure_deployer 定義部署器是否已使用所需的軟體進行設定 (Terraform 和 Ansible) 選擇性
add_system_assigned_identity 定義部署者是否已指派系統身分識別 選擇性

VM 映像是使用下列結構來定義:

xxx_vm_image  = {
  os_type         = ""
  source_image_id = ""
  publisher       = "Canonical"
  offer           = "0001-com-ubuntu-server-jammy"
  sku             = "22_04-lts"
  version         = "latest"
  type            = "marketplace"
}

注意

類型可以是 marketplace/marketplace_with_plan/custom。 使用 類型的 marketplace_with_plan 映像,需要有問題的映像至少在訂用帳戶中使用一次。 第一個使用方式會提示使用者接受授權條款,且自動化沒有辦法核准。

Authentication parameters

本節會定義用來定義 VM 驗證的參數。

變數 描述 類型
deployer_vm_authentication_type 定義部署器的預設驗證 選擇性
deployer_authentication_username 系統管理員帳戶名稱 選擇性
deployer_authentication_password 系統管理員密碼 選擇性
deployer_authentication_path_to_public_key 用於驗證的公開金鑰路徑 選擇性
deployer_authentication_path_to_private_key 用於驗證的私密金鑰路徑 選擇性
use_spn 如果已定義部署,將會使用服務主體執行,否則為 MSI 選擇性

金鑰保存庫參數

本節會定義用來定義 Azure 金鑰保存庫 信息的參數。

變數 描述 類型
user_keyvault_id 用戶金鑰保存庫的 Azure 資源識別碼。 選擇性
spn_keyvault_id 包含部署認證的金鑰保存庫 Azure 資源識別碼。 選擇性
deployer_private_key_secret_name 部署者私鑰的金鑰保存庫秘密名稱。 選擇性
deployer_public_key_secret_name 部署者公鑰的金鑰保存庫秘密名稱。 選擇性
deployer_username_secret_name 部署者用戶名稱的金鑰保存庫秘密名稱。 選擇性
deployer_password_secret_name 部署者密碼的金鑰儲存庫密碼名稱。 選擇性
additional_users_to_add_to_keyvault_policies 要新增至部署金鑰保存庫存取原則的用戶物件識別碼清單。 選擇性
set_secret_expiry 設定金鑰保存庫秘密的 12 個月到期日。 選擇性
soft_delete_retention_days 應該在虛刪除期間保留專案的天數。 選擇性
deployer_assign_subscription_permissions 控制訂用帳戶許可權指派。 選擇性

DNS 支援

變數 描述 類型
dns_label 私用 DNS 區域的 DNS 名稱。 選擇性
use_custom_dns_a_registration 針對 DNS 使用外部系統,針對 Azure 原生設定為 false。 選擇性
management_dns_subscription_id 包含 私用 DNS 區域的訂用帳戶訂用帳戶標識碼。 選擇性
management_dns_resourcegroup_name 包含 私用 DNS 區域的資源群組。 選擇性

其他參數

變數 描述 類型​ 備註
firewall_deployment 布爾值旗標,可控制是否要部署 Azure 防火牆。 選擇性
bastion_deployment 布爾值旗標,可控制是否要部署 Azure Bastion 主機。 選擇性
bastion_sku 要部署之 Azure Bastion 主機的 SKU(基本/標準)。 選擇性
enable_purge_control_for_keyvaults 布爾值旗標,可控制密鑰保存庫上是否啟用清除控件。 選擇性 僅適用於測試部署。
enable_firewall_for_keyvaults_and_storage 限制對所選子網的存取。 選擇性
Agent_IP 代理程式的IP位址。 選擇性
add_Agent_IP 控制代理程式IP是否已新增至金鑰保存庫和記憶體帳戶防火牆 選擇性

Web 應用程式參數

變數 描述 類型​ 備註
use_webapp 布爾值,指出是否應該部署 Webapp。 選擇性
app_service_SKU_name App Service 方案的 SKU。 選擇性
app_registration_app_id 要用於 Webapp 的應用程式註冊標識碼。 選擇性
webapp_client_secret App Service 方案的 SKU。 選擇性 將會保存在 金鑰保存庫

部署器的範例參數檔案 (僅限必要參數)

# The environment value is a mandatory field, it is used for partitioning the environments, for example (PROD and NP)
environment="MGMT"

# The location/region value is a mandatory field, it is used to control where the resources are deployed
location="westeurope"

# management_network_address_space is the address space for management virtual network
management_network_address_space="10.10.20.0/25"

# management_subnet_address_prefix is the address prefix for the management subnet
management_subnet_address_prefix="10.10.20.64/28"

# management_firewall_subnet_address_prefix is the address prefix for the firewall subnet
management_firewall_subnet_address_prefix="10.10.20.0/26"

# management_bastion_subnet_address_prefix is a mandatory parameter if bastion is deployed and if the subnets are not defined in the workload or if existing subnets are not used
management_bastion_subnet_address_prefix = "10.10.20.128/26"

deployer_enable_public_ip=false

firewall_deployment=true

bastion_deployment=true

SAP 程式庫

SAP 連結 提供 Terraform 狀態檔案的持續性記憶體,以及控制平面下載的 SAP 安裝媒體。

SAP 連結庫的組態是在 Terraform tfvars 變數檔案中執行。

如果您想要針對 SAP 連結庫使用現有的資源群組,請使用 resource_group_arm_id 部署器 tfvars 檔案中的 參數,提供資源群組的 Azure 資源識別碼。 如果未定義 參數,則會使用預設命名來建立資源群組。 您可以使用 參數來變更預設名稱 resource_group_name

Terraform 參數

下表顯示 Terraform 參數。 如果您未使用部署腳本或 Azure Pipelines,則必須手動輸入這些參數。

變數 描述 類型​ 備註
deployer_tfstate_key 部署者的狀態檔名 必要

環境參數

下表顯示定義資源命名的參數。

變數 描述 類型​ 備註
environment 控制平面的識別碼(最多五個字元) 必要 例如, PROD 針對生產環境和 NP 非生產環境。
location 要在其中部署的 Azure 區域 必要 使用小寫。
name_override_file 命名覆寫檔案 選擇性 請參閱 自定義命名

資源群組

下表顯示定義資源群組的參數。

變數 描述 類型
resourcegroup_name 所要建立資源群組的名稱 選擇性
resourcegroup_arm_id 現有資源群組的 Azure 資源識別碼 選擇性
resourcegroup_tags 要與資源群組相關聯的標籤 選擇性

SAP 安裝媒體記憶體帳戶

變數 描述 類型
library_sapmedia_arm_id Azure 資源識別碼 選擇性

Terraform 遠端狀態儲存體帳戶

變數 描述 類型
library_terraform_state_arm_id Azure 資源識別碼 選擇性

DNS 支援

變數 描述 類型
dns_label 私用 DNS 區域的 DNS 名稱。 選擇性
use_custom_dns_a_registration 使用現有的 私用 DNS 區域。 選擇性
management_dns_subscription_id 包含 私用 DNS 區域的訂用帳戶訂用帳戶標識碼。 選擇性
management_dns_resourcegroup_name 包含 私用 DNS 區域的資源群組。 選擇性

額外的參數

變數 描述 類型
use_private_endpoint 使用私人端點。 選擇性
use_service_endpoint 使用子網的服務端點。 選擇性
enable_firewall_for_keyvaults_and_storage 限制對所選子網的存取。 選擇性
subnets_to_add_to_firewall_for_keyvaults_and_storage 需要存取金鑰保存庫和記憶體帳戶的子網。 選擇性

SAP 連結庫的範例參數檔案(僅限必要參數)

# The environment value is a mandatory field, it is used for partitioning the environments, for example (PROD and NP)
environment = "MGMT"

# The location/region value is a mandatory field, it is used to control where the resources are deployed
location = "westeurope"

後續步驟