Установка модуля PowerShell AzureRM для Azure Stack Hub
Azure PowerShell Azure Resource Manager (AzureRM) предоставляет набор командлетов, использующих модель Azure Resource Manager для управления ресурсами 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 используется в ситуации, когда подключение к Интернету отсутствует, необходимо извлечь ресурсы с компьютера с подключением к Интернету и сохранить их в доступном расположении на компьютере, не подключенном к Интернету.
2. Проверка специальных возможностей коллекция 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. Удаление существующих версий модулей Azure Stack Hub PowerShell
Прежде чем устанавливать требуемую версию, удалите все ранее установленные модули Azure Stack Hub Azure Resource Manager PowerShell. Удалите модули с помощью одного из следующих двух способов.
Чтобы удалить существующие модули 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, которые используют модули, и повторно запустите приведенный выше скрипт.
Удалите все папки, имена которых начинаются с
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.
Установка состоит из пяти шагов:
- Установка PowerShell для Azure Stack Hub на компьютер с подключением к Интернету.
- Включение дополнительных возможностей хранилища.
- Передача пакетов PowerShell на рабочую станцию без подключения к Интернету.
- Начальная загрузка поставщика NuGet, выполняемая вручную на отключенной рабочей станции
- Подтверждение установки PowerShell.
Установка PowerShell для Azure Stack Hub
Azure Stack Hub 2002 и более поздних версий.
Вы можете использовать модули Azure Resource Manager или Az preview. Инструкции по установке модулей 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
Добавление пакетов на рабочую станцию
Скопируйте скачанные пакеты на USB-устройство.
Войдите на отключенную рабочую станцию и скопируйте пакеты с USB-устройства в нужное расположение на ней.
Начальная загрузка поставщика NuGet, выполняемая вручную на отключенной рабочей станции Инструкции см. в разделе Ручной режим начальной загрузки поставщика NuGet на автономный компьютер.
Зарегистрируйте это расположение в качестве репозитория по умолчанию и установите 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 для использования имеющегося прокси-сервера.
Откройте командную строку с повышенными привилегиями PowerShell.
Выполните следующие команды:
#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 и модули 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. Или удалите Azure Resource Manager, если вы хотите использовать модули Az. Закройте сеанс PowerShell и удалите модули Az или Azure Resource Manager.
См. инструкции в разделе Удаление существующих версий модулей PowerShell для Azure Stack Hub.
Ошибка, возникаемая с помощью NewAzureRMADServicePrincipal и NewAzureRMAdApplication
Применимо: среды Azure Stack с помощью идентификатора Microsoft Entra.
Причина: 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
Вхождение: common