Use Docker para executar PowerShell para Azure Stack HubUse Docker to run PowerShell for Azure Stack Hub

Neste artigo, pode utilizar o Docker para criar um recipiente para executar a versão do PowerShell que é necessária para trabalhar com as várias interfaces.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. Pode encontrar instruções para a utilização dos módulos AzureRM e dos módulos Az mais recentes.You can find instructions for using both AzureRM modules and the latest Az modules. O AzureRM requer um recipiente à base de Janelas.AzureRM requires a Windows-based container. Az usa um recipiente à base de Linux.Az uses a Linux-based container.

Pré-requisitos de DockerDocker prerequisites

Instalar o DockerInstall Docker

  1. Instale o Docker.Install Docker.

  2. Num programa de linha de comando, como PowerShell ou Bash, insira:In a command-line program, such as PowerShell or Bash, enter:

    docker --version
    

Crie um principal de serviço para a utilização do PowerShellSet up a service principal for using PowerShell

Para utilizar o PowerShell para aceder a recursos no Azure Stack Hub, precisa de um diretor de serviço no seu inquilino Azure Ative 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. Delega permissões com controlo de acesso baseado em funções do utilizador (RBAC).You delegate permissions with user role-based access control (RBAC). Poderá ter de solicitar o principal de serviço ao seu operador de nuvem.You may need to request the service principal from your cloud operator.

  1. Para configurar o seu principal serviço, siga as instruções em Dar às aplicações acesso aos recursos do Azure Stack Hub criando principais serviços.To set up your service principal, follow the instructions in Give applications access to Azure Stack Hub resources by creating service principals.

  2. Note a identificação da aplicação, o segredo, a identificação do seu inquilino, e a identificação do objeto para uso posterior.Note the application ID, the secret, your tenant ID, and object ID for later use.

Executar PowerShell em DockerRun PowerShell in Docker

Nestas instruções, irá executar uma imagem de recipiente à base de Linux que contém o PowerShell e os módulos necessários para o 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. Tens de executar o Docker usando o contentor Linux.You need to run Docker by using Linux container. Quando correres o Docker, muda para os contentores Linux.When you run Docker, switch to Linux containers.

  2. Executar Docker de uma máquina que se juntou ao mesmo domínio que Azure Stack Hub.Run Docker from a machine that's joined to the same domain as Azure Stack Hub. Se estiver a utilizar o Kit de Desenvolvimento da Pilha Azure (ASDK), tem de instalar a VPN na sua máquina remota.If you are using the Azure Stack Development Kit (ASDK), you need to install the VPN on your remote machine.

Instale o módulo Azure Stack Hub Az num recipiente LinuxInstall Azure Stack Hub Az module on a Linux container

  1. A partir da sua linha de comando, executar o seguinte comando Docker para executar PowerShell em um recipiente 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
    

    Podes dirigir Ubuntu, Debian ou Centos.You can run Ubuntu, Debian, or Centos. Pode encontrar os seguintes ficheiros Docker no repositório GitHub, azurestack-powershell.You can find the following Docker files in the GitHub repository, azurestack-powershell. Consulte o repositório do GitHub para obter as últimas alterações aos ficheiros do Docker.Refer to the GitHub repository for the latest changes to the Docker files. Cada so está marcado.Each OS is tagged. Substitua a etiqueta, a secção após o cólon, com a etiqueta para o SO desejado.Replace the tag, the section after the colon, with the tag for the desired OS.

    LinuxLinux Imagem do 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. A concha está pronta para os seus cmdlets.The shell is ready for your cmdlets. Teste a conectividade da sua concha insinuá-lo e, em seguida, executar Test-AzureStack.ps1 .Test your shell connectivity by signing in and then running Test-AzureStack.ps1.

    Primeiro, crie as suas principais credenciais de serviço.First, create your service principal credentials. Você vai precisar do iD secreto e de aplicação.You will need the secret and application ID. Também necessitará do ID do objeto quando executar o Test-AzureStack.ps1 para verificar o seu recipiente.You will also need the object ID when running the Test-AzureStack.ps1 to check your container. Poderá ter de solicitar um resmíso seu operador de nuvem.You may need to request a service principal from your cloud operator.

    Digite os seguintes cmdlets para criar um objeto de princípio de serviço: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. Conecte-se ao seu ambiente executando o seguinte script com os seguintes valores da sua instância Azure Stack Hub.Connect to your environment by running the following script with the following values from your Azure Stack Hub instance.

    ValorValue DescriçãoDescription
    O nome do ambiente.The name of the environment. O nome do seu ambiente Azure Stack Hub.The name of your Azure Stack Hub environment.
    Ponto final do Gestor de RecursosResource Manager Endpoint O URL para o Gestor de Recursos.The URL for the Resource Manager. Contacte o seu operador de nuvem se não souber.Contact your cloud operator if you don't know it. Terá um aspeto semelhante a https://management.region.domain.com.It will look something like https://management.region.domain.com.
    ID do inquilino do diretórioDirectory Tenant ID A identificação do seu diretório de inquilinos do Azure Stack Hub.The ID of your Azure Stack Hub tenant directory.
    CredencialCredential Um objeto contendo o seu principal de serviço.An object containing your service principal. Neste $pscredential caso.In this case $pscredential.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    PowerShell devolve o seu objeto de conta.PowerShell returns your account object.

  4. Teste o seu ambiente executando o Test-AzureStack.ps1 script no recipiente.Test your environment by running the Test-AzureStack.ps1 script in the container. Especificar o ID do objeto principal de serviço.Specify the service principal object ID. Se não indicar o ID do objeto, o script continuará a funcionar, mas apenas testará módulos de inquilino (utilizador) e falhará em módulos que requerem privilégios de administrador.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>
    

Passos seguintesNext steps