Gestire un cluster HPC Pack in Azure usando Azure Active Directory
Microsoft HPC Pack 2016 (e versione successiva) supporta l'integrazione con Azure Active Directory (Azure AD) per gli amministratori che distribuiscono un cluster HPC Pack in Azure.
Seguire i passaggi descritti in questo articolo per le attività generali seguenti:
- Integrare manualmente il cluster HPC Pack con il tenant di Azure AD
- Gestire e pianificare i processi nel cluster HPC Pack in Azure
L'integrazione di una soluzione cluster HPC Pack con Azure AD segue i passaggi standard per integrare altre applicazioni e servizi. Questo articolo presuppone che si abbia familiarità con la gestione degli utenti di base in Azure AD. Per altre informazioni e informazioni di base.
Vantaggi dell'integrazione
Azure Active Directory (Azure AD) è un servizio di gestione delle identità e della directory basato sul cloud multi-tenant che fornisce l'accesso Single Sign-On (SSO) alle soluzioni cloud.
L'integrazione di un cluster HPC Pack con Azure AD consente di raggiungere gli obiettivi seguenti:
- Rimuovere il controller di dominio Active Directory tradizionale dal cluster HPC Pack. Ciò consente di ridurre i costi di gestione del cluster se non è necessario per l'azienda e accelerare il processo di distribuzione.
- Sfruttare i vantaggi seguenti offerti da Azure AD:
Single Sign-On
Uso di un'identità AD locale per il cluster HPC Pack in Azure
dell'ambiente Azure Active Directory
Prerequisiti
cluster HPC Pack 2016 distribuito in macchine virtuali di Azure: per i passaggi, vedere Distribuire un cluster HPC Pack 2016 in Azure. Per completare i passaggi descritti in questo articolo, sono necessari il nome DNS del nodo head e le credenziali di un amministratore del cluster.
Nota
L'integrazione di Azure Active Directory non è supportata nelle versioni di HPC Pack precedenti a HPC Pack 2016.
computer client: è necessario un computer client Windows o Windows Server per eseguire utilità client HPC Pack. Se si vuole usare solo il portale Web HPC Pack o l'API REST per inviare processi, è possibile usare qualsiasi computer client preferito.
utilità client HPC Pack : installare le utilità client HPC Pack nel computer client, usando il pacchetto di installazione gratuito disponibile nell'Area download Microsoft.
Passaggio 1: Registrare il server del cluster HPC con il tenant di Azure AD
Accedere al portale di Azure.
Se l'account consente di accedere a più tenant di Azure AD, fare clic sull'account nell'angolo in alto a destra. Impostare quindi la sessione del portale sul tenant desiderato. È necessario disporre dell'autorizzazione per accedere alle risorse nella directory.
Fare clic su azure Active Directory nel riquadro di spostamento Dei servizi a sinistra, fare clic su Utenti e gruppie verificare che siano già stati creati o configurati account utente.
In Azure Active Directoryfare clic su Registrazioni app >Registrazione nuova applicazione. Immettere le informazioni seguenti:
- Nome - HPCPackClusterServer
- Tipo di applicazione - Selezionare 'app Web/ API
-
URL di accesso: URL di base per l'esempio, che è per impostazione predefinita
https://hpcserver
- Fai clic su Crea.
Dopo aver aggiunto l'app, selezionarla nell'elenco Registrazioni app. Fare quindi clic su Impostazioni>Proprietà. Immettere le informazioni seguenti:
- Selezionare Sì per multi-tenant.
- Modificare URI ID app in
https://<Directory_name>/<application_name>
. Sostituire<Directory_name
> con il nome completo del tenant di Azure AD, ad esempiohpclocal.onmicrosoft.com
e sostituire<application_name>
con il nome scelto in precedenza, ad esempioHPCPackClusterServer
.
Fare clic su Salva. Al termine del salvataggio, nella pagina dell'app fare clic su Manifesto. Modificare il manifesto individuando l'impostazione
appRoles
e aggiungendo il ruolo applicazione seguente, quindi fare clic su Salva:"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" } ],
In Azure Active Directoryfare clic su Applicazioni aziendali>Tutte le applicazioni. Selezionare HPCPackClusterServer dall'elenco.
Fare clic su Proprietà e modificare 'assegnazione utente richiesta in Sì. Fare clic su Salva.
Fare clic su Utenti e gruppi>Aggiungi utente. Selezionare un utente e selezionare un ruolo e quindi fare clic su Assegna. Assegnare uno dei ruoli disponibili (HpcUsers o HpcAdminMirror) all'utente. Ripetere questo passaggio con altri utenti nella directory. Per informazioni generali sugli utenti del cluster, vedere Gestione degli utenti del cluster.
Passaggio 2: Registrare il client del cluster HPC con il tenant di Azure AD
Accedere al portale di Azure.
Se l'account consente di accedere a più tenant di Azure AD, fare clic sull'account nell'angolo in alto a destra. Impostare quindi la sessione del portale sul tenant desiderato. È necessario disporre dell'autorizzazione per accedere alle risorse nella directory.
In Azure Active Directoryfare clic su Registrazioni app >Registrazione nuova applicazione. Immettere le informazioni seguenti:
- Nome - HPCPackClusterClient
- Tipo di applicazione - Selezionare nativo
-
-
https://hpcclient
URI di reindirizzamento - Fare clic su Crea
Dopo aver aggiunto l'app, selezionarla nell'elenco Registrazioni app. Copiare il valore ID applicazione
e salvarlo. Questa operazione è necessaria in un secondo momento durante la configurazione dell'applicazione. Fare clic su Impostazioni>Autorizzazioni necessarie>Aggiungi>Selezionare un'API. Cercare e selezionare l'applicazione HpcPackClusterServer (creata nel passaggio 1).
Nella pagina Abilita accesso selezionare Access HpcClusterServer. Fare quindi clic su Fine.
Passaggio 3: Configurare il cluster HPC
Connettersi al nodo head di HPC Pack 2016 in Azure.
Avviare HPC PowerShell.
Esegui questo comando:
Set-HpcClusterRegistry -SupportAAD true -AADInstance https://login.microsoftonline.com/ -AADAppName HpcPackClusterServer -AADTenant <your AAD tenant name> -AADClientAppId <client ID> -AADClientAppRedirectUri https://hpcclient
where
-
AADTenant
specifica il nome del tenant di Azure AD, ad esempiohpclocal.onmicrosoft.com
-
AADClientAppId
specifica l'ID applicazione per l'app creata nel passaggio 2.
-
Eseguire una delle operazioni seguenti, a seconda della configurazione del nodo head:
In un singolo cluster HPC Pack a nodo head riavviare il servizio HpcScheduler.
In un cluster HPC Pack con più nodi head eseguire i comandi di PowerShell seguenti nel nodo head per riavviare il servizio HpcSchedulerStateful
:
Connect-ServiceFabricCluster Move-ServiceFabricPrimaryReplica –ServiceName "fabric:/HpcApplication/SchedulerStatefulService"
Passaggio 4: Gestire e inviare processi dal client
Per installare le utilità client HPC Pack nel computer, scaricare i file di installazione di HPC Pack 2016 (installazione completa) dall'Area download Microsoft. Quando si inizia l'installazione, scegliere l'opzione di installazione per le utilità client hpC Pack .
Per preparare il computer client, installare il certificato usato durante configurazione del cluster HPC nel computer client. Utilizzare le procedure standard di gestione dei certificati di Windows per installare il certificato pubblico nell'archivio Certificati : utente corrente>autorità di certificazione radice attendibili archivio.
Consiglio
Durante la configurazione del client, potrebbe essere necessario scegliere la convalida CN se il nome comune del certificato non corrisponde all'URL dell'utilità di pianificazione". È anche possibile scegliere "ignorare il controllo ca e CN" in modo che non sia necessario importare il certificato nel computer client.
È ora possibile eseguire i comandi HPC Pack o usare l'interfaccia utente grafica del gestore processi HPC Pack per inviare e gestire i processi del cluster usando l'account Azure AD. Per le opzioni di invio di processi, vedere Inviare processi HPC a un cluster HPC Pack in Azure.
Nota
Quando si tenta di connettersi al cluster HPC Pack in Azure per la prima volta, viene visualizzata una finestra popup. Immettere le credenziali di Azure AD per accedere. Il token viene quindi memorizzato nella cache. Le connessioni successive al cluster in Azure useranno il token memorizzato nella cache, a meno che l'autenticazione non venga modificata o la cache non venga cancellata.
Ad esempio, dopo aver completato i passaggi precedenti, è possibile eseguire una query per i processi da un client locale come indicato di seguito:
Get-HpcJob –State All –Scheduler https://<Azure load balancer DNS name> -Owner <Azure AD account>
Cmdlet utili per l'invio di processi con l'integrazione di Azure AD
Gestire la cache dei token locale
HPC Pack 2016 fornisce i cmdlet di PowerShell HPC seguenti per gestire la cache dei token locale. Questi cmdlet sono utili per l'invio di processi in modo non interattivo. Vedere l'esempio seguente:
Remove-HpcTokenCache
$SecurePassword = "<password>" | ConvertTo-SecureString -AsPlainText -Force
Set-HpcTokenCache -UserName <AADUsername> -Password $SecurePassword -scheduler https://<Azure load balancer DNS name>
Impostare le credenziali per l'invio di processi usando l'account Azure AD
In alcuni casi, è possibile eseguire il processo con l'utente del cluster HPC (per un cluster HPC aggiunto a un dominio, eseguire come utente di dominio; per un cluster HPC non aggiunto a un dominio, eseguire come utente locale definito in tutti i nodi head).
Usare i comandi seguenti per impostare le credenziali:
$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>
Inviare quindi il processo come indicato di seguito. Il processo/attività viene eseguito in $localUser nei nodi di calcolo.
$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
Se
–Credential
non viene specificato conSubmit-HpcJob
, il processo o l'attività viene eseguito con un utente mappato locale come account Azure AD. Il cluster HPC crea un utente locale con lo stesso nome dell'account Azure AD per eseguire l'attività.A partire da HPC Pack 2016 Update 2, non è necessario impostare i dati estesi per le credenziali perché la chiave di attendibilità reciproca verrà generata automaticamente per consentire all'utente di eseguire il processo MPI tra nodi. Tuttavia, se si usa ancora una versione precedente, è possibile impostare i dati estesi per l'account Azure AD come indicato di seguito:
Impostare i dati estesi per l'account Azure AD stesso
Set-HpcJobCredential -Scheduler https://<Azure load balancer DNS name> -ExtendedData <data> -AadUser
Impostare i dati estesi ed eseguirli come utente del cluster HPC
Set-HpcJobCredential -Credential $mycreds -Scheduler https://<Azure load balancer DNS name> -ExtendedData <data>