Использование DOCKER для запуска PowerShell для концентратора Azure StackUse Docker to run PowerShell for Azure Stack Hub

В этой статье вы можете использовать DOCKER для создания контейнера, в котором будет выполняться версия PowerShell, необходимая для работы с различными интерфейсами.In this article, you can use Docker to create a container on which to run the version of PowerShell that's required for working with the various interfaces. Вы можете найти инструкции по использованию обоих модулей AzureRM и последних модулей AZ.You can find instructions for using both AzureRM modules and the latest Az modules. Для AzureRM требуется контейнер на основе Windows.AzureRM requires a Windows-based container. AZ использует контейнер на основе Linux.Az uses a Linux-based container.

Предварительные требования DockerDocker prerequisites

Установка DockerInstall Docker

  1. Установите DOCKER.Install Docker.

  2. В программе командной строки, такой как PowerShell или bash, введите:In a command-line program, such as PowerShell or Bash, enter:

    docker --version
    

Создание субъекта-службы для использования PowerShellSet up a service principal for using PowerShell

Чтобы с помощью PowerShell получить доступ к ресурсам в Azure Stack Hub, в клиенте Azure Active Directory (Azure AD) нужно создать субъекта-службу.To use PowerShell to access resources in Azure Stack Hub, you need a service principal in your Azure Active Directory (Azure AD) tenant. Вы можете делегировать разрешения с помощью управления доступом на основе ролей пользователей.You delegate permissions with user role-based access control (RBAC). Возможно, потребуется запросить субъект-службу от вашего оператора облака.You may need to request the service principal from your cloud operator.

  1. См. подробнее о предоставлении приложениям доступа к ресурсам Azure Stack Hub путем создания субъектов-служб.To set up your service principal, follow the instructions in Give applications access to Azure Stack Hub resources by creating service principals.

  2. Запишите идентификатор приложения, секрет, идентификатор клиента и идентификатор объекта для последующего использования.Note the application ID, the secret, your tenant ID, and object ID for later use.

Запуск PowerShell в DOCKERRun PowerShell in Docker

В этих инструкциях будет запущен образ контейнера на основе Linux, содержащий PowerShell и необходимые модули для центра Azure Stack.In these instructions, you will run a Linux-based container image that contains the PowerShell and the required modules for Azure Stack Hub.

  1. Вы должны запустить DOCKER с помощью контейнера Linux.You need to run Docker by using Linux container. При запуске DOCKER переключитесь на контейнеры Linux.When you run Docker, switch to Linux containers.

  2. Запустите Docker с компьютера, присоединенного к тому же домену, что и Azure Stack Hub.Run Docker from a machine that's joined to the same domain as Azure Stack Hub. Если вы используете Пакет средств разработки Azure Stack, установите VPN на удаленном компьютере.If you are using the Azure Stack Development Kit (ASDK), you need to install the VPN on your remote machine.

Установка центра Azure Stack AZ Module в контейнере LinuxInstall Azure Stack Hub Az module on a Linux container

  1. В командной строке выполните следующую команду DOCKER, чтобы запустить PowerShell в контейнере Ubuntu:From your command line, run the following Docker command to run PowerShell in an Ubuntu container:

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

    Можно использовать Ubuntu, Debian или CentOS.You can run Ubuntu, Debian, or Centos. Следующие файлы DOCKER можно найти в репозитории GitHub azurestack-PowerShell.You can find the following Docker files in the GitHub repository, azurestack-powershell. Последние изменения в файлах DOCKER см. в репозитории GitHub.Refer to the GitHub repository for the latest changes to the Docker files. Каждая ОС помечается тегами.Each OS is tagged. Замените тег, раздел после двоеточия, на тег нужной ОС.Replace the tag, the section after the colon, with the tag for the desired OS.

    LinuxLinux Образ DockerDocker image
    UbuntuUbuntu docker run -it mcr.microsoft.com/azurestack/powershell:ubuntu-18.04
    DebianDebian docker run -it mcr.microsoft.com/azurestack/powershell:debian-9
    CentOSCentos docker run -it mcr.microsoft.com/azurestack/powershell:centos-7
  2. Оболочка готова для командлетов.The shell is ready for your cmdlets. Проверьте подключение к оболочке, войдя в систему и выполнив команду Test-AzureStack.ps1 .Test your shell connectivity by signing in and then running Test-AzureStack.ps1.

    Сначала создайте учетные данные субъекта-службы.First, create your service principal credentials. Вам потребуется секрет и идентификатор приложения.You will need the secret and application ID. Вам также потребуется идентификатор объекта при запуске Test-AzureStack.ps1 для проверки контейнера.You will also need the object ID when running the Test-AzureStack.ps1 to check your container. Может потребоваться запросить субъект-службу у оператора облака.You may need to request a service principal from your cloud operator.

    Введите следующие командлеты, чтобы создать объект участника службы:Type the following cmdlets to create a service principle object:

    $passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force
    $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
    
  3. Подключитесь к своей среде, выполнив следующий скрипт со следующими значениями из экземпляра концентратора Azure Stack.Connect to your environment by running the following script with the following values from your Azure Stack Hub instance.

    ЗначениеValue ОписаниеDescription
    Имя среды.The name of the environment. Имя среды центра Azure Stack.The name of your Azure Stack Hub environment.
    Конечная точка Resource ManagerResource Manager Endpoint URL-адрес для диспетчер ресурсов.The URL for the Resource Manager. Если вы не уверены, обратитесь к оператору облака.Contact your cloud operator if you don't know it. Он должен иметь примерно следующий вид: https://management.region.domain.com.It will look something like https://management.region.domain.com.
    Идентификатор клиента каталогаDirectory Tenant ID Идентификатор каталога клиента центра Azure Stack.The ID of your Azure Stack Hub tenant directory.
    Учетные данныеCredential Объект, содержащий субъект-службу.An object containing your service principal. В этом случае $pscredential .In this case $pscredential.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    PowerShell возвращает объект учетной записи.PowerShell returns your account object.

  4. Протестируйте среду, запустив Test-AzureStack.ps1 скрипт в контейнере.Test your environment by running the Test-AzureStack.ps1 script in the container. Укажите идентификатор объекта субъекта-службы.Specify the service principal object ID. Если идентификатор объекта не указан, сценарий по-прежнему будет выполняться, но он просто проверит модули клиента (пользователя) и завершит работу модулей, для которых требуются права администратора.If you do not indicate the object ID, the script will still run but it will just test tenant (user) modules and fail on modules that require administrator privileges.

    ./Test-AzureStack.ps1 <Object ID>
    

Дальнейшие действияNext steps