Partilhar via


Usar o Docker para executar o PowerShell para o Azure Stack Hub

Neste artigo, você pode usar o Docker para criar um contêiner no qual executar a versão do PowerShell necessária para trabalhar com as várias interfaces. Você pode encontrar instruções para usar os módulos do AzureRM e os módulos Az mais recentes. O AzureRM requer um contêiner baseado no Windows. Az usa um contêiner baseado em Linux.

Pré-requisitos do Docker

Instalar o Docker

  1. Instale o Docker.

  2. Em um programa de linha de comando, como PowerShell ou Bash, digite:

    docker --version
    

Configurar uma entidade de serviço para usar o PowerShell

Para usar o PowerShell para acessar recursos no Azure Stack Hub, você precisa de uma entidade de serviço em seu locatário do Microsoft Entra. Você delega permissões com controle de acesso baseado em função de usuário (RBAC). Poderá ter de solicitar a entidade de serviço ao seu operador de nuvem.

  1. Para configurar sua entidade de serviço, siga as instruções em Conceder aos aplicativos acesso aos recursos do Azure Stack Hub criando entidades de serviço.

  2. Anote a ID do aplicativo, o segredo, a ID do locatário e a ID do objeto para uso posterior.

Executar o PowerShell no Docker

Nestas instruções, você executará uma imagem de contêiner baseada em Linux que contém o PowerShell e os módulos necessários para o Azure Stack Hub.

  1. Você precisa executar o Docker usando o contêiner Linux. Ao executar o Docker, alterne para contêineres Linux.

  2. Execute o Docker a partir de uma máquina que tenha ingressado no mesmo domínio do Azure Stack Hub. Se você estiver usando o Azure Stack Development Kit (ASDK), instale a VPN em sua máquina remota.

Instalar o módulo Az do Azure Stack Hub em um contêiner Linux

  1. Na sua linha de comando, execute o seguinte comando do Docker para executar o PowerShell em um contêiner do Ubuntu:

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

    Você pode executar Ubuntu ou Debian. Você pode encontrar os seguintes arquivos do Docker no repositório GitHub, azurestack-powershell. Consulte o repositório GitHub para obter as alterações mais recentes nos arquivos do Docker. Cada sistema operacional é marcado. Substitua a tag , a seção após os dois pontos, pela tag para o sistema operacional desejado.

    Linux Imagem do Docker
    Ubuntu docker run -it mcr.microsoft.com/azurestack/powershell:ubuntu-18.04
    Debian docker run -it mcr.microsoft.com/azurestack/powershell:debian-9
  2. O shell está pronto para seus cmdlets. Teste a conectividade do shell entrando e executando Test-AzureStack.ps1o .

    Primeiro, crie suas credenciais da entidade de serviço. Você precisará do segredo e do ID do aplicativo. Você também precisará do ID do objeto ao executar o Test-AzureStack.ps1 para verificar seu contêiner. Poderá ter de solicitar uma entidade de serviço ao seu operador de nuvem.

    Digite os seguintes cmdlets para criar um objeto de princípio de serviço:

    $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 do Azure Stack Hub.

    valor Description
    O nome do ambiente. O nome do seu ambiente do Azure Stack Hub.
    Ponto de extremidade do Resource Manager A URL do Gerenciador de Recursos. Contacte o seu operador de nuvem se não souber. Terá um aspeto semelhante a https://management.region.domain.com.
    ID do locatário do diretório A ID do diretório de locatário do Azure Stack Hub.
    Credencial Um objeto que contém sua entidade de serviço. Neste caso $pscredential.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    O PowerShell retorna seu objeto de conta.

  4. Teste seu ambiente executando o Test-AzureStack.ps1 script no contêiner. Especifique a ID do objeto principal do serviço. Se você não indicar o ID do objeto, o script ainda será executado, mas apenas testará módulos de locatário (usuário) e falhará em módulos que exigem privilégios de administrador.

    ./Test-AzureStack.ps1 <Object ID>
    

Próximos passos