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

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

Важно!

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

Теперь модуль "az PowerShell" является рекомендуемым модулем PowerShell для взаимодействия с Azure и концентратором Azure Stack. Чтобы приступить к работе с модулем AZ PowerShell, ознакомьтесь со статьей Установка модуля PowerShell AZ Preview для Azure Stack центра. Чтобы узнать, как выполнить миграцию на модуль AZ PowerShell. см. статью миграция с AzureRM на Azure PowerShell Az в центре Azure Stack. Дополнительные сведения о расширенных возможностях модулей 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 в контейнере DOCKER. Инструкции см. в статье Использование DOCKER для запуска PowerShell для Azure Stack Hub.

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

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

  • 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 Preview modules. Инструкции по установке модулей 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. Зарегистрируйте это расположение в качестве репозитория по умолчанию и установите Azure Resource Manager и AzureStack модули из этого репозитория:

    # 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 modules загружаются в одном сеансе:

    >  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. Или удалите Azure Resource Manager, если вы хотите использовать модули AZ. Закройте сеанс PowerShell и удалите либо модули AZ, либо Azure Resource Manager.

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

Ошибка, вызванная с НевазурермадсервицепринЦипал и Невазурермадаппликатион

  • Применимо: Azure Stack средах, использующих Azure Active Directory (Azure AD).

  • причина. 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 см. в статье Общие сведения о поставщиках удостоверений для центра Azure Stack.

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

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

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