你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

配置控制平面

SAP 部署自动化框架的控制平面包含以下组件:

  • 部署程序
  • SAP 库

显示控制平面的示意图。

部署程序

部署器SAP 部署自动化框架的执行引擎。 它是一个预配置的虚拟机 (VM),用于运行 Terraform 和 Ansible 命令。 使用 Azure DevOps 时,部署器是一个自托管代理。

部署器的配置在 Terraform tfvars 变量文件中执行。

如果你要为部署器使用现有资源组,请使用部署器的 tfvars 文件中的 resource_group_arm_id 参数提供该资源组的 Azure 资源 ID。 如果未定义该参数,则会使用默认命名创建资源组。 可以使用 resource_group_name 参数更改默认名称。

Terraform 参数

此表显示 Terraform 参数。 如果不使用部署脚本,则需要手动输入这些参数。

变量 说明 类型
tfstate_resource_id 包含 Terraform 状态文件的 SAP 库中存储帐户的 Azure 资源标识符 必需

环境参数

下表展示了用于定义资源命名的参数。

变量 说明 类型 说明
environment 控制平面的标识符(最多 5 个字符)。 必需 例如,对于生产环境,此标识符为 PROD,对于非生产环境,此标识符为 NP
location 要部署到的 Azure 区域。 必须 使用小写。
codename 用于对资源命名的附加组件。 可选
name_override_file 名称重写文件。 可选 请参阅自定义命名
place_delete_lock_on_resources 对关键资源施加删除锁。 可选

资源组

下表展示了用于定义资源组的参数。

变量 说明 类型
resourcegroup_name 要创建的资源组的名称 可选
resourcegroup_arm_id 现有资源组的 Azure 资源标识符 可选
resourcegroup_tags 要与资源组关联的标记 可选

网络参数

自动化框架支持创建虚拟网络和子网 (Green field) 或使用现有虚拟网络和现有子网 (Brown field) 或 Green field 和 Brown field 的组合:

  • Green field 方案:必须指定虚拟网络地址空间和子网地址前缀。
  • 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 定义磁盘类型,默认值:Premium_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 的映像要求相关映像在订阅中至少使用过一次。 第一次使用时会提示用户接受许可条款,而自动化没有办法批准它。

身份验证参数

本部分定义一些用于定义 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 要添加到部署密钥保管库访问策略的用户对象 ID 列表。 可选
set_secret_expiry 将密钥保管库机密的有效期设置为 12 个月。 可选
soft_delete_retention_days 项在软删除期间应保留的天数。 可选
deployer_assign_subscription_permissions 控制订阅权限分配。 可选

DNS 支持

变量 说明 类型
dns_label 专用 DNS 区域的 DNS 名称。 可选
use_custom_dns_a_registration 使用外部系统作为 DNS,设置为 false 表示使用 Azure 本机系统。 可选
management_dns_subscription_id 包含专用 DNS 区域的订阅的订阅 ID。 可选
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 指示是否应部署 Web 应用的布尔值。 可选
app_service_SKU_name 应用服务计划的 SKU。 可选
app_registration_app_id 用于 Web 应用的应用注册 ID。 可选
webapp_client_secret 应用服务计划的 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 库使用现有资源组,请使用部署器的 tfvars 文件中的 resource_group_arm_id 参数提供该资源组的 Azure 资源 ID。 如果未定义该参数,则会使用默认命名创建资源组。 可以使用 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 区域的订阅的订阅 ID。 可选
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"

下一步