Compartilhar via


Usar o Docker para executar o PowerShell para 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. O 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, insira:

    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) do usuário. Talvez seja necessário solicitar a entidade de serviço do 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. Observe 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 do Linux. Ao executar o Docker, alterne para contêineres do Linux.

  2. Execute o Docker de um computador ingressado no mesmo domínio que o Azure Stack Hub. Se você estiver usando o ASDK (Azure Stack Development Kit), instale a VPN em seu computador remoto.

Instalar o módulo Az do Azure Stack Hub em um contêiner do 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 o 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 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 fazendo login e executando Test-AzureStack.ps1o .

    Primeiro, crie suas credenciais de entidade de serviço. Você precisará do segredo e da ID do aplicativo. Você também precisará da ID do objeto ao executar o Test-AzureStack.ps1 para verificar seu contêiner. Talvez seja necessário solicitar uma entidade de serviço do 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 script a seguir com os seguintes valores da instância do Azure Stack Hub.

    Valor Descrição
    O nome do ambiente. O nome do ambiente do Azure Stack Hub.
    Ponto de Extremidade do Resource Manager A URL do Resource Manager. 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 sua 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á os módulos do locatário (usuário) e falhará nos módulos que exigem privilégios de administrador.

    ./Test-AzureStack.ps1 <Object ID>
    

Próximas etapas