Použití Docker ke spuštění PowerShellu pro Azure Stack hubUse Docker to run PowerShell for Azure Stack Hub

V tomto článku můžete pomocí Docker vytvořit kontejner, na kterém běží verze PowerShellu, která je nutná pro práci s různými rozhraními.In this article, you can use Docker to create a container on which to run the version of PowerShell that's required for working with the various interfaces. Pokyny k používání modulů AzureRM a nejnovějších modulů AZ modules najdete v tématu.You can find instructions for using both AzureRM modules and the latest Az modules. AzureRM vyžaduje kontejner založený na systému Windows.AzureRM requires a Windows-based container. AZ používá kontejner založený na systému Linux.Az uses a Linux-based container.

Požadavky DockerDocker prerequisites

Instalace DockeruInstall Docker

  1. Nainstalujte Docker.Install Docker.

  2. V programu příkazového řádku, jako je například PowerShell nebo bash, zadejte:In a command-line program, such as PowerShell or Bash, enter:

    docker --version
    

Nastavení instančního objektu pro použití prostředí PowerShellSet up a service principal for using PowerShell

Pokud chcete k přístupu k prostředkům v centru Azure Stack použít PowerShell, potřebujete instanční objekt v tenantovi služby Azure Active Directory (Azure AD).To use PowerShell to access resources in Azure Stack Hub, you need a service principal in your Azure Active Directory (Azure AD) tenant. Oprávnění můžete delegovat pomocí řízení přístupu na základě role uživatele (RBAC).You delegate permissions with user role-based access control (RBAC). Možná budete muset požádat o instanční objekt od operátora cloudu.You may need to request the service principal from your cloud operator.

  1. Pokud chcete nastavit instanční objekt, postupujte podle pokynů v tématu poskytnutí přístupu aplikací k prostředkům Azure Stack centra vytvořením instančních objektů.To set up your service principal, follow the instructions in Give applications access to Azure Stack Hub resources by creating service principals.

  2. Poznamenejte si ID aplikace, tajný kód, ID tenanta a ID objektu pro pozdější použití.Note the application ID, the secret, your tenant ID, and object ID for later use.

Spustit PowerShell v DockerRun PowerShell in Docker

V těchto pokynech spustíte image kontejneru se systémem Linux, která obsahuje PowerShell a požadované moduly pro Azure Stack hub.In these instructions, you will run a Linux-based container image that contains the PowerShell and the required modules for Azure Stack Hub.

  1. Je potřeba spustit Docker pomocí kontejneru Linux.You need to run Docker by using Linux container. Když spustíte Docker, přepněte na kontejnery Linux.When you run Docker, switch to Linux containers.

  2. Spusťte Docker z počítače, který je připojený ke stejné doméně jako centrum Azure Stack.Run Docker from a machine that's joined to the same domain as Azure Stack Hub. Pokud používáte Azure Stack Development Kit (ASDK), musíte nainstalovat síť VPN na svém vzdáleném počítači.If you are using the Azure Stack Development Kit (ASDK), you need to install the VPN on your remote machine.

Instalace centra Azure Stack AZ Module v kontejneru LinuxInstall Azure Stack Hub Az module on a Linux container

  1. Z příkazového řádku spusťte následující příkaz Docker, který spustí PowerShell v kontejneru Ubuntu:From your command line, run the following Docker command to run PowerShell in an Ubuntu container:

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

    Můžete spustit Ubuntu, Debian nebo CentOS.You can run Ubuntu, Debian, or Centos. V úložišti GitHubu můžete najít následující soubory Docker, azurestack-PowerShell.You can find the following Docker files in the GitHub repository, azurestack-powershell. Nejnovější změny souborů Docker najdete v úložišti GitHubu.Refer to the GitHub repository for the latest changes to the Docker files. Jednotlivé operační systémy jsou označeny.Each OS is tagged. Nahraďte tag, oddíl za dvojtečkou, značkou pro požadovaný operační systém.Replace the tag, the section after the colon, with the tag for the desired OS.

    LinuxLinux Image DockeruDocker image
    UbuntuUbuntu docker run -it mcr.microsoft.com/azurestack/powershell:ubuntu-18.04
    DebianDebian docker run -it mcr.microsoft.com/azurestack/powershell:debian-9
    CentosCentos docker run -it mcr.microsoft.com/azurestack/powershell:centos-7
  2. Prostředí je připravené na vaše rutiny.The shell is ready for your cmdlets. Otestujte připojení k prostředí tím, že se přihlásíte a pak spustíte Test-AzureStack.ps1 .Test your shell connectivity by signing in and then running Test-AzureStack.ps1.

    Nejdřív vytvořte svoje přihlašovací údaje instančního objektu.First, create your service principal credentials. Budete potřebovat tajný kód a ID aplikace.You will need the secret and application ID. Také budete potřebovat ID objektu při spuštění Test-AzureStack.ps1 služby ke kontrole kontejneru.You will also need the object ID when running the Test-AzureStack.ps1 to check your container. Možná budete muset požádat o instanční objekt od operátora cloudu.You may need to request a service principal from your cloud operator.

    Zadejte následující rutiny pro vytvoření objektu zásad služby:Type the following cmdlets to create a service principle object:

    $passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force
    $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
    
  3. Připojte se k prostředí spuštěním následujícího skriptu s následujícími hodnotami z vaší instance centra Azure Stack.Connect to your environment by running the following script with the following values from your Azure Stack Hub instance.

    HodnotaValue PopisDescription
    Název prostředí.The name of the environment. Název prostředí centra Azure Stack.The name of your Azure Stack Hub environment.
    Správce prostředků koncový bodResource Manager Endpoint Adresa URL pro Správce prostředků.The URL for the Resource Manager. Pokud ho neznáte, obraťte se na svého operátora cloudu.Contact your cloud operator if you don't know it. Bude vypadat přibližně takto: https://management.region.domain.com.It will look something like https://management.region.domain.com.
    ID tenanta adresářeDirectory Tenant ID ID adresáře tenanta centra Azure Stack.The ID of your Azure Stack Hub tenant directory.
    Přihlašovací údajCredential Objekt, který obsahuje objekt služby.An object containing your service principal. V tomto případě $pscredential .In this case $pscredential.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    PowerShell vrátí váš objekt účtu.PowerShell returns your account object.

  4. Otestujte prostředí spuštěním Test-AzureStack.ps1 skriptu v kontejneru.Test your environment by running the Test-AzureStack.ps1 script in the container. Zadejte ID instančního objektu služby.Specify the service principal object ID. Pokud neurčíte ID objektu, skript bude stále spuštěn, ale bude pouze Testovat moduly klienta (uživatel) a selže v modulech, které vyžadují oprávnění správce.If you do not indicate the object ID, the script will still run but it will just test tenant (user) modules and fail on modules that require administrator privileges.

    ./Test-AzureStack.ps1 <Object ID>
    

Další krokyNext steps