Docker gebruiken om PowerShell voor Azure Stack Hub uit te voeren

Waarschuwing

Dit artikel verwijst naar CentOS, een Linux-distributie die de EOL-status (End Of Life) nadert. Overweeg uw gebruik en plan dienovereenkomstig. Zie de richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.

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

Docker-vereisten

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 Microsoft Entra-tenant nodig. U delegeert machtigingen met op rollen gebaseerd toegangsbeheer (RBAC) van gebruikers. 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 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, moet u het VPN installeren 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, Debian of Centos 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
    Centos docker run -it mcr.microsoft.com/azurestack/powershell:centos-7
  2. De shell is gereed 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 bij het uitvoeren van de Test-AzureStack.ps1 om uw container te controleren. Mogelijk moet u een service-principal aanvragen bij uw cloudoperator.

    Typ de volgende cmdlets om een service-principal-object 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.

    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 dit niet weet. Deze ziet er ongeveer als volgt uit: https://management.region.domain.com.
    Maptenant-id 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 in de container uit te voeren. Geef de object-id van de service-principal op. Als u de object-id niet opgeeft, wordt het script nog steeds uitgevoerd, maar worden alleen tenantmodules (gebruikersmodules) getest en mislukt het op modules waarvoor beheerdersbevoegdheden zijn vereist.

    ./Test-AzureStack.ps1 <Object ID>
    

Volgende stappen