Use 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 Windows baseado em dados. 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 Azure Active Directory (Azure AD). 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 do operador de nuvem.

  1. Para configurar sua entidade de serviço, siga as instruções em Dar aos aplicativos acesso Azure Stack Hub recursos 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 Azure Stack Hub.

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

  2. Execute o Docker em um computador que ingressou no mesmo domínio que Azure Stack Hub. Se você estiver usando o Kit de Desenvolvimento do Azure Stack (ASDK), precisará instalar a VPN no computador remoto.

Instalar Azure Stack Hub módulo Az 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, o Debian ou o Centos. Você pode encontrar os seguintes arquivos do Docker no repositório GitHub, azurestack-powershell. Consulte o repositório GitHub para ver 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 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
    Centos docker run -it mcr.microsoft.com/azurestack/powershell:centos-7
  2. O shell está pronto para seus cmdlets. Teste a conectividade do shell conectando-se e, em seguida, 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 para verificar o 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. Conexão ao seu ambiente executando o script a seguir com os seguintes valores de sua Azure Stack Hub instância.

    Valor Descrição
    O nome do ambiente. O nome do seu Azure Stack Hub ambiente.
    Ponto de Extremidade do Resource Manager A URL do Resource Manager. Entre em contato com seu operador de nuvem se você não o conhecer. Será semelhante a https://management.region.domain.com.
    ID do locatário do diretório A ID do seu diretório Azure Stack Hub locatário.
    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 o objeto de conta.

  4. Teste seu ambiente executando Test-AzureStack.ps1 o 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