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

Atenção

Este artigo faz referência ao CentOS, uma distribuição do Linux que se aproxima do estado End Of Life (EOL). Considere a sua utilização e o seu plano em conformidade. Para obter mais informações, veja a documentação de orientação Sobre o Fim de Vida do CentOS.

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

Pré-requisitos do Docker

Instalar o Docker

  1. Instale o Docker.

  2. Num programa de linha de comandos, como o PowerShell ou o Bash, introduza:

    docker --version
    

Configurar um principal de serviço para utilizar o PowerShell

Para utilizar o PowerShell para aceder a recursos no Azure Stack Hub, precisa de um principal de serviço no seu inquilino Microsoft Entra. Delega permissões com o controlo de acesso baseado em funções do utilizador (RBAC). Poderá ter de pedir o principal de serviço ao operador da cloud.

  1. Para configurar o principal de serviço, siga as instruções em Dar acesso às aplicações aos recursos do Azure Stack Hub através da criação de principais de serviço.

  2. Repare no ID da aplicação, no segredo, no ID do inquilino e no ID do objeto para utilização posterior.

Executar o PowerShell no Docker

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

  1. Tem de executar o Docker com o contentor linux. Quando executar o Docker, mude para contentores do Linux.

  2. Execute o Docker a partir de um computador associado ao mesmo domínio que o Azure Stack Hub. Se estiver a utilizar o Azure Stack Development Kit (ASDK), tem de instalar a VPN no seu computador remoto.

Instalar o módulo Az do Azure Stack Hub num contentor do Linux

  1. Na linha de comandos, execute o seguinte comando do Docker para executar o PowerShell num contentor do Ubuntu:

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

    Pode executar Ubuntu, Debian ou Centos. Pode encontrar os seguintes ficheiros do Docker no repositório do GitHub, azurestack-powershell. Veja o repositório do GitHub para obter as alterações mais recentes aos ficheiros do Docker. Cada SO está etiquetado. Substitua a etiqueta, a secção após os dois pontos, pela etiqueta para o SO pretendido.

    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. A shell está pronta para os cmdlets. Teste a conectividade da shell ao iniciar sessão e, em seguida, executar Test-AzureStack.ps1.

    Primeiro, crie as credenciais do principal de serviço. Precisará do segredo e do ID da aplicação. Também precisará do ID do objeto ao executar o para verificar o Test-AzureStack.ps1 contentor. Poderá ter de pedir um principal de serviço ao operador da cloud.

    Escreva 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. Ligue-se ao seu ambiente ao executar o seguinte script 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 Final do Resource Manager O URL do Resource Manager. Se não souber, contacte o operador da cloud. Terá um aspeto semelhante a https://management.region.domain.com.
    ID do Inquilino do Diretório O ID do diretório de inquilinos do Azure Stack Hub.
    Credencial Um objeto que contém o principal de serviço. Neste caso $pscredential, .
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    O PowerShell devolve o objeto da sua conta.

  4. Teste o seu ambiente ao executar o Test-AzureStack.ps1 script no contentor. Especifique o ID do objeto do principal de serviço. Se não indicar o ID do objeto, o script continuará a ser executado, mas apenas testará os módulos de inquilino (utilizador) e falhará nos módulos que necessitam de privilégios de administrador.

    ./Test-AzureStack.ps1 <Object ID>
    

Passos seguintes