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
Installeer Docker.
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.
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.
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.
U moet Docker uitvoeren met behulp van een Linux-container. Wanneer u Docker uitvoert, schakelt u over naar Linux-containers.
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
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
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)
Verbinding maken naar 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.
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
- Lees een overzicht van Azure Stack Hub PowerShell in Azure Stack Hub.
- Meer informatie over API-profielen voor PowerShell in Azure Stack Hub.
- Installeer Azure Stack Hub PowerShell.
- Meer informatie over het maken van Azure Resource Manager-sjablonen voor cloudconsistentie.