Use Docker para executar PowerShell para Azure Stack Hub

Neste artigo, pode utilizar o Docker para criar um recipiente para executar a versão do PowerShell que é necessária para trabalhar com as várias interfaces. Pode encontrar instruções para a utilização dos módulos AzureRM e dos módulos Az mais recentes. O AzureRM requer um recipiente à base de Windows. AZ usa um recipiente à base de Linux.

Pré-requisitos de Docker

Instalar o Docker

  1. Instale o Docker.

  2. Num programa de linha de comando, como PowerShell ou Bash, insira:

    docker --version
    

Crie um principal de serviço para a utilização do PowerShell

Para utilizar o PowerShell para aceder a recursos no Azure Stack Hub, precisa de um diretor de serviço no seu inquilino Azure Ative Directory (Azure AD). Delega permissões com controlo de acesso baseado em funções do utilizador (RBAC). Poderá ter de solicitar o principal de serviço ao seu operador de nuvem.

  1. Para configurar o seu principal serviço, siga as instruções em Dar às aplicações acesso aos recursos do Azure Stack Hub criando principais serviços.

  2. Note a identificação da aplicação, o segredo, a identificação do seu inquilino, e a identificação do objeto para uso posterior.

Executar PowerShell em Docker

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

  1. Tens de executar o Docker usando o contentor Linux. Quando correres o Docker, muda para os contentores Linux.

  2. Executar Docker de uma máquina que se juntou ao mesmo domínio que Azure Stack Hub. Se estiver a utilizar o Kit de Desenvolvimento da Pilha de Azure (ASDK), tem de instalar a VPN na sua máquina remota.

Instale o módulo Azure Stack Hub Az num recipiente Linux

  1. A partir da sua linha de comando, executar o seguinte comando Docker para executar PowerShell em um recipiente Ubuntu:

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

    Podes dirigir ubuntu, Debian ou Centos. Pode encontrar os seguintes ficheiros Docker no repositório GitHub, azurestack-powershell. Consulte o repositório GitHub para as últimas alterações aos ficheiros docker. Cada so está marcado. Substitua a etiqueta, a secção após o cólon, com a etiqueta para o SO 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. A concha está pronta para os seus cmdlets. Teste a conectividade da sua concha insinuá-lo e, em seguida, executar Test-AzureStack.ps1 .

    Primeiro, crie as suas principais credenciais de serviço. Você vai precisar do iD secreto e de aplicação. Também necessitará do ID do objeto ao executar o para verificar o seu recipiente. Poderá ter de solicitar um resmíso 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. Ligação para o seu ambiente executando o seguinte script com os seguintes valores da sua instância Azure Stack Hub.

    Valor Descrição
    O nome do ambiente. O nome do seu ambiente Azure Stack Hub.
    Ponto final do Gestor de Recursos O URL para o Gestor de Recursos. Contacte o seu operador de nuvem se não souber. Terá um aspeto semelhante a https://management.region.domain.com.
    ID do inquilino do diretório A identificação do seu diretório de inquilinos do Azure Stack Hub.
    Credencial Um objeto contendo o seu principal de serviço. Neste $pscredential caso.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    PowerShell devolve o seu objeto de conta.

  4. Teste o seu ambiente executando o Test-AzureStack.ps1 script no recipiente. Especificar o IDdo objeto principal de serviço. Se não indicar o ID do objeto, o script continuará a funcionar, mas apenas testará os módulos de inquilino (utilizador) e falhará em módulos que requerem privilégios de administrador.

    ./Test-AzureStack.ps1 <Object ID>
    

Passos seguintes