28.1 Azure 雲端的基礎架構部署

Azure 雲端的基礎架構部署是使用 terraform 組態定義的。可採用兩種不同的方法在 Azure 上部署基礎架構。您可以根據自己的要求,選擇使用 Configuration Generator 或組態樣板來部署基礎架構。

28.1.1 使用 Configuration Generator 進行部署

執行以下步驟,以使用 OpenText Identity Manager Configuration Generator 產生組態檔案。

重要:必須有一部已安裝並執行 Docker 的機器才能執行以下步驟。

  1. 建立共用磁碟區。如需詳細資訊,請參閱管理容器磁碟區資料。

  2. 將您網域的證書複製到共用磁碟區。

  3. 執行以下指令載入 Docker 影像:

    docker load --input docker-images/IDM_4100_idm_conf_generator.tar.gz
  4. 導覽至解壓縮位置,並執行以下指令來部署 Configuration Generator 容器:

    docker run --rm -it --name=idm_conf_generator -v /data:/config idm_conf_generator:idm-4.10.0-533
  5. 下表提供了關於新提示的資訊:

    附註:如需所有現有提示的資訊,請參閱瞭解組態參數一節。

    提示

    描述

    是否要在 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 Configuration Generator 將執行以下動作:

    • 如果 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 Service 上的 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

    指定 Identity Vault 樹狀結構名稱。

    ID_VAULT_SERVER_CONTEXT

    指定 Identity Vault 伺服器網路位置。

    ID_VAULT_DRIVER_SET

    指定 Identity Vault 預設驅動程式集名稱。

    ID_VAULT_DEPLOY_CTX

    指定 Identity Vault 預設驅動程式集部署網路位置。

    ID_VAULT_ADMIN_LDAP

    指定 Identity Vault 管理員 DN。

    ID_VAULT_PASSWORD:

    secret

    指定包含 Identity Vault 管理員密碼的 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/service)

    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 Service 上的 OpenText Identity Manager 容器部署中所述的步驟完成 Azure 上的 OpenText Identity Manager 容器部署。