Použití Dockeru ke spuštění PowerShellu pro Azure Stack Hub

Upozornění

Tento článek odkazuje na CentOS, linuxovou distribuci, která se blíží stavu konce životnosti (EOL). Zvažte prosím použití a naplánujte podle toho. Další informace najdete v pokynech ke konci životnosti CentOS.

V tomto článku můžete pomocí Dockeru vytvořit kontejner, ve kterém se spustí verze PowerShellu, která se vyžaduje pro práci s různými rozhraními. Najdete zde pokyny k používání modulů AzureRM i nejnovějších modulů Az. AzureRM vyžaduje kontejner založený na Windows. Az používá kontejner založený na Linuxu.

Požadavky Na Docker

Instalace Dockeru

  1. Nainstalujte Docker.

  2. V programu příkazového řádku, jako je PowerShell nebo Bash, zadejte:

    docker --version
    

Nastavení instančního objektu pro použití PowerShellu

Pokud chcete používat PowerShell pro přístup k prostředkům ve službě Azure Stack Hub, potřebujete instanční objekt ve vašem tenantovi Microsoft Entra. Oprávnění delegujete pomocí řízení přístupu na základě role uživatele (RBAC). Možná budete muset instanční objekt požádat od operátora cloudu.

  1. Pokud chcete nastavit instanční objekt, postupujte podle pokynů v tématu Poskytnutí přístupu aplikacím k prostředkům služby Azure Stack Hub vytvořením instančních objektů.

  2. Poznamenejte si ID aplikace, tajný kód, ID tenanta a ID objektu pro pozdější použití.

Spuštění PowerShellu v Dockeru

V těchto pokynech spustíte image kontejneru založenou na Linuxu, která obsahuje PowerShell a požadované moduly pro službu Azure Stack Hub.

  1. Docker musíte spustit pomocí kontejneru Linuxu. Když spustíte Docker, přepněte na kontejnery Linuxu.

  2. Spusťte Docker z počítače, který je připojený ke stejné doméně jako Azure Stack Hub. Pokud používáte sadu Azure Stack Development Kit (ASDK), musíte na vzdálený počítač nainstalovat síť VPN.

Instalace modulu Az služby Azure Stack Hub do kontejneru Linuxu

  1. Z příkazového řádku spusťte následující příkaz Dockeru, který spustí PowerShell v kontejneru Ubuntu:

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

    Můžete spustit Ubuntu, Debian nebo Centos. Následující soubory Dockeru najdete v úložišti GitHub azurestack-powershell. Nejnovější změny souborů Dockeru najdete v úložišti GitHub. Každý operační systém je označený. Nahraďte značku, část za dvojtečka, značkou požadovaného operačního systému.

    Linux Image Dockeru
    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. Prostředí je připravené pro vaše rutiny. Otestujte připojení k prostředí tak, že se přihlásíte a pak spustíte příkaz Test-AzureStack.ps1.

    Nejprve vytvořte přihlašovací údaje instančního objektu. Budete potřebovat tajný kód a ID aplikace. ID objektu budete potřebovat také při spuštění příkazu ke Test-AzureStack.ps1 kontrole kontejneru. Možná budete muset požádat o instanční objekt od operátora cloudu.

    Zadáním následujících rutin vytvořte objekt instančního objektu:

    $passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force
    $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
    
  3. Připojte se ke svému prostředí spuštěním následujícího skriptu s následujícími hodnotami z vaší instance služby Azure Stack Hub.

    Hodnota Popis
    Název prostředí. Název vašeho prostředí služby Azure Stack Hub.
    Koncový bod Resource Manager Adresa URL Resource Manager. Pokud to neznáte, obraťte se na svého operátora cloudu. Bude vypadat přibližně takto: https://management.region.domain.com.
    ID tenanta adresáře ID vašeho adresáře tenanta služby Azure Stack Hub.
    Reference Objekt obsahující instanční objekt. V tomto případě $pscredential.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    PowerShell vrátí objekt vašeho účtu.

  4. Otestujte prostředí spuštěním Test-AzureStack.ps1 skriptu v kontejneru. Zadejte ID instančního objektu. Pokud id objektu neudáte, skript se stále spustí, ale pouze otestuje moduly tenanta (uživatele) a selže u modulů, které vyžadují oprávnění správce.

    ./Test-AzureStack.ps1 <Object ID>
    

Další kroky