28.1 Azure 云上的基础结构部署

Azure 云上的基础结构部署是使用 terraform 配置定义的。可通过两种不同的方法在 Azure 上部署基础结构。您可以根据自己的要求,选择使用配置生成器或配置模板来部署基础结构。

28.1.1 使用配置生成器进行部署

执行以下步骤,以使用 OpenText Identity Manager 配置生成器生成配置文件。

重要说明:必须有一台已安装并运行 Docker 的计算机才能执行以下步骤。

  1. 创建共享卷。有关更多信息,请参见 管理容器卷数据。

  2. 将您的域的证书复制到共享卷。

  3. 运行以下命令装载 Docker 映像:

    docker load --input docker-images/IDM_4100_idm_conf_generator.tar.gz
  4. 导航到解压缩位置,并运行以下命令来部署配置生成器容器:

    docker run --rm -it --name=idm_conf_generator -v /data:/config idm_conf_generator:idm-4.10.0-533
  5. 下表提供了有关新提示的信息:

    注:有关所有现有提示,请参见了解配置参数一节。

    Prompt

    说明

    是否要在 Azure 上部署 OpenText Identity Manager 容器?对于次要服务器部署,请选择“n”并继续进行无提示属性生成 (y/n)?

    指定您是否要部署 OpenText Identity Manager 容器。

    • (视情况而定)如果您选择“是”,请继续回答下一条提示。

    • (视情况而定)如果您选择“否”,请输入包含绝对路径的无提示属性文件名。例如 /config/silent.properties。

      注:对于次要服务器部署,请输入 n 并继续创建无提示属性文件。

    指定 Kubernetes 部署的名称空间。

    输入 Kubernetes 部署的名称空间。例如 idm。

    是否要创建新的 Azure PostgreSQL 服务器实例?

    指定您是否要创建新的 Azure PostgreSQL 服务器实例。

    • (视情况而定)如果您选择“是”,请指定 Azure PostgreSQL 服务器名称的前缀。例如 idmpgserver。

      注:输入的前缀中将追加一个连字符和一个随机生成的 14 位数字。

    • (视情况而定)如果您选择“否”,请继续回答下一条提示。

    输入用于访问 OpenText Identity Manager Web 应用程序的完全限定域名 (FQDN)。

    指定完全限定的域名 (FQDN) 以访问 OpenText Identity Manager Web 应用程序。例如 identitymanager.eastus.cloudapp.azure.com。

    注:OpenText Identity Manager Web 应用程序包括 Identity Applications、Identity Reporting、SSPR、OSP 以及 OpenText Identity Console。

    输入 TLS 证书文件。

    指定 PEM 格式的 TLS 证书文件,其中包含上面指定的域的主题备用名称和常用名。例如 /config/tls.crt。

    输入 TLS 证书的私用密钥文件。

    指定 TLS 证书的私用密钥文件。例如 /config/tls.key。

    输入要在 Azure 上为 OpenText Identity Manager 引擎部署的实例(Pod 复本)数量?

    指定要在 Azure 上为 OpenText Identity Manager 引擎部署的实例(Pod 复本)数量。例如,5 位。

    输入要在 Azure 上为 OSP 部署的实例(Pod 复本)数量?

    指定要在 Azure 上为 OSP 部署的实例(Pod 复本)数量。例如,5 位。

    输入要在 Azure 上为 Identity Applications 部署的实例(Pod 复本)数量?

    指定要在 Azure 上为 Identity Applications 部署的实例(Pod 复本)数量。例如,5 位。

    输入 Azure 服务主体 ID。

    指定在“规划部署”一章的“步骤 5”中生成的 Azure 服务主体 ID。

    输入 Azure 服务口令。

    指定在“规划部署”一章的“步骤 5”中生成的 Azure 服务口令。

    输入您的服务主体的租户 ID。

    指定在“规划部署”一章的“步骤 5”中生成的租户 ID。

    输入现有的 Azure 容器注册表服务器名称。

    指定 Azure 容器注册表服务器名称。请参考步骤 3.c。

    输入 Azure 容器注册表用户名。

    指定 Azure 容器注册表用户名。请参考步骤 3.c。

    输入 Azure 容器注册表用户口令。

    指定 Azure 容器注册表口令。请参考步骤 3.c。

    按原样输入上面列显的相应 Azure 帐户 ID(不包括双引号)。

    指定在上述步骤中生成的 Azure 帐户 ID。

    输入 Azure 资源组名称。

    指定 Azure 资源组名称。例如 idvault-rg。

    输入 Azure 资源组位置。

    指定资源组位置。例如 eastus。

    回答所有提示后,OpenText Identity Manager 配置生成器将执行以下操作:

    • 如果 Azure 中没有可用的资源组,则会创建一个资源组。

    • 将在资源组下创建一个密钥保管库和储存帐户。

    • 所有敏感信息将推送到密钥保管库。

      注:要访问 Azure 密钥保管库中的敏感信息,请参见《Quickstart: Azure Key Vault》(快速入门:Azure 密钥保管库)。

    • 将在共享卷下创建 IDM_4.10_Cloud_Deployment_files.zip 文件,其中包括 Terraform 文件和 Helm 图表。

  6. 登录到 Azure 门户。

    注:将使用初始登录帐户自动对 Azure Cloud Shell 进行鉴定。如果您需要使用其他帐户,请运行 az login 命令并登录到 Azure-CLI。

  7. 执行以下步骤,将 IDM_4.10_Cloud_Deployment_files.zip 文件上载到 Azure Cloud Shell。

    1. 单击 。

    2. 在终端窗口中单击 。

    3. 选择要上载到 Azure 的 zip 文件。

  8. 运行以下命令以解压缩 zip 文件的内容:

    unzip IDM_4.10_Cloud_Deployment_files.zip
  9. 导航到 IDM_4.10_Cloud_Deployment_files 目录。

  10. 在 values.yaml 文件中进行以下更改:

    部分

    字段

    说明

    OpenText Identity Manager Web 应用程序的 TLS 配置

    kubernetesSecret

    将值指定为 false。

    azurekeyVault

    将值指定为 true。

    入口 TLS 证书将作为 kubernetes 机密进行管理。

    敏感数据的机密管理器

    kubernetesSecret

    将值指定为 false。

    azurekeyVault

    将值指定为 true。

    Azure 密钥保管库用作机密管理器。

    AWS Secret Manager 用作机密管理器

    awsSecretManager

    将值指定为 false。

  11. (可选)查看 terraform.tfvars 和 values.yaml。

  12. (可选)运行以下命令创建储存帐户密钥:

    ACCOUNT_KEY=$(az storage account keys list --resource-group $AZURE_RESOURCE_GROUP_NAME --account-name $AZURE_STORAGE_ACCOUNT_FOR_TFSTATE --query '[0].value' -o tsv)

    例如:

    ACCOUNT_KEY=$(az storage account keys list --resource-group idvault-rg --account-name stract10226600913781 --query '[0].value' -o tsv)

  13. (可选)运行以下命令:

    export ARM_ACCESS_KEY=$ACCOUNT_KEY

  14. 运行以下命令,以下载基础结构部署所需的所有必要插件。

    terraform init
  15. 运行以下命令以根据输入规划和了解部署。

    terraform plan
  16. 运行以下命令以创建输入中定义的基础结构。

    terraform apply --auto-approve
  17. (可选)运行以下命令以识别 Azure 帐户特定的信息,例如储存帐户名称、密钥保管库名称和数据库管理员细节。

    terraform output

成功执行 Terraform 命令后,执行Azure Kubernetes 服务上的 OpenText Identity Manager 容器部署中所述的步骤以完成 Azure 上的 OpenText Identity Manager 容器部署。

28.1.2 使用配置模板进行部署

执行以下步骤以更新虚拟机中的配置模板。

  1. 导航到 Identity_Manager_4.10.0_Containers.tar.gz 文件的解压缩目录。

  2. 导航到 Identity_Manager_4.10.0_Containers/terraform/ 目录,并运行以下命令来解压缩 zip 文件的内容。

    unzip IDM_4.10.0_Azure_Terraform_Configuration.zip
  3. 转到 IDM_Azure_Terraform_Configuration 文件夹,并更新 terraform.tfvars 文件中的以下字段。

    表 28-1

    字段

    说明

    resource_group_name

    指定 Azure 资源组名称。例如 idvault-rg。

    resource_group_location

    指定资源组位置。例如 eastus。

    resource_group_exists

    指定您是否想要知道是否存在现有的资源组。例如 true。

    keyvault_name

    指定唯一的密钥保管库名称。

    keyvault_exists

    指定您是否想要知道是否存在现有的密钥保管库。例如 true。

    image_registry_server

    指定 Azure 容器注册表服务器名称。

    image_registry_server_username

    指定 Azure 容器注册表用户名。

    image_registry_server_password

    指定 Azure 容器注册表口令。

    aks_kubernetes_namespace

    输入 Kubernetes 部署的名称空间。例如 idm。

    azure_postgres_server_name

    指定 Azure PostgreSQL 服务器名称。例如 idmpgserver。

    注:生成 terraform.tfvars 文件时会预填充所有剩余字段。

  4. 运行以下命令并登录到 Azure-CLI。

    az login
  5. 执行以下步骤,以将 terraform 状态文件储存在 Azure 储存帐户中:

    1. 运行以下命令以在 Azure 中创建储存帐户。

      az storage account create --name "${AZURE_STORAGE_ACCOUNT_FOR_TFSTATE}" --resource-group "${AZURE_RESOURCE_GROUP_NAME}" --location "${AZURE_RESOURCE_GROUP_LOCATION}" --sku Standard_LRS --encryption-services blob

      例如:

      az storage account create --name stract10226600913781 --resource-group idvault-rg --location eastus --sku Standard_LRS --encryption-services blob

    2. 运行以下命令创建 Azure 储存容器:

      az storage container create -n terraform-state --account-name "${AZURE_STORAGE_ACCOUNT_FOR_TFSTATE}"

      例如:

      az storage container create -n terraform-state --account-name stract10226600913781

    3. 导航到 Identity_Manager_4.10.0_Containers/terraform/IDM_Azure_Terraform_Configuration/ 目录,转到 main.tf 文件,并更新 backend "azurerm" 字段下的以下细节。

      字段

      说明

      resource_group_name

      指定 Azure 资源组名称。例如 idvault-rg。

      storage_account_name

      指定 Azure 储存帐户名称。例如 stract89671501132193。

      container_name

      指示 Azure 容器名称。此字段是自动生成的。

      key

      指示 Azure 密钥名称。此字段是自动生成的。

  6. 查看 terraform.tfvars 和 main.tf 文件中已修改的细节,然后将已更新的 IDM_4.10.0_Azure_Terraform_Configuration.zip 文件上载到 Azure Cloud Shell。

  7. 运行以下命令,以下载基础结构部署所需的所有必要插件。

    terraform init
  8. 运行以下命令以根据输入规划和了解部署。

    terraform plan
  9. 运行以下命令以创建输入中定义的基础结构。

    terraform apply --auto-approve
  10. (可选)运行以下命令以识别 Azure 帐户特定的信息,例如储存帐户名称、密钥保管库名称和数据库管理员细节。

    terraform output
  11. 运行以下命令,以在密钥保管库中创建机密值。

    az keyvault secret set --name idm-common-password --vault-name <key vault name> --value "novell@123"

    注:您可以根据自己的要求使用 Values.yaml 文件指定多个机密值。

  12. 导航到在其中生成了 TLS 证书的目录,运行以下命令以将证书和密钥导出为 .pfx 格式。

    openssl pkcs12 -export -out tls.pfx -inkey tls.key -in tls.crt -passout pass:''

    注:tls.pfx 文件将在密钥保管库中用于验证机密值和密钥。

  13. 在 Azure Cloud Shell 中上载 tls.pfx 文件,并运行以下命令以将该文件导入密钥保管库。

    az keyvault certificate import --vault-name <key vault name> -n "ingress-tls-cert" -f tls.pfx

    例如:

    az keyvault certificate import --vault-name idmkv20220712 -n "ingress-tls-cert" -f tls.pfx

  14. 导航到 Identity_Manager_4.10.0_Containers/helm_charts/ 目录并更新 value.yaml 文件中的以下字段。

    表 28-2

    部分

    字段

    说明

    OpenText Identity Manager Advanced Edition

    IS_ADVANCED_EDITION

    指定您是否要部署 OpenText Identity Manager Advanced Edition。(true/false)

    Azure PostgreSQL 服务器实例

    AZURE_POSTGRESQL_REQUIRED

    指定您是否要使用 Azure PostgreSQL 服务器实例作为 Identity Applications 和 Identity Reporting 的数据库服务器。(y/n)

    OpenText Identity Manager Docker 映像的注册表身份凭证

    注册表

    指定 Azure 容器注册表服务器名称。

    name

    指定包含注册表登录身份凭证的 Kubernetes 机密的名称。

    数据持久化

    Identity Engine 的持久储存

    volumeClaimTemplate:

    • storageClassName

    • storageSize

    指定 Identity Engine 使用的卷声明模板的储存类名和储存大小。

    共享持久储存

    • existingClaim

    dynamicClaim:

    • storageClassName

    • storageSize

    如果您想要使用现有的持久卷声明 (PVC),请输入现有声明的名称。

    否则,请指定储存类名和储存大小进行 PVC 动态供应。

    口令、密钥和证书等敏感数据的机密管理器

    azureKeyVaultName:

    指定 Azure 密钥保管库的名称。

    azureKeyVaultTenantId

    指定 Azure 密钥保管库租户 ID。请参考步骤 10 的 terraform 输出。

    azureUserAssignedIdentityID

    指定 Azure 密钥保管库机密提供程序使用的用户定义受管身份的客户端 ID。可以运行以下 az cli 命令来检索身份的客户端 ID:

    az aks show -g <资源组> -n <AKS 群集名称> --query addonProfiles.azureKeyvaultSecretsProvider.identity.clientId -o tsv

    入口配置

    host

    指定用于访问 OpenText Identity Manager Web 应用程序的域名。

    azureKeyVaultCertificateName

    指定包含 TLS 证书和私用密钥的 Azure 密钥保管库证书的名称。

    Identity Engine 配置

    部署

    指定您是否要部署 Identity Engine。(true/false)

    replicaCount

    指定 Identity Engine 复本 Pod 的数量。例如:“2”。

    ID_VAULT_TREENAME

    指定身份库树名称。

    ID_VAULT_SERVER_CONTEXT

    指定身份库服务器环境。

    ID_VAULT_DRIVER_SET

    指定身份库默认驱动程序集名称。

    ID_VAULT_DEPLOY_CTX

    指定身份库默认驱动程序集部署环境。

    ID_VAULT_ADMIN_LDAP

    指定身份库管理员 DN。

    ID_VAULT_PASSWORD:

    secret

    指定包含身份库管理员口令的 Azure 密钥保管库机密。

    ID_VAULT_RSA_KEYSIZE

    指定用于创建 RSA 证书颁发机构密钥和服务器密钥的密钥大小。

    ID_VAULT_EC_CURVE

    指定用于创建 EC 证书颁发机构密钥和服务器密钥的椭圆曲线算法。

    ID_VAULT_CA_LIFE

    指定用于创建默认服务器证书的证书寿命。

    资源请求和限制

    • cpu

    • 内存

    指定 Identity Engine 的资源请求和限制的 CPU 和内存值。有关更多细节,请参见 Resource Management for Pods and Containers(Pod 和容器的资源管理)

    One SSO Provider (OSP) 配置

    部署

    指定您是否要部署 OSP。(true/false)

    replicaCount

    指定 Identity Engine 复本 Pod 的数量。例如:“2”。

    OSP_CUSTOM_NAME

    指定 OSP 自定义登录屏幕名称。

    SSO_SERVICE_PWD:

    secret

    指定包含 OSP 客户端口令的 Azure 密钥保管库机密。

    资源请求和限制

    • cpu

    • 内存

    指定 OSP 的资源请求和限制的 CPU 和内存值。有关更多细节,请参见 Resource Management for Pods and Containers(Pod 和容器的资源管理)

    Identity Applications 配置

    部署

    指定您是否要部署 Identity Applications。(true/false)

    replicaCount

    指定 Identity Engine 复本 Pod 的数量。例如:“2”。

    UA_ADMIN

    指定 Identity Applications 管理员 DN

    UA_ADMIN_PWD:

    secret

    指定包含 Identity Applications 管理员口令的 Azure 密钥保管库机密。

    UA_WFE_DB_PLATFORM_OPTION

    指定 Identity Applications 和工作流程引擎数据库平台。支持的值为:postgres、oracle 和 mssql

    UA_ORACLE_DATABASE_TYPE

    如果数据库平台为 Oracle,

    请指定数据库的配置。(sid/服务)

    UA_WFE_DB_HOST

    指定 Identity Applications 和工作流程引擎数据库服务器主机。

    UA_WFE_DB_PORT

    指定 Identity Applications 和工作流程引擎数据库服务器端口号。

    UA_DATABASE_NAME

    指定 Identity Applications 数据库名称。

    WFE_DATABASE_NAME

    指定工作流程引擎数据库名称。

    UA_WFE_DATABASE_USER

    指定 Identity Applications 数据库用户名。

    UA_WFE_DATABASE_PWD:

    secret

    指定包含 Identity Applications 数据库用户口令的 Azure 密钥保管库机密。

    资源请求和限制

    • cpu

    • 内存

    指定 Identity Application 的资源请求和限制的 CPU 和内存值。有关更多细节,请参见 Resource Management for Pods and Containers(Pod 和容器的资源管理)

    表单渲染器配置

    部署

    指定您是否要部署表单渲染器。(true/false)

    资源请求和限制

    • cpu

    • 内存

    指定表单渲染器的资源请求和限制的 CPU 和内存值。有关更多细节,请参见 Resource Management for Pods and Containers(Pod 和容器的资源管理)

    ActiveMQ 配置

    部署

    指定您是否要部署 ActiveMQ。(true/false)

    资源请求和限制

    • cpu

    • 内存

    指定表单渲染器的资源请求和限制的 CPU 和内存值。有关更多细节,请参见 Resource Management for Pods and Containers(Pod 和容器的资源管理)

    Identity Reporting 配置

    部署

    指定您是否要部署 Identity Reporting。(true/false)

    RPT_ADMIN

    指定 Identity Reporting 管理员 DN

    RPT_ADMIN_PWD:

    secret

    指定包含 Identity Reporting 管理员口令的 Azure 密钥保管库机密。

    RPT_DATABASE_PLATFORM_OPTION

    指定 Identity Reporting 数据库平台。支持的值为:postgres、oracle 和 mssql

    RPT_ORACLE_DATABASE_TYPE

    如果数据库平台为 Oracle,

    请指定数据库的配置。(sid/服务)

    RPT_DATABASE_HOST

    指定 Identity Reporting 数据库主机。

    RPT_DATABASE_PORT

    指定 Identity Reporting 数据库端口号。

    RPT_DATABASE_NAME

    指定 Identity Reporting 数据库名称。

    RPT_DATABASE_USER

    指定 Identity Reporting 数据库用户。

    RPT_DATABASE_SHARE_PASSWORD:

    secret

    指定包含 Identity Reporting 数据库帐户口令的 Azure 密钥保管库机密

    资源请求和限制

    • cpu

    • 内存

    指定表单渲染器的资源请求和限制的 CPU 和内存值。有关更多细节,请参见 Resource Management for Pods and Containers(Pod 和容器的资源管理)

    Self Service Password Reset (SSPR) 配置

    部署

    指定您是否要部署 SSPR。(true/false)

    CONFIGURATION_PWD:

    secret:

    指定要为管理员创建的、用于配置 SSPR 的口令。

    资源请求和限制

    • cpu

    • 内存

    指定 SSPR 的资源请求和限制的 CPU 和内存值。有关更多细节,请参见 Resource Management for Pods and Containers(Pod 和容器的资源管理)

    OpenText Identity Console 配置

    部署

    指定您是否要部署 OpenText Identity Console。(true/false)

    ID_CONSOLE_USE_OSP

    不支持使用 One SSO Provider (OSP) 作为 OpenText Identity Console 的登录方法,因此默认值应为“n”。

    资源请求和限制

    • cpu

    • 内存

    指定 OpenText Identity Console 的资源请求和限制的 CPU 和内存值。有关更多细节,请参见 Resource Management for Pods and Containers(Pod 和容器的资源管理)

    高级配置

    DATA_CONTAINERS:

    DATA_CONTAINERS_LDIF

    ROOT_CONTAINER

    GROUP_ROOT_CONTAINER

    USER_CONTAINER

    ADMIN_CONTAINER

    指定用于创建数据容器的 LDIF 配置。

    指定根容器、组根容器、用户容器和管理员容器的 DN

    Kubernetes 群集域:

    KUBE_SUB_DOMAIN

    指定 Kubernetes 群集域

    OpenText Identity Manager Web 应用程序的 TLS 配置

    kubernetesSecret

    将值指定为 false。

    azurekeyVault

    将值指定为 true。

    入口 TLS 证书将作为 kubernetes 机密进行管理。

    敏感数据的机密管理器

    kubernetesSecret

    将值指定为 false。

    azurekeyVault

    将值指定为 true。

    Azure 密钥保管库用作机密管理器。

    AWS Secret Manager 用作机密管理器

    awsSecretManager

    将值指定为 false。

更新 terraform.tfvars 和 values.yaml 文件后,按照Azure Kubernetes 服务上的 OpenText Identity Manager 容器部署中所述的步骤完成 Azure 上的 OpenText Identity Manager 容器部署。