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

Cuidado

Este artigo faz referência ao CentOS, uma distribuição do Linux que está se aproximando do status de Fim da Vida Útil (EOL). Considere seu uso e plano adequadamente. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.

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 o PowerShell ou o 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 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 operador de nuvem.

  1. Para configurar sua entidade de serviço, siga as instruções em Fornecer acesso aos aplicativos 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 em um computador ingressado no mesmo domínio que o Azure Stack Hub. Se você estiver usando o ASDK (Azure Stack Development Kit), precisará instalar a VPN em seu computador remoto.

Instalar o módulo Az do 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 Ubuntu, Debian ou Centos. 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 marca, a seção após os dois-pontos, pela marca 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
    Centos docker run -it mcr.microsoft.com/azurestack/powershell:centos-7
  2. O shell está pronto para seus cmdlets. Teste a conectividade do shell entrando e executando Test-AzureStack.ps1.

    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 marcar seu contêiner. Talvez seja necessário solicitar uma entidade de serviço do 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 seu operador 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 ele 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