Condividi tramite


Usare Docker per eseguire PowerShell per l'hub di Azure Stack

In questo articolo è possibile usare Docker per creare un contenitore in cui eseguire la versione di PowerShell necessaria per l'uso delle varie interfacce. È possibile trovare istruzioni per l'uso dei moduli AzureRM e dei moduli Az più recenti. AzureRM richiede un contenitore basato su Windows. Az usa un contenitore basato su Linux.

Prerequisiti Docker

Installare Docker

  1. Installare Docker.

  2. In un programma da riga di comando, ad esempio PowerShell o Bash, immettere:

    docker --version
    

Configurare un'entità servizio per l'uso di PowerShell

Per usare PowerShell per accedere alle risorse nell'hub di Azure Stack, è necessaria un'entità servizio nel tenant di Microsoft Entra. Delegare le autorizzazioni con il controllo degli accessi in base al ruolo dell'utente. Potrebbe essere necessario richiedere l'entità servizio dall'operatore cloud.

  1. Per configurare l'entità servizio, seguire le istruzioni in Concedere alle applicazioni l'accesso alle risorse dell'hub di Azure Stack creando entità servizio.

  2. Prendere nota dell'ID applicazione, del segreto, dell'ID tenant e dell'ID oggetto per un uso successivo.

Eseguire PowerShell in Docker

In queste istruzioni si eseguirà un'immagine del contenitore basata su Linux che contiene PowerShell e i moduli necessari per l'hub di Azure Stack.

  1. È necessario eseguire Docker usando il contenitore Linux. Quando si esegue Docker, passare ai contenitori Linux.

  2. Eseguire Docker da un computer aggiunto allo stesso dominio dell'hub di Azure Stack. Se si usa Azure Stack Development Kit (ASDK), installare la VPN nel computer remoto.

Installare il modulo Az dell'hub di Azure Stack in un contenitore Linux

  1. Dalla riga di comando eseguire il comando Docker seguente per eseguire PowerShell in un contenitore Ubuntu:

    docker run -it mcr.microsoft.com/azurestack/powershell
    

    È possibile eseguire Ubuntu o Debian. È possibile trovare i file Docker seguenti nel repository GitHub azurestack-powershell. Per le modifiche più recenti ai file Docker, vedere il repository GitHub. Ogni sistema operativo è contrassegnato. Sostituire il tag, la sezione dopo i due punti, con il tag per il sistema operativo desiderato.

    Linux Immagine Docker
    Ubuntu docker run -it mcr.microsoft.com/azurestack/powershell:ubuntu-18.04
    Debian docker run -it mcr.microsoft.com/azurestack/powershell:debian-9
  2. La shell è pronta per i cmdlet. Testare la connettività della shell eseguendo l'accesso e quindi eseguendo Test-AzureStack.ps1.

    Creare prima di tutto le credenziali dell'entità servizio. Saranno necessari il segreto e l'ID applicazione. È necessario anche l'ID oggetto durante l'esecuzione di Test-AzureStack.ps1 per controllare il contenitore. Potrebbe essere necessario richiedere un'entità servizio dall'operatore cloud.

    Digitare i cmdlet seguenti per creare un oggetto entità servizio:

    $passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force
    $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
    
  3. Connettersi all'ambiente eseguendo lo script seguente con i valori seguenti dell'istanza dell'hub di Azure Stack.

    valore Descrizione
    Il nome dell'ambiente. Nome dell'ambiente hub di Azure Stack.
    Endpoint Resource Manager URL di Resource Manager. Se non lo si conosce, contattare l'operatore cloud. Sarà simile a https://management.region.domain.com.
    Directory Tenant ID ID della directory del tenant dell'hub di Azure Stack.
    Credenziale Oggetto contenente l'entità servizio. In questo caso $pscredential.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    PowerShell restituisce l'oggetto account.

  4. Testare l'ambiente eseguendo lo Test-AzureStack.ps1 script nel contenitore. Specificare l'ID oggetto dell'entità servizio. Se non si indica l'ID oggetto, lo script verrà comunque eseguito, ma eseguirà solo moduli tenant (utente) e avrà esito negativo nei moduli che richiedono privilegi di amministratore.

    ./Test-AzureStack.ps1 <Object ID>
    

Passaggi successivi