Uruchamianie programu PowerShell dla centrum Azure Stack przy użyciu platformy DockerUse Docker to run PowerShell for Azure Stack Hub

W tym artykule można użyć platformy Docker do utworzenia kontenera, na którym będzie uruchamiana wersja programu PowerShell, która jest wymagana do pracy z różnymi interfejsami.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. Możesz znaleźć instrukcje dotyczące używania zarówno modułów AzureRM, jak i najnowszych modułów AZ modules.You can find instructions for using both AzureRM modules and the latest Az modules. AzureRM wymaga kontenera opartego na systemie Windows.AzureRM requires a Windows-based container. AZ używa kontenera opartego na systemie Linux.Az uses a Linux-based container.

Wymagania wstępne dotyczące platformy DockerDocker prerequisites

Zainstaluj platformę DockerInstall Docker

  1. Zainstaluj platformę Docker.Install Docker.

  2. W programie wiersza polecenia, takim jak PowerShell lub bash, wprowadź:In a command-line program, such as PowerShell or Bash, enter:

    docker --version
    

Konfigurowanie jednostki usługi do korzystania z programu PowerShellSet up a service principal for using PowerShell

Aby można było korzystać z programu PowerShell w celu uzyskiwania dostępu do zasobów w centrum Azure Stack, potrzebna jest jednostka usługi w dzierżawie 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. Użytkownik delegowany uprawnienia za pomocą kontroli dostępu opartej na rolach (RBAC).You delegate permissions with user role-based access control (RBAC). Może być konieczne zażądanie jednostki usługi od operatora chmury.You may need to request the service principal from your cloud operator.

  1. Aby skonfigurować nazwę główną usługi, postępuj zgodnie z instrukcjami w temacie zapewnianie aplikacjom dostępu do zasobów centrum Azure Stack przez tworzenie jednostek usługi.To set up your service principal, follow the instructions in Give applications access to Azure Stack Hub resources by creating service principals.

  2. Zanotuj identyfikator aplikacji, wpis tajny, identyfikator dzierżawy i identyfikator obiektu do późniejszego użycia.Note the application ID, the secret, your tenant ID, and object ID for later use.

Uruchamianie programu PowerShell w platformie DockerRun PowerShell in Docker

W tych instrukcjach zostanie uruchomiony obraz kontenera oparty na systemie Linux, który zawiera program PowerShell i wymagane moduły dla 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. Musisz uruchomić platformę Docker, używając kontenera systemu Linux.You need to run Docker by using Linux container. Po uruchomieniu platformy Docker przejdź do kontenerów systemu Linux.When you run Docker, switch to Linux containers.

  2. Uruchom platformę Docker z komputera, który jest przyłączony do tej samej domeny co Azure Stack Hub.Run Docker from a machine that's joined to the same domain as Azure Stack Hub. Jeśli używasz Azure Stack Development Kit (ASDK), musisz zainstalować Sieć VPN na komputerze zdalnym.If you are using the Azure Stack Development Kit (ASDK), you need to install the VPN on your remote machine.

Zainstaluj Azure Stack centrum AZ module w kontenerze systemu LinuxInstall Azure Stack Hub Az module on a Linux container

  1. W wierszu polecenia Uruchom następujące polecenie Docker, aby uruchomić program PowerShell w kontenerze 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
    

    Można uruchomić Ubuntu, Debian lub CentOS.You can run Ubuntu, Debian, or Centos. Następujące pliki platformy Docker można znaleźć w repozytorium GitHub, azurestack-PowerShell.You can find the following Docker files in the GitHub repository, azurestack-powershell. Zapoznaj się z repozytorium GitHub, aby uzyskać najnowsze zmiany plików platformy Docker.Refer to the GitHub repository for the latest changes to the Docker files. Każdy system operacyjny jest oznakowany.Each OS is tagged. Zastąp tag, sekcję po dwukropku, znacznikiem dla żądanego systemu operacyjnego.Replace the tag, the section after the colon, with the tag for the desired OS.

    LinuxLinux Obraz platformy DockerDocker 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. Powłoka jest gotowa dla poleceń cmdlet.The shell is ready for your cmdlets. Przetestuj połączenie powłoki, logując się, a następnie uruchamiając polecenie Test-AzureStack.ps1 .Test your shell connectivity by signing in and then running Test-AzureStack.ps1.

    Najpierw utwórz poświadczenia nazwy głównej usługi.First, create your service principal credentials. Będziesz potrzebować wpisu tajnego i identyfikatora aplikacji.You will need the secret and application ID. W celu sprawdzenia kontenera wymagany jest również Identyfikator obiektu Test-AzureStack.ps1 .You will also need the object ID when running the Test-AzureStack.ps1 to check your container. Może być konieczne zażądanie jednostki usługi od operatora chmury.You may need to request a service principal from your cloud operator.

    Wpisz następujące polecenia cmdlet, aby utworzyć obiekt zasad usługi: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. Połącz się ze środowiskiem, uruchamiając następujący skrypt z następującymi wartościami z wystąpienia centrum Azure Stack.Connect to your environment by running the following script with the following values from your Azure Stack Hub instance.

    WartośćValue OpisDescription
    Nazwa środowiska.The name of the environment. Nazwa środowiska centrum Azure Stack.The name of your Azure Stack Hub environment.
    Menedżer zasobów punkt końcowyResource Manager Endpoint Adres URL Menedżer zasobów.The URL for the Resource Manager. Skontaktuj się z operatorem chmury, jeśli go nie znasz.Contact your cloud operator if you don't know it. Będzie on wyglądał mniej więcej tak: https://management.region.domain.com.It will look something like https://management.region.domain.com.
    Identyfikator dzierżawy kataloguDirectory Tenant ID Identyfikator katalogu dzierżawy centrum Azure Stack.The ID of your Azure Stack Hub tenant directory.
    PoświadczenieCredential Obiekt zawierający nazwę główną usługi.An object containing your service principal. W tym przypadku $pscredential .In this case $pscredential.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    Program PowerShell zwraca obiekt Twojego konta.PowerShell returns your account object.

  4. Przetestuj środowisko, uruchamiając Test-AzureStack.ps1 skrypt w kontenerze.Test your environment by running the Test-AzureStack.ps1 script in the container. Określ Identyfikator obiektu jednostki usługi.Specify the service principal object ID. Jeśli nie podasz identyfikatora obiektu, skrypt nadal będzie działać, ale tylko przetestuje moduły dzierżawy (użytkownika) i zakończy się niepowodzeniem w modułach, które wymagają uprawnień administratora.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>
    

Następne krokiNext steps