Monitorare gli aggiornamenti nell'hub di Azure Stack tramite l'endpoint con privilegi

È possibile usare l'endpoint con privilegi per monitorare lo stato di avanzamento di un'esecuzione dell'aggiornamento dell'hub di Azure Stack. È anche possibile usare l'endpoint con privilegi per riprendere un'esecuzione di aggiornamento non riuscita dall'ultimo passaggio riuscito se il portale dell'hub di Azure Stack non sarà più disponibile. L'uso del portale dell'hub di Azure Stack è il metodo consigliato per gestire gli aggiornamenti nell'hub di Azure Stack.

I nuovi cmdlet di PowerShell seguenti per la gestione degli aggiornamenti sono inclusi nell'aggiornamento 1710 per i sistemi integrati dell'hub di Azure Stack.

Cmdlet Descrizione
Get-AzureStackUpdateStatus Restituisce lo stato dell'aggiornamento attualmente in esecuzione, completato o non riuscito. Fornisce lo stato generale dell'operazione di aggiornamento e un documento XML che descrive sia il passaggio corrente che lo stato corrispondente.
Resume-AzureStackUpdate Riprende un aggiornamento non riuscito nel punto in cui non è riuscito. In alcuni scenari potrebbe essere necessario completare i passaggi di mitigazione prima di riprendere l'aggiornamento.

Verificare che i cmdlet siano disponibili

Poiché i cmdlet sono nuovi nel pacchetto di aggiornamento 1710 per l'hub di Azure Stack, il processo di aggiornamento 1710 deve raggiungere un determinato punto prima che sia disponibile la funzionalità di monitoraggio. In genere, i cmdlet sono disponibili se lo stato nel portale di amministrazione indica che l'aggiornamento 1710 si trova nel passaggio Riavvia host di archiviazione . In particolare, l'aggiornamento del cmdlet viene eseguito durante il passaggio 2.6 - Aggiornare l'elenco di elementi consentiti PrivilegedEndpoint.

È anche possibile determinare se i cmdlet sono disponibili a livello di codice eseguendo una query sull'elenco di comandi dall'endpoint con privilegi. Per eseguire questa query, eseguire i comandi seguenti dall'host del ciclo di vita dell'hardware o da una workstation con accesso con privilegi. Assicurarsi inoltre che l'endpoint con privilegi sia un host attendibile. Per altre informazioni, vedere il passaggio 1 di Accedere all'endpoint con privilegi.

  1. Creare una sessione di PowerShell in una delle macchine virtuali ERCS nell'ambiente dell'hub di Azure Stack (Prefix-ERCS01, Prefix-ERCS02 o Prefix-ERCS03). Sostituire Prefisso con la stringa di prefisso della macchina virtuale specifica per l'ambiente in uso.

    $cred = Get-Credential
    
    $pepSession = New-PSSession -ComputerName <Prefix>-ercs01 -Credential $cred -ConfigurationName PrivilegedEndpoint -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    

    Quando vengono richieste le credenziali, usare il dominio >dell'hub < di Azure Stack\account cloudadmin o un account membro del gruppo CloudAdmins. Per l'account CloudAdmin immettere la stessa password specificata durante l'installazione per l'account amministratore di dominio AzureStackAdmin.

  2. Ottenere l'elenco completo dei comandi disponibili nell'endpoint con privilegi.

    $commands = Invoke-Command -Session $pepSession -ScriptBlock { Get-Command } 
    
  3. Determinare se l'endpoint con privilegi è stato aggiornato.

    $updateManagementModuleName = "Microsoft.Azurestack.UpdateManagement"
     if (($commands | ? Source -eq $updateManagementModuleName)) {
    Write-Host "Privileged endpoint was updated to support update monitoring tools."
     } else {
    Write-Host "Privileged endpoint has not been updated yet. Please try again later."
     } 
    
  4. Elencare i comandi specifici del modulo Microsoft.AzureStack.UpdateManagement.

    $commands | ? Source -eq $updateManagementModuleName 
    

    Ad esempio:

    $commands | ? Source -eq $updateManagementModuleName
    
    CommandType     Name                                               Version    Source                                                  PSComputerName
     -----------     ----                                               -------    ------                                                  --------------
    Function        Get-AzureStackUpdateStatus                         0.0        Microsoft.Azurestack.UpdateManagement                   Contoso-ercs01
    Function        Resume-AzureStackUpdate                            0.0        Microsoft.Azurestack.UpdateManagement                   Contoso-ercs01
    

Usare i cmdlet di gestione degli aggiornamenti

Nota

Eseguire i comandi seguenti dall'host del ciclo di vita dell'hardware o da una workstation con accesso con privilegi. Assicurarsi inoltre che l'endpoint con privilegi sia un host attendibile. Per altre informazioni, vedere il passaggio 1 di Accedere all'endpoint con privilegi.

Connettersi all'endpoint con privilegi e assegnare la variabile di sessione

Eseguire i comandi seguenti per creare una sessione di PowerShell in una delle macchine virtuali ERCS nell'ambiente dell'hub di Azure Stack (Prefix-ERCS01, Prefix-ERCS02 o Prefix-ERCS03) e per assegnare una variabile di sessione.

$cred = Get-Credential

$pepSession = New-PSSession -ComputerName <Prefix>-ercs01 -Credential $cred -ConfigurationName PrivilegedEndpoint -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

Quando vengono richieste le credenziali, usare il dominio >dell'hub < di Azure Stack\account cloudadmin o un account membro del gruppo CloudAdmins. Per l'account CloudAdmin immettere la stessa password specificata durante l'installazione per l'account amministratore di dominio AzureStackAdmin.

Ottenere lo stato generale dell'esecuzione dell'aggiornamento corrente

Per ottenere uno stato generale dell'esecuzione dell'aggiornamento corrente, eseguire i comandi seguenti:

$statusString = Invoke-Command -Session $pepSession -ScriptBlock { Get-AzureStackUpdateStatus -StatusOnly }

$statusString.Value 

I valori possibili sono:

  • In esecuzione
  • Completato
  • Operazione non riuscita
  • Cancellati

È possibile eseguire questi comandi ripetutamente per visualizzare lo stato più aggiornato. Non è necessario ristabilire una connessione per la verifica.

Ottenere lo stato completo dell'esecuzione dell'aggiornamento con i dettagli

È possibile ottenere il riepilogo dell'esecuzione dell'aggiornamento completo come stringa XML. È possibile scrivere la stringa in un file per l'esame o convertirla in un documento XML e usare PowerShell per analizzarlo. Il comando seguente analizza il codice XML per ottenere un elenco gerarchico dei passaggi attualmente in esecuzione:

[xml]$updateStatus = Invoke-Command -Session $pepSession -ScriptBlock { Get-AzureStackUpdateStatus }

$updateStatus.SelectNodes("//Step[@Status='InProgress']")

Nell'esempio seguente, il passaggio di primo livello (Aggiornamento cloud) ha un piano figlio per aggiornare e riavviare gli host di archiviazione. Mostra che il piano Riavvia host di archiviazione sta aggiornando il servizio di archiviazione BLOB in uno degli host.

[xml]$updateStatus = Invoke-Command -Session $pepSession -ScriptBlock { Get-AzureStackUpdateStatus }

$updateStatus.SelectNodes("//Step[@Status='InProgress']") 

    FullStepIndex : 2
    Index         : 2
    Name          : Cloud Update
    Description   : Perform cloud update.
    StartTimeUtc  : 2017-10-13T12:50:39.9020351Z
    Status        : InProgress
    Task          : Task
    
    FullStepIndex  : 2.9
    Index          : 9
    Name           : Restart Storage Hosts
    Description    : Restart Storage Hosts.
    EceErrorAction : Stop
    StartTimeUtc   : 2017-10-13T15:44:06.7431447Z
    Status         : InProgress
    Task           : Task
    
    FullStepIndex : 2.9.2
    Index         : 2
    Name          : PreUpdate ACS Blob Service
    Description   : Check function level, update deployment artifacts, configure Blob service settings
    StartTimeUtc  : 2017-10-13T15:44:26.0708525Z
    Status        : InProgress
    Task          : Task

Riprendere un'operazione di aggiornamento non riuscita

Se l'aggiornamento non riesce, è possibile riprendere l'esecuzione dell'aggiornamento in cui è stata interrotta.

Invoke-Command -Session $pepSession -ScriptBlock { Resume-AzureStackUpdate } 

Risolvere problemi

L'endpoint con privilegi è disponibile in tutte le macchine virtuali ERCS nell'ambiente dell'hub di Azure Stack. Poiché la connessione non viene stabilita a un endpoint a disponibilità elevata, è possibile che si verifichino occasionali interruzioni, avvisi o messaggi di errore. Questi messaggi possono indicare che la sessione è stata disconnessa o che si è verificato un errore durante la comunicazione con il servizio ECE. Si tratta di un comportamento previsto. È possibile ripetere l'operazione in pochi minuti o creare una nuova sessione di endpoint con privilegi in una delle altre macchine virtuali ERCS.

Per altre informazioni sulla risoluzione dei problemi degli aggiornamenti, vedere Risoluzione dei problemi di Azure Stack

Passaggi successivi