Установка модуля PowerShell AzureRM для Azure Stack Hub

Azure PowerShell Azure Resource Manager (AzureRM) предоставляет набор командлетов, использующих модель Resource Manager Azure для управления ресурсами Azure Stack Hub.

Важно!

Вы попали на веб-страницу устаревшей версии PowerShell для Azure Stack Hub. Все версии модуля PowerShell azure Resource Manager (AzureRM) устарели и не поддерживаются. Модули AzureRM не будут обновляться в будущих сборках Azure Stack Hub. Модули Az необходимо использовать для сборок 2002 и более поздних версий. Профиль 2020-09-01-hybrid не поддерживается для модулей AzureRM.

Модуль Az PowerShell теперь является рекомендуемым модулем PowerShell для взаимодействия с Azure и Azure Stack Hub. Чтобы приступить к работе с модулем Az PowerShell, см. статью Установка предварительной версии модуля Az PowerShell для Azure Stack Hub. Сведения о том, как перейти на использование модуля Az PowerShell, см. в статье Миграция с AzureRM на Azure PowerShell Az в Azure Stack Hub. Дополнительные сведения о расширенных функциональных возможностях модулей Az, которые были внедрены во всей среде Azure, см. в статье Знакомство с модулем Azure Az PowerShell.

Кроме того, необходимо использовать профили API, чтобы указать совместимые конечные точки для поставщиков ресурсов Azure Stack Hub.

Профили API позволяют управлять различиями между версиями Azure и Azure Stack Hub. Профиль версии API — это набор модулей Azure Resource Manager PowerShell с определенными версиями API. Каждая облачная платформа имеет набор поддерживаемых профилей версий API. К примеру, Azure Stack Hub поддерживает определенную версию профиля, например 2019-03-01-hybrid. При установке профиля устанавливается набор модулей Azure Resource Manager PowerShell, которые соответствуют выбранному профилю.

Вы можете установить совместимые модули PowerShell для Azure Stack Hub в сценарии с полноценным, частичным и отсутствующим подключением к Интернету. В этой статье рассматриваются подробные инструкции для этих сценариев.

Вы также можете запустить модули Azure Resource Manager для Azure Stack Hub в контейнере Docker. Инструкции см. в статье Использование Docker для запуска PowerShell для Azure Stack Hub.

1. Проверка необходимых компонентов

Прежде чем приступить к работе с Azure Stack Hub и модулем Azure Resource Manager PowerShell, необходимо выполнить следующие предварительные требования.

  • PowerShell версии 5.1.
    Чтобы проверить используемую версию, выполните команду $PSVersionTable.PSVersion и сравните номер основной версии. Если у вас нет PowerShell 5.1, следуйте инструкциям из раздела Обновление существующей версии Windows PowerShell.

    Примечание

    Для PowerShell 5.1 требуется компьютер с ОС Windows.

  • Откройте командную строку PowerShell с повышенными правами.

  • Доступ к коллекции PowerShell
    Необходим доступ к коллекции PowerShell. Коллекция является центральным репозиторием содержимого PowerShell. Модуль PowerShellGet содержит командлеты для обнаружения, установки, обновления и публикации артефактов PowerShell. Примерами таких артефактов являются модули, ресурсы DSC, возможности ролей и сценарии из коллекция PowerShell и других частных репозиториев. Если PowerShell используется в ситуации, когда подключение к Интернету отсутствует, необходимо извлечь ресурсы с компьютера с подключением к Интернету и сохранить их в доступном расположении на компьютере, не подключенном к Интернету.

Проверьте, зарегистрирована ли коллекция PSGallery в качестве репозитория.

Примечание

На этом шаге необходим доступ к Интернету.

Откройте командную строку PowerShell с повышенными привилегиями и выполните следующие командлеты:

Install-module -Name PowerShellGet -Force
Import-Module -Name PackageManagement -ErrorAction Stop
Get-PSRepository -Name "PSGallery"

Если репозиторий не зарегистрирован, откройте сеанс Windows PowerShell с повышенными привилегиями и выполните в нем следующую команду.

Register-PSRepository -Default
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted

3. Удаление существующих версий модулей PowerShell для Azure Stack Hub

Перед установкой необходимой версии убедитесь, что вы удалили все ранее установленные модули Azure Stack Hub Azure Resource Manager PowerShell. Удалите модули с помощью одного из следующих двух способов.

  1. Чтобы удалить существующие модули Azure Resource Manager и Az PowerShell, закройте все активные сеансы PowerShell и выполните следующие командлеты:

    Get-Module -Name Azure* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    Get-Module -Name Azs.* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    Get-Module -Name Az.* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    

    Если возникает ошибка, например The module is already in use (Модуль уже используется), закройте сеансы PowerShell, которые используют модули, и повторно запустите приведенный выше скрипт.

  2. Удалите все папки, имена которых начинаются с Azure, Az или Azs., из папок C:\Program Files\WindowsPowerShell\Modules и C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules. При удалении этих папок удаляются все установленные модули PowerShell.

4. С подключением. Установка PowerShell для Azure Stack Hub с подключением к Интернету

Требуемый профиль версии API и модули PowerShell Azure Stack Hub будут зависеть от выполняемой версии Azure Stack Hub.

Установка PowerShell для Azure Stack Hub

Выполните следующий скрипт PowerShell, чтобы установить эти модули на рабочей станции разработки:

Для Azure Stack Hub 2002 и более поздних версий:

Вы можете использовать модули AzureRM или модули Az предварительной версии. Для использования модулей Az требуется Azure Stack Hub 2002 или более поздней версии.

Чтобы использовать предварительные версии модулей Az, следуйте инструкциям по установке модуля PowerShell Az.

# Install the AzureRM.BootStrapper module. Select Yes when prompted to install NuGet
Install-Module -Name AzureRM.BootStrapper

# Install and import the API Version Profile required by Azure Stack Hub into the current PowerShell session.
Use-AzureRmProfile -Profile 2019-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.8.3 

Для Azure Stack Hub версии 1910:

# Install the AzureRM.BootStrapper module. Select Yes when prompted to install NuGet
Install-Module -Name AzureRM.BootStrapper

# Install and import the API Version Profile required by Azure Stack Hub into the current PowerShell session.
Use-AzureRmProfile -Profile 2019-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.8.0

Примечание

  • Модуль Azure Stack Hub версии 1.8.0 является выпуском с критическим изменением. Дополнительные сведения см. в заметках о выпуске.

Для Azure Stack Hub 1908 и более ранних версий:

# Install the AzureRM.BootStrapper module. Select Yes when prompted to install NuGet
Install-Module -Name AzureRM.BootStrapper

# Install and import the API Version Profile required by Azure Stack Hub into the current PowerShell session.
Use-AzureRmProfile -Profile 2019-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.7.2

Примечание

Модуль Azure Stack Hub версии 1.7.2 является выпуском с критическим изменением. Чтобы выполнить миграцию с Azure Stack Hub 1.6.0, обратитесь к руководству по миграции.

Подтверждение установки PowerShell

Подтвердите установку, выполнив следующую команду:

Get-Module -Name "Azure*" -ListAvailable
Get-Module -Name "Azs*" -ListAvailable

Если установка выполнена успешно, в выходных данных указываются модули AzureRm и AzureStack.

5. Без подключения. Установка PowerShell без подключения к Интернету

При установке без подключения к Интернету следует сначала скачать модули PowerShell на компьютер, подключенный к Интернету. Затем их нужно перенести в Пакет средств разработки Azure Stack (ASDK) для установки.

Войдите на компьютер с подключением к Интернету и, в зависимости от используемой версии Azure Stack Hub, выполните следующие сценарии для скачивания пакетов Azure Resource Manager и Azure Stack Hub.

Установка состоит из пяти шагов:

  1. Установка PowerShell для Azure Stack Hub на компьютер с подключением к Интернету.
  2. Включение дополнительных возможностей хранилища.
  3. Передача пакетов PowerShell на рабочую станцию без подключения к Интернету.
  4. Начальная загрузка поставщика NuGet, выполняемая вручную на отключенной рабочей станции
  5. Подтверждение установки PowerShell.

Установка PowerShell для Azure Stack Hub

Azure Stack Hub 2002 и более поздних версий.

Можно использовать модули Azure Resource Manager или Предварительные версии Az. Инструкции по установке модулей PowerShell Az см. в этой статье.


Install-module -Name PowerShellGet -Force 
Import-Module -Name PackageManagement -ErrorAction Stop

$Path = "<Path that is used to save the packages>"
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.8.3

Azure Stack Hub версии 1910.

Install-module -Name PowerShellGet -Force 
Import-Module -Name PackageManagement -ErrorAction Stop

$Path = "<Path that is used to save the packages>"
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.8.0

Примечание

Модуль Azure Stack Hub версии 1.8.0 является выпуском с критическим изменением. Дополнительные сведения см. в заметках о выпуске.

Для Azure Stack Hub 1908 и более ранних версий:

Install-module -Name PowerShellGet -Force 
Import-Module -Name PackageManagement -ErrorAction Stop

$Path = "<Path that is used to save the packages>"
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.7.2

Примечание

Модуль Azure Stack Hub версии 1.7.1 является критическим изменением. Чтобы выполнить миграцию с Azure Stack Hub 1.6.0, обратитесь к руководству по миграции.

Примечание

На компьютерах без подключения к Интернету советуем выполнить приведенный ниже командлет для отключения сбора данных телеметрии. Без выключения сбора данных телеметрии может произойти снижение производительности командлетов. Это относится только к компьютерам без подключения к Интернету.

Disable-AzureRmDataCollection

Добавление пакетов на рабочую станцию

  1. Скопируйте скачанные пакеты на USB-устройство.

  2. Войдите на отключенную рабочую станцию и скопируйте пакеты с USB-устройства в нужное расположение на ней.

  3. Начальная загрузка поставщика NuGet, выполняемая вручную на отключенной рабочей станции Инструкции см. в разделе Ручной режим начальной загрузки поставщика NuGet на автономный компьютер.

  4. Зарегистрируйте это расположение в качестве репозитория по умолчанию и установите Resource Manager и AzureStack модули Azure из этого репозитория:

    # requires -Version 5
    # requires -RunAsAdministrator
    # requires -Module PowerShellGet
    # requires -Module PackageManagement
    
    $SourceLocation = "<Location on the development kit that contains the PowerShell packages>"
    $RepoName = "MyNuGetSource"
    
    Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted
    
    Install-Module -Name AzureRM -Repository $RepoName
    
    Install-Module -Name AzureStack -Repository $RepoName
    

Подтверждение установки PowerShell

Подтвердите установку, выполнив следующую команду:

Get-Module -Name "Azure*" -ListAvailable
Get-Module -Name "Azs*" -ListAvailable

6. Настройка PowerShell для использования прокси-сервера

Если для доступа к Интернету требуется прокси-сервер, необходимо сначала настроить PowerShell для использования имеющегося прокси-сервера.

  1. Откройте командную строку PowerShell с повышенными привилегиями.

  2. Выполните следующие команды:

    #To use Windows credentials for proxy authentication
    [System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
    
    #Alternatively, to prompt for separate credentials that can be used for #proxy authentication
    [System.Net.WebRequest]::DefaultWebProxy.Credentials = Get-Credential
    

Известная проблема

Ошибка метода get_SerializationSettings

  • Причина. Модули PowerShell Az и PowerShell Azure Resource Manager несовместимы.

    Следующая ошибка указывает на то, что модули Azure Resource Manager и az загружаются в одном сеансе:

    >  Method 'get_SerializationSettings' in type 'Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient' from assembly 'Microsoft.Azure.Commands.ResourceManager.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does 
    not have an implementation.
    
  • Исправление. Удалите конфликтующие модули.

    Если вы хотите использовать модули Azure Resource Manager, удалите модули Az. Если вы хотите использовать модули Az, удалите Resource Manager Azure. Закройте сеанс PowerShell и удалите модули Az или Azure Resource Manager.

    См. инструкции в разделе Удаление существующих версий модулей PowerShell для Azure Stack Hub.

Ошибка, возникаемая при использовании Командлета NewAzureRMADServicePrincipal и NewAzureRMAdApplication

  • Применимо: среды Azure Stack, использующие Microsoft Entra ID.

  • Причина. В Azure Active Directory Graph появилось критическое изменение, ограничивающее IdentifierUri для приложений Active Directory поддомены проверенного домена в каталоге. До изменения это ограничение применялось только для мультитенантных приложений. Теперь это ограничение применяется и к приложениям с одним клиентом. Изменение приведет к следующей ошибке: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running.

  • Исправление. Обойти это ограничение можно двумя способами.

    • Необходимо использовать имя субъекта-службы, которое является поддоменом клиента каталога. Например, если каталог имеет значение contoso.onmicrosoft.com, имя субъекта-службы должно иметь вид <foo>.contoso.onmicrosoft.com. Выполните следующий командлет:

      NewAzureRMADServicePrincipal -Role Owner -DisplayName <foo>.contoso.onmicrosoft.com
      

      Дополнительные сведения об удостоверении и использовании субъектов-служб с Azure Stack Hub см. в статье Общие сведения о поставщиках удостоверений для Azure Stack Hub.

    • Создайте приложение Microsoft Entra, указав допустимоеIdentifierUri, а затем создайте субъект-службу, связыв его с помощью следующего командлета:

      $app=NewAzureRMAdApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      NewAzureRMADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • Периодичность. Распространенные

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