使用 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 虛擬機中的 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 叢集伺服器
登入 Azure 入口網站。
如果您的帳戶可讓您存取多個 Azure AD 租使用者,請按下右上角的帳戶。 然後將入口網站會話設定為所需的租使用者。 您必須具有存取目錄中資源的許可權。
按兩下左側 [服務] 瀏覽窗格中的 [Azure Active Directory],按兩下 [使用者和群組],並確定已建立或設定用戶帳戶。
在 Azure Active Directory中,按兩下 [應用程式註冊],>[新增應用程式註冊]。 輸入下列資訊:
- 名稱 - HPCPackClusterServer
- 應用程式類型 - 選取 [Web 應用程式/ API
-
登入 URL- 範例的基底 URL,預設為
https://hpcserver
- 按一下 [建立]。
新增應用程式之後,請在 [應用程式註冊] 列表中選取它。 然後按下 [設定]>[屬性]。 輸入下列資訊:
- 針對
多租使用者 選取 [是]。 - 將 應用程式識別碼 URI 變更為
https://<Directory_name>/<application_name>
。 以 Azure AD 租使用者的完整名稱取代<Directory_name
>,例如hpclocal.onmicrosoft.com
,並以您先前選擇的名稱取代<application_name>
,例如HPCPackClusterServer
。
- 針對
按一下 [檔案] 。 儲存完成時,在應用程式頁面上,按下 [指令清單]
。 尋找 [ 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" } ],
在 Azure Active Directory中,按兩下 [企業應用程式]>[所有應用程式]。 從清單中選取 [HPCPackClusterServer]。
點選 「屬性]
,並將 [需要 使用者指派變更為 [是] 。 按一下 [檔案] 。 按兩下 [[使用者和群組]>[新增使用者]。 選取使用者並選取角色,然後按下 [指派。 將其中一個可用的角色 (HpcUsers 或 HpcAdminMirror) 指派給使用者。 對目錄中的其他用戶重複此步驟。 如需叢集使用者的背景資訊,請參閱 管理叢集使用者。
步驟 2:向 Azure AD 租用戶註冊 HPC 叢集用戶端
登入 Azure 入口網站。
如果您的帳戶可讓您存取多個 Azure AD 租使用者,請按下右上角的帳戶。 然後將入口網站會話設定為所需的租使用者。 您必須具有存取目錄中資源的許可權。
在 Azure Active Directory中,按兩下 [應用程式註冊],>[新增應用程式註冊]。 輸入下列資訊:
- 名稱 - HPCPackClusterClient
- 應用程式類型 - 選取 [原生
-
重新導向 URI -
https://hpcclient
- 按兩下 [建立 建立
新增應用程式之後,請在 [應用程式註冊] 列表中選取它。 複製 應用程式識別碼 值並加以儲存。 您稍後在設定應用程式時需要此程式。
按兩下 [設定]>[必要許可權]>[新增]>[選取 API]。 搜尋並選取 HpcPackClusterServer 應用程式(在步驟 1 中建立)。
在 [啟用存取] 頁面中,選取 Access HpcClusterServer。 然後按下 [完成]
。
步驟 3:設定 HPC 叢集
連線到 Azure 中的 HPC Pack 2016 前端節點。
啟動 HPC PowerShell。
執行以下命令:
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 中建立之應用程式的應用程式識別碼。
-
視前端節點組態而定,執行下列其中一項:
在單一前端節點 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 檢查],讓您不需要在用戶端電腦上匯入憑證。
您現在可以執行 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 叢集,請以所有前端節點上定義的本機使用者身分執行)。
使用下列命令來設定認證:
$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>
然後提交作業,如下所示。 作業/工作會在計算節點上的$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 帳戶相同的本機用戶來執行工作。從 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>