共用方式為


使用 Azure Active Directory 在 Azure 中管理 HPC Pack 叢集

Microsoft HPC Pack 2016(及更新版本)支援與在 Azure 中部署 HPC Pack 叢集的系統管理員 Azure Active Directory (Azure AD) 整合。

請依照本文中的步驟執行下列高階工作:

  • 手動整合 HPC Pack 叢集與 Azure AD 租使用者
  • 在 Azure 中管理及排程 HPC Pack 叢集中的作業

將 HPC Pack 叢集解決方案與 Azure AD 整合會遵循標準步驟來整合其他應用程式和服務。 本文假設您已熟悉 Azure AD 中的基本使用者管理。 如需詳細資訊和背景。

整合的優點

Azure Active Directory (Azure AD) 是多租使用者雲端式目錄和身分識別管理服務,可提供雲端解決方案的單一登錄 (SSO) 存取權。

HPC Pack 叢集與 Azure AD 整合可協助您達成下列目標:

  • 從 HPC Pack 叢集移除傳統的 Active Directory 域控制器。 這可協助降低為企業不需要維護叢集的成本,並加快部署程式的速度。
  • 利用 Azure AD 帶來的下列優點:
    • 單一登入

    • 在 Azure 中使用 HPC Pack 叢集的本機 AD 身分識別

      Azure Active Directory 環境

必要條件

  • 部署在 Azure 虛擬機中的 HPC Pack 2016 叢集 - 如需步驟,請參閱 在 Azure中部署 HPC Pack 2016 叢集。 您需要前端節點的 DNS 名稱和叢集系統管理員的認證,才能完成本文中的步驟。

    注意事項

    HPC Pack 2016 之前,HPC Pack 版本不支援 Azure Active Directory 整合。

  • 用戶端電腦 - 您需要 Windows 或 Windows Server 用戶端電腦來執行 HPC Pack 用戶端公用程式。 如果您只想要使用 HPC Pack 入口網站或 REST API 來提交作業,您可以使用您選擇的任何用戶端電腦。

  • HPC Pack 用戶端公用程式 - 使用Microsoft下載中心所提供的免費安裝套件,在用戶端電腦上安裝 HPC Pack 用戶端公用程式。

步驟 1:向 Azure AD 租用戶註冊 HPC 叢集伺服器

  1. 登入 Azure 入口網站

  2. 如果您的帳戶可讓您存取多個 Azure AD 租使用者,請按下右上角的帳戶。 然後將入口網站會話設定為所需的租使用者。 您必須具有存取目錄中資源的許可權。

  3. 按兩下左側 [服務] 瀏覽窗格中的 [Azure Active Directory],按兩下 [使用者和群組],並確定已建立或設定用戶帳戶。

  4. Azure Active Directory中,按兩下 [應用程式註冊],>[新增應用程式註冊]。 輸入下列資訊:

    • 名稱 - HPCPackClusterServer
    • 應用程式類型 - 選取 [Web 應用程式/ API
    • 登入 URL- 範例的基底 URL,預設為 https://hpcserver
    • 按一下 [建立]。
  5. 新增應用程式之後,請在 [應用程式註冊] 列表中選取它。 然後按下 [設定]>[屬性]。 輸入下列資訊:

    • 針對 多租使用者選取 [是]
    • 應用程式識別碼 URI 變更為 https://<Directory_name>/<application_name>。 以 Azure AD 租使用者的完整名稱取代 <Directory_name>,例如 hpclocal.onmicrosoft.com,並以您先前選擇的名稱取代 <application_name>,例如 HPCPackClusterServer
  6. 按一下 [檔案] 。 儲存完成時,在應用程式頁面上,按下 [指令清單]。 尋找 [appRoles] 設定並新增下列應用程式角色,然後按兩下 [儲存] 來編輯指令清單:

    "appRoles": [
        {
        "allowedMemberTypes": [
            "User",
            "Application"
        ],
        "displayName": "HpcAdminMirror",
        "id": "61e10148-16a8-432a-b86d-ef620c3e48ef",
        "isEnabled": true,
        "description": "HpcAdminMirror",
        "value": "HpcAdminMirror"
        },
        {
        "allowedMemberTypes": [
            "User",
            "Application"
        ],
        "description": "HpcUsers",
        "displayName": "HpcUsers",
        "id": "91e10148-16a8-432a-b86d-ef620c3e48ef",
        "isEnabled": true,
        "value": "HpcUsers"
        }
    ],
    
  7. Azure Active Directory中,按兩下 [企業應用程式]>[所有應用程式]。 從清單中選取 [HPCPackClusterServer]。

  8. 點選 「屬性],並將 [需要 使用者指派變更為 [是]。 按一下 [檔案] 。

  9. 按兩下 [[使用者和群組]>[新增使用者]。 選取使用者並選取角色,然後按下 [指派。 將其中一個可用的角色 (HpcUsers 或 HpcAdminMirror) 指派給使用者。 對目錄中的其他用戶重複此步驟。 如需叢集使用者的背景資訊,請參閱 管理叢集使用者

步驟 2:向 Azure AD 租用戶註冊 HPC 叢集用戶端

  1. 登入 Azure 入口網站

  2. 如果您的帳戶可讓您存取多個 Azure AD 租使用者,請按下右上角的帳戶。 然後將入口網站會話設定為所需的租使用者。 您必須具有存取目錄中資源的許可權。

  3. Azure Active Directory中,按兩下 [應用程式註冊],>[新增應用程式註冊]。 輸入下列資訊:

    • 名稱 - HPCPackClusterClient
    • 應用程式類型 - 選取 [原生
    • 重新導向 URI - https://hpcclient
    • 按兩下 [建立 建立
  4. 新增應用程式之後,請在 [應用程式註冊] 列表中選取它。 複製 應用程式識別碼 值並加以儲存。 您稍後在設定應用程式時需要此程式。

  5. 按兩下 [設定]>[必要許可權]>[新增]>[選取 API]。 搜尋並選取 HpcPackClusterServer 應用程式(在步驟 1 中建立)。

  6. 在 [啟用存取] 頁面中,選取 Access HpcClusterServer。 然後按下 [完成]

步驟 3:設定 HPC 叢集

  1. 連線到 Azure 中的 HPC Pack 2016 前端節點。

  2. 啟動 HPC PowerShell。

  3. 執行以下命令:

    
    Set-HpcClusterRegistry -SupportAAD true -AADInstance https://login.microsoftonline.com/ -AADAppName HpcPackClusterServer -AADTenant <your AAD tenant name> -AADClientAppId <client ID> -AADClientAppRedirectUri https://hpcclient
    

    where

    • AADTenant 指定 Azure AD 租用戶名稱,例如 hpclocal.onmicrosoft.com
    • AADClientAppId 指定在步驟 2 中建立之應用程式的應用程式識別碼。
  4. 視前端節點組態而定,執行下列其中一項:

    • 在單一前端節點 HPC Pack 叢集中,重新啟動 HpcScheduler 服務。

    • 在具有多個前端節點的 HPC Pack 叢集中,於前端節點上執行下列 PowerShell 命令,以重新啟動 HpcSchedulerStateful 服務:

    Connect-ServiceFabricCluster
    
    Move-ServiceFabricPrimaryReplica –ServiceName "fabric:/HpcApplication/SchedulerStatefulService"
    
    

步驟 4:從用戶端管理和提交作業

若要在計算機上安裝 HPC Pack 用戶端公用程式,請從 Microsoft 下載中心下載 HPC Pack 2016 安裝程式檔案(完整安裝)。 當您開始安裝時,請選擇 HPC Pack 用戶端公用程式的安裝程式選項。

若要準備用戶端計算機,請在用戶端電腦上安裝 HPC 叢集安裝期間所使用的憑證。 使用標準 Windows 憑證管理程式,將公用憑證安裝至 憑證 – 目前使用者>受信任的跟證書授權單位 存放區。

提示

在用戶端設定期間,如果您的憑證 CN 不符合排程器 URL,您可能需要選擇 CN 驗證。 您也可以選擇 [略過 CA 和 CN 檢查],讓您不需要在用戶端電腦上匯入憑證。

略過 CA 和 CN 檢查

您現在可以執行 HPC Pack 命令,或使用 HPC Pack 作業管理員 GUI,使用 Azure AD 帳戶來提交和管理叢集作業。 如需作業提交選項,請參閱 將 HPC 作業提交至 Azure中的 HPC Pack 叢集。

注意事項

當您第一次嘗試連線到 Azure 中的 HPC Pack 叢集時,會出現彈出視窗。 輸入您的 Azure AD 認證以登入。 接著會快取令牌。 Azure 中叢集的後續連線將會使用快取的令牌,除非已清除驗證變更或快取。

例如,完成上述步驟之後,您可以從內部部署客戶端查詢作業,如下所示:

Get-HpcJob –State All –Scheduler https://<Azure load balancer DNS name> -Owner <Azure AD account>

使用 Azure AD 整合提交作業的實用 Cmdlet

管理本機令牌快取

HPC Pack 2016 提供下列 HPC PowerShell Cmdlet 來管理本機令牌快取。 這些 Cmdlet 對於以非互動方式提交作業很有用。 請參閱下列範例:

Remove-HpcTokenCache

$SecurePassword = "<password>" | ConvertTo-SecureString -AsPlainText -Force

Set-HpcTokenCache -UserName <AADUsername> -Password $SecurePassword -scheduler https://<Azure load balancer DNS name>

使用 Azure AD 帳戶設定提交作業的認證

有時候,您可能想要在 HPC 叢集使用者下執行作業(針對已加入網域的 HPC 叢集,以一個網域使用者身分執行;若為未加入網域的 HPC 叢集,請以所有前端節點上定義的本機使用者身分執行)。

  1. 使用下列命令來設定認證:

    $localUser = "<username>"
    
    $localUserPassword="<password>"
    
    $secpasswd = ConvertTo-SecureString $localUserPassword -AsPlainText -Force
    
    $mycreds = New-Object System.Management.Automation.PSCredential ($localUser, $secpasswd)
    
    Set-HpcJobCredential -Credential $mycreds -Scheduler https://<Azure load balancer DNS name>
    
  2. 然後提交作業,如下所示。 作業/工作會在計算節點上的$localUser下執行。

    $emptycreds = New-Object System.Management.Automation.PSCredential ($localUser, (new-object System.Security.SecureString))
    ...
    $job = New-HpcJob –Scheduler https://<Azure load balancer DNS name>
    
    Add-HpcTask -Job $job -CommandLine "ping localhost" -Scheduler https://<Azure load balancer DNS name>
    
    Submit-HpcJob -Job $job -Scheduler https://<Azure load balancer DNS name> -Credential $emptycreds
    

    如果未使用 Submit-HpcJob指定 –Credential,則作業或工作會以 Azure AD 帳戶的形式在本機對應使用者下執行。 (HPC 叢集會建立與 Azure AD 帳戶相同的本機用戶來執行工作。

  3. 從 HPC Pack 2016 Update 2 開始,您不需要為認證設定擴充數據,因為系統會自動產生相互信任密鑰,讓使用者執行跨節點 MPI 作業。 但是,如果您仍在使用舊版,您可以設定 Azure AD 帳戶的擴充數據,如下所示:

    • 設定 Azure AD 帳戶本身的擴充數據

      Set-HpcJobCredential -Scheduler https://<Azure load balancer DNS name> -ExtendedData <data> -AadUser
      
    • 設定擴充數據,並以 HPC 叢集使用者身分執行

      Set-HpcJobCredential -Credential $mycreds -Scheduler https://<Azure load balancer DNS name> -ExtendedData <data>