Gestire un cluster HPC Pack in Azure con Azure Active DirectoryManage an HPC Pack cluster in Azure using Azure Active Directory

Microsoft HPC Pack 2016 supporta l'integrazione con Azure Active Directory (Azure AD) per gli amministratori che distribuiscono un cluster HPC Pack in Azure.Microsoft HPC Pack 2016 supports integration with Azure Active Directory (Azure AD) for administrators who deploy an HPC Pack cluster in Azure.

Seguire i passaggi descritti in questo articolo per le attività di alto livello seguenti:Follow the steps in this article for the following high level tasks:

  • Integrare manualmente il cluster HPC Pack con il proprio tenant di Azure ADManually integrate your HPC Pack cluster with your Azure AD tenant
  • Gestire e pianificare i processi nel cluster HPC Pack in AzureManage and schedule jobs in your HPC Pack cluster in Azure

L'integrazione di una soluzione cluster HPC Pack con Azure AD si attiene ai passaggi standard da seguire per integrare altri servizi e applicazioni.Integrating an HPC Pack cluster solution with Azure AD follows standard steps to integrate other applications and services. In questo articolo si presuppone di avere dimestichezza con la gestione utente di base in Azure AD.This article assumes you are familiar with basic user management in Azure AD. Per altre informazioni e aspetti di fondo, consultare la documentazione di Azure Active Directory e la sezione seguente.For more information and background, see the Azure Active Directory documentation and the following section.

Vantaggi dell'integrazioneBenefits of integration

Azure Active Directory (Azure AD) è il servizio di gestione di identità e directory basato sul cloud e multi-tenant che offre un accesso SSO alle soluzioni cloud.Azure Active Directory (Azure AD) is a multi-tenant cloud-based directory and identity management service that provides single sign-on (SSO) access to cloud solutions.

L'integrazione di un cluster HPC Pack con Azure AD consente di raggiungere gli obiettivi seguenti:Integration of an HPC Pack cluster with Azure AD can help you achieve the following goals:

  • Rimuovere il tradizionale controller di dominio di Active Directory dal cluster HPC Pack,Remove the traditional Active Directory domain controller from the HPC Pack cluster. così da contribuire a ridurre i costi di manutenzione del cluster se non è necessario per l'azienda, oltre ad accelerare il processo di distribuzione.This can help reduce the costs of maintaining the cluster if this is not necessary for your business, and speed-up the deployment process.
  • Sfruttare i vantaggi seguenti che vengono offerti da Azure AD:Leverage the following benefits that are brought by Azure AD:

    • Single sign-onSingle sign-on
    • Uso di un'identità di Active Directory locale per il cluster HPC Pack in AzureUsing a local AD identity for the HPC Pack cluster in Azure

      Ambiente di Azure Active Directory

PrerequisitiPrerequisites

  • Cluster HPC Pack 2016 distribuito nelle macchine virtuali di Azure: per la procedura vedere Distribuire un cluster HPC Pack 2016 in Azure.HPC Pack 2016 cluster deployed in Azure virtual machines - For steps, see Deploy an HPC Pack 2016 cluster in Azure. Per completare la procedura descritta in questo articolo, sono necessari il nome DNS del nodo head e le credenziali di un amministratore del cluster.You need the DNS name of the head node and the credentials of a cluster administrator to complete the steps in this article.

    Nota

    L'integrazione di Azure Active Directory non è supportata nelle versioni di HPC Pack precedenti a quella del 2016.Azure Active Directory integration is not supported in versions of HPC Pack before HPC Pack 2016.

  • Computer client: per eseguire le utilità client di HPC Pack è necessario un computer client Windows o Windows Server.Client computer - You need a Windows or Windows Server client computer to run HPC Pack client utilities. Se si prevede di inviare i processi solo tramite il portale Web di HPC Pack o l'API REST, è possibile usare un computer client qualsiasi.If you only want to use the HPC Pack web portal or REST API to submit jobs, you can use any client computer of your choice.

  • Utilità client di HPC Pack: installare le utilità client di HPC Pack nel computer client usando il pacchetto di installazione gratuito disponibile nell'Area Download Microsoft.HPC Pack client utilities - Install the HPC Pack client utilities on the client computer, using the free installation package available from the Microsoft Download Center.

Passaggio 1: Registrare il server del cluster HPC con il proprio tenant di Azure ADStep 1: Register the HPC cluster server with your Azure AD tenant

  1. Accedere al portale di Azure.Sign in to the Azure portal.
  2. Se l'account consente di accedere a più tenant di Azure AD, fare clic sull'account in alto a destra.If your account gives you access to more than one Azure AD tenant, click your account in the top right corner. Quindi impostare la sessione del portale sul tenant di Azure AD desiderato.Then set your portal session to the desired tenant. È necessario disporre dell'autorizzazione per accedere alle risorse nella directory.You must have permission to access resources in the directory.
  3. Fare clic su Azure Active Directory nel riquadro di spostamento Servizi a sinistra, fare clic su Utenti e gruppi e assicurarsi che vi siano account utente già creati o configurati.Click Azure Active Directory in the left Services navigation pane, click Users and groups, and make sure there are user accounts already created or configured.
  4. In Azure Active Directory fare clic su Registrazioni per l'app > Registrazione nuova applicazione.In Azure Active Directory, click App registrations > New application registration. Immettere le seguenti informazioni:Enter the following information:
    • Nome: HPCPackClusterServerName - HPCPackClusterServer
    • Per Tipo di applicazione selezionare App Web/APIApplication type - Select Web app / API
    • URL di accesso: l'URL di base per l'esempio, che per impostazione predefinita è https://hpcserverSign-on URL- The base URL for the sample, which is by default https://hpcserver
    • Fare clic su Crea.Click Create.
  5. Dopo aver aggiunto l'app, selezionarla nell'elenco Registrazioni per l'app.After the app is added, select it in the App registrations list. Quindi fare clic su Impostazioni > proprietà.Then click Settings > Properties. Immettere le seguenti informazioni:Enter the following information:
    • Selezionare per Multi-tenant.Select Yes for Multi-tenanted.
    • Cambiare URI ID app in https://<Directory_name>/<application_name>.Change App ID URI to https://<Directory_name>/<application_name>. Sostituire <Directory_name> con il nome completo del tenant di Azure AD, ad esempio hpclocal.onmicrosoft.com e sostituire <application_name> con il nome scelto in precedenza.Replace <Directory_name> with the full name of your Azure AD tenant, for example, hpclocal.onmicrosoft.com, and replace <application_name> with the name you chose previously.
  6. Fare clic su Salva.Click Save. Quando viene completato il salvataggio, nella pagina dell'app fare clic su Manifesto.When saving completes, on the app page, click Manifest. Modificare il manifesto individuando l'impostazione appRoles e aggiungendo il ruolo dell'applicazione seguente, quindi fare clic su Salva:Edit the manifest by locating the appRoles setting and adding the following application role, and then click Save:

    "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. In Azure Active Directory fare clic su Applicazioni aziendali > Tutte le applicazioni.In Azure Active Directory, click Enterprise applications > All applications. Selezionare HPCPackClusterServer nell'elenco.Select HPCPackClusterServer from the list.
  8. Fare clic su Proprietà e cambiare Assegnazione utenti obbligatoria in .Click Properties, and change User assignment required to Yes. Fare clic su Salva.Click Save.
  9. Fare clic su Utenti e gruppi > Aggiungi utente.Click Users and groups > Add user. Selezionare un utente e un ruolo, quindi fare clic su Assegna.Select a user and select a role, and then click Assign. Assegnare uno dei ruoli disponibili (HpcUsers o HpcAdminMirror) all'utente.Assign one of the available roles (HpcUsers or HpcAdminMirror) to the user. Ripetere questo passaggio con altri utenti nella directory.Repeat this step with additional users in the directory. Per informazioni generali sugli utenti del cluster, vedere Gestione di utenti cluster.For background information about cluster users, see Managing Cluster Users.

Passaggio 2: Registrare il client del cluster HPC con il proprio tenant di Azure ADStep 2: Register the HPC cluster client with your Azure AD tenant

  1. Accedere al portale di Azure.Sign in to the Azure portal.
  2. Se l'account consente di accedere a più tenant di Azure AD, fare clic sull'account in alto a destra.If your account gives you access to more than one Azure AD tenant, click your account in the top right corner. Quindi impostare la sessione del portale sul tenant di Azure AD desiderato.Then set your portal session to the desired tenant. È necessario disporre dell'autorizzazione per accedere alle risorse nella directory.You must have permission to access resources in the directory.
  3. In Azure Active Directory fare clic su Registrazioni per l'app > Registrazione nuova applicazione.In Azure Active Directory, click App registrations > New application registration. Immettere le seguenti informazioni:Enter the following information:

    • Nome: HPCPackClusterClientName - HPCPackClusterClient
    • In Tipo applicazione selezionare NativoApplication type - Select Native
    • URI di reindirizzamento - http://hpcclientRedirect URI - http://hpcclient
    • Fare clic su CreaClick Create
  4. Dopo aver aggiunto l'app, selezionarla nell'elenco Registrazioni per l'app.After the app is added, select it in the App registrations list. Copiare il valore ID applicazione e salvarlo.Copy the Application ID value and save it. poiché servirà in un secondo momento durante la configurazione dell'applicazione.You need this later when configuring your application.

  5. Fare clic su Impostazioni > Autorizzazioni necessarie > Aggiungi > Selezionare un'API.Click Settings > Required permissions > Add > Select an API. Cercare e aggiungere l'applicazione HpcPackClusterServer (creata al passaggio 1).Search and select the HpcPackClusterServer application (created in Step 1).

  6. Nella pagina Abilita accesso selezionare Accesso HpcClusterServer.In the Enable Access page, select Access HpcClusterServer. Fare quindi clic su Done.Then click Done.

Passaggio 3: Configurare il cluster HPCStep 3: Configure the HPC cluster

  1. Connettersi al nodo head di HPC Pack 2016 in Azure.Connect to the HPC Pack 2016 head node in Azure.

  2. Avviare HPC PowerShell.Start HPC PowerShell.

  3. Eseguire il comando seguente:Run the following command:

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

    dovewhere

    • AADTenant specifica il nome del tenant di Azure AD, ad esempio hpclocal.onmicrosoft.comAADTenant specifies the Azure AD tenant name, such as hpclocal.onmicrosoft.com
    • AADClientAppId specifica l'ID applicazione per l'app creata al passaggio 2.AADClientAppId specifies the Application ID for the app created in Step 2.
  4. Fare una delle cose seguenti, a seconda della configurazione del nodo head:Do one of the following, depending on the head node configuration:

    • In un cluster HPC Pack con un singolo nodo head riavviare il servizio HpcScheduler.In a single head node HPC Pack cluster, restart the HpcScheduler service.

    • In un cluster HPC Pack con più nodi head eseguire i comandi PowerShell seguenti nel nodo head per riavviare il servizio HpcSchedulerStateful:In an HPC Pack cluster with multiple head nodes, run the following PowerShell commands on the head node to restart the HpcSchedulerStateful service:

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

Passaggio 4: Gestire e inviare i processi dal clientStep 4: Manage and submit jobs from the client

Per installare le utilità client di HPC Pack 2016 nel computer, scaricare i file di installazione (installazione completa) dall'Area download Microsoft.To install the HPC Pack client utilities on your computer, download the HPC Pack 2016 setup files (full installation) from the Microsoft Download Center. All'inizio della procedura di installazione, scegliere l'opzione di installazione per le utilità client di HPC Pack.When you begin the installation, choose the setup option for the HPC Pack client utilities.

Per preparare il computer client, installare il certificato usato durante la configurazione del cluster HPC nel computer client.To prepare the client computer, install the certificate used during HPC cluster setup on the client computer. Seguire le procedure di gestione del certificato di Windows standard per installare il certificato pubblico nell'archivio Certificati – utente corrente > Autorità di certificazione principale attendibili.Use standard Windows certificate management procedures to install the public certificate to the Certificates – Current user > Trusted Root Certification Authorities store.

È ora possibile eseguire i comandi di HPC Pack o usare l'interfaccia grafica utente del gestore processi di HPC Pack per inviare e gestire i processi cluster usando l'account di Azure AD.You can now run the HPC Pack commands or use the HPC Pack Job manager GUI to submit and manage cluster jobs by using the Azure AD account. Per le opzioni di invio di un processo vedere Inviare i processi HPC a un cluster HPC in Azure.For job submission options, see Submit HPC jobs to an HPC Pack cluster in Azure.

Nota

Quando si tenta di connettersi al cluster HPC Pack in Azure per la prima volta, viene visualizzata una finestra popup.When you try to connect to the HPC Pack cluster in Azure for the first time, a popup windows appears. Immettere le credenziali di Azure AD per accedere.Enter your Azure AD credentials to log in. Il token viene quindi memorizzato nella cache.The token is then cached. Per i successivi tentativi di connessione al cluster in Azure verrà usato il token memorizzato nella cache, salvo modifica dell'autenticazione o cancellazione della cache.Later connections to the cluster in Azure use the cached token unless authentication changes or the cache is cleared.

Ad esempio, dopo aver completato i passaggi precedenti, è possibile eseguire una query per i processi da un client locale nel modo seguente:For example, after completing the previous steps, you can query for jobs from an on-premises client as follows:

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 ADUseful cmdlets for job submission with Azure AD integration

Gestire la cache locale dei tokenManage the local token cache

HPC Pack 2016 offre i seguenti cmdlet di HPC PowerShell per gestire la cache locale dei token.HPC Pack 2016 provides the following HPC PowerShell cmdlets to manage the local token cache. Questi cmdlet sono utili per inviare processi in modo non interattivo.These cmdlets are useful for submitting jobs non-interactively. Vedere l'esempio seguente:See the following example:

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 con l'account di Azure Active DirectorySet the credentials for submitting jobs using the Azure AD account

A volte, è consigliabile eseguire il processo con l'utente del cluster HPC (per un cluster HPC aggiunto a un dominio, eseguito come utente di un dominio, ma per un cluster HPC non appartenente a un dominio, eseguire come un utente locale nel nodo head).Sometimes, you may want to run the job under the HPC cluster user (for a domain-joined HPC cluster, run as one domain user; for a non-domain-joined HPC cluster, run as one local user on the head node).

  1. Per impostare le credenziali, usare i comandi seguenti:Use the following commands to set the credentials:

    $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. Dopodiché, inviare il processo come indicato di seguito.Then submit the job as follows. Il processo/attività viene eseguito in $localUser sui nodi di calcolo.The job/task runs under $localUser on the compute nodes.

    $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 con Submit-HpcJob, il processo/attività viene eseguito sotto un utente mappato in locale come account di Azure AD.If –Credential is not specified with Submit-HpcJob, the job or task runs under a local mapped user as the Azure AD account. Il cluster HPC crea un utente locale con lo stesso nome dell'account di Azure AD per eseguire l'attività.(The HPC cluster creates a local user with the same name as the Azure AD account to run the task.)

  3. Impostare i dati estesi per l'account Azure Active Directory.Set extended data for the Azure AD account. Ciò è utile quando si esegue un processo MPI in nodi di Linux utilizzando l'account Azure Active Directory.This is useful when running an MPI job on Linux nodes using the Azure AD account.

    • Impostare i dati estesi per l'account Azure Active DirectorySet extended data for the Azure AD account itself

      Set-HpcJobCredential -Scheduler https://<Azure load balancer DNS name> -ExtendedData <data> -AadUser
      
    • Impostare i dati estesi ed eseguire come utente del cluster HPCSet extended data and run as HPC cluster user

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