Docker gebruiken om PowerShell uit te voeren voor Azure Stack Hub

In dit artikel kunt u Docker gebruiken om een container te maken waarop de versie van PowerShell moet worden uitgevoerd die vereist is voor het werken met de verschillende interfaces. U vindt instructies voor het gebruik van zowel AzureRM-modules als de nieuwste Az-modules. AzureRM vereist een Windows op basis van een container. Az maakt gebruik van een linux-container.

Vereisten voor Docker

Docker installeren

  1. Installeer Docker.

  2. Voer in een opdrachtregelprogramma, zoals PowerShell of Bash, het volgende in:

    docker --version
    

Een service-principal instellen voor het gebruik van PowerShell

Als u PowerShell wilt gebruiken voor toegang tot resources in Azure Stack Hub, hebt u een service-principal in uw Azure Active Directory -tenant (Azure AD) nodig. U delegeert machtigingen met op gebruikersrol gebaseerd toegangsbeheer (RBAC). Mogelijk moet u de service-principal aanvragen bij uw cloudoperator.

  1. Als u uw service-principal wilt instellen, volgt u de instructies in Toepassingen toegang geven tot Azure Stack Hub resources door service-principals te maken.

  2. Noteer de toepassings-id, het geheim, uw tenant-id en object-id voor later gebruik.

PowerShell uitvoeren in Docker

In deze instructies gaat u een op Linux gebaseerde containerafbeelding uitvoeren die de PowerShell en de vereiste modules voor de Azure Stack Hub.

  1. U moet Docker uitvoeren met behulp van een Linux-container. Wanneer u Docker gebruikt, schakelt u over naar Linux-containers.

  2. Voer Docker uit vanaf een computer die is verbonden met hetzelfde domein als Azure Stack Hub. Als u de Azure Stack Development Kit (ASDK) gebruikt, moet u het VPN installeren op uw externe computer.

De Az Azure Stack Hub module installeren in een Linux-container

  1. Voer vanaf de opdrachtregel de volgende Docker-opdracht uit om PowerShell uit te voeren in een Ubuntu-container:

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

    U kunt Ubuntu, Debian of Centos uitvoeren. U vindt de volgende Docker-bestanden in GitHub opslagplaats azurestack-powershell. Raadpleeg de opslagplaats GitHub de meest recente wijzigingen in de Docker-bestanden. Elk besturingssysteem is getagd. Vervang de tag , de sectie na de dubbele punt, door de tag voor het gewenste besturingssysteem.

    Linux Docker-installatiekopie
    Ubuntu docker run -it mcr.microsoft.com/azurestack/powershell:ubuntu-18.04
    Debian docker run -it mcr.microsoft.com/azurestack/powershell:debian-9
    Centos docker run -it mcr.microsoft.com/azurestack/powershell:centos-7
  2. De shell is gereed voor uw cmdlets. Test de shell-connectiviteit door u aan te melden en vervolgens uit te gaan Test-AzureStack.ps1.

    Maak eerst uw referenties voor de service-principal. U hebt het geheim en detoepassings-id nodig. U hebt ook de object-id nodig bij het uitvoeren van de om uw container te controleren. Mogelijk moet u een service-principal aanvragen bij uw cloudoperator.

    Typ de volgende cmdlets om een service-principeobject te maken:

    $passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force
    $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
    
  3. Verbinding maken aan uw omgeving door het volgende script uit te voeren met de volgende waarden uit uw Azure Stack Hub exemplaar.

    Waarde Beschrijving
    De naam van de omgeving. De naam van uw Azure Stack Hub omgeving.
    Resource Manager eindpunt De URL voor de Resource Manager. Neem contact op met uw cloudoperator als u deze niet weet. Deze ziet er ongeveer als volgt uit: https://management.region.domain.com.
    Tenant-id van directory De id van uw Azure Stack Hub tenantmap.
    Referentie Een object met uw service-principal. In dit geval $pscredential.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    PowerShell retourneert uw accountobject.

  4. Test uw omgeving door het script in de Test-AzureStack.ps1 container uit te voeren. Geef de object-id van de service-principal op. Als u de object-id niet aangeeft, wordt het script nog steeds uitgevoerd, maar worden alleen tenantmodules (gebruikers)-modules getest en mislukt het op modules waarvoor beheerdersbevoegdheden zijn vereist.

    ./Test-AzureStack.ps1 <Object ID>
    

Volgende stappen