Delen via


Docker gebruiken om PowerShell uit te voeren voor Azure Stack Hub

In dit artikel kunt u Docker gebruiken om een container te maken waarop u de versie van PowerShell kunt uitvoeren 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-container. Az maakt gebruik van een op Linux gebaseerde 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 nodig in uw Microsoft Entra-tenant. U delegeert machtigingen met op rollen 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 voert u een op Linux gebaseerde containerinstallatiekopieën uit die de PowerShell en de vereiste modules voor Azure Stack Hub bevat.

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

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

Azure Stack Hub Az-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 of Debian uitvoeren. U vindt de volgende Docker-bestanden in de GitHub-opslagplaats, azurestack-powershell. Raadpleeg de GitHub-opslagplaats voor de meest recente wijzigingen in de Docker-bestanden. Elk besturingssysteem is gelabeld. 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
  2. De shell is klaar voor uw cmdlets. Test uw shell-connectiviteit door u aan te melden en vervolgens uit te voeren Test-AzureStack.ps1.

    Maak eerst uw referenties voor de service-principal. U hebt het geheim en de toepassings-id nodig. U hebt ook de object-id nodig wanneer u de Test-AzureStack.ps1 container uitvoert om de container te controleren. Mogelijk moet u een service-principal aanvragen bij uw cloudoperator.

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

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

    Weergegeven als Beschrijving
    De naam van de omgeving. De naam van uw Azure Stack Hub-omgeving.
    Resource Manager-eindpunt De URL voor 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 map 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 Test-AzureStack.ps1 script uit te voeren in de container. Geef de object-id van de service-principal op. Als u de object-id niet aangeeft, wordt het script nog steeds uitgevoerd, maar wordt alleen tenantmodules (gebruiker) getest en mislukt het bij modules waarvoor beheerdersbevoegdheden zijn vereist.

    ./Test-AzureStack.ps1 <Object ID>
    

Volgende stappen