Compartilhar via


Usar o Docker para executar o PowerShell para o Hub de Pilha do Azure

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 o RBAC (controle de acesso baseado em função de usuário). Talvez seja necessário solicitar a entidade de serviço à sua operadora 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 ingressou no mesmo domínio que o Hub de Pilha do Azure. Se você estiver usando o Azure Stack Development Kit (ASDK), precisará instalar a VPN em sua máquina remota.

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

  1. Na 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 o Ubuntu ou Debian. Você pode encontrar os seguintes arquivos do Docker no repositório do GitHub, azurestack-powershell. Consulte o repositório do 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 do 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 de 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. Talvez seja necessário solicitar uma entidade de serviço à sua operadora 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 script a seguir com os seguintes valores da instância do Azure Stack Hub.

    Valor Descrição
    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. Entre em contato com sua operadora de nuvem se você não souber. Será 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 a entidade de serviço. Nesse 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 da entidade de serviço. Se você não indicar a 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óximas etapas