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

В этой статье показано, как установить модуль Az Azure PowerShell и совместимые модули Azure Stack Hub для администраторов с помощью PowerShellGet. Модули Az можно установить на платформах Windows, macOS и Linux.

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

Если вы хотите установить модуль модулей ресурсов PowerShell (AzureRM) для центра Azure Stack, см. статью Установка модуля AzureRM PowerShell для центра Azure Stack.

Важно!

Скорее всего, не будут выпуски новых модулей ресурсов Azure. Модули ресурсов Azure поддерживают только критические исправления. В дальнейшем будет выдаваться только AZ releases для центра Azure Stack.

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

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

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

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

AZ modules поддерживается в концентраторе Azure Stack с обновлением 2002 или более поздней версии и с установленными текущими исправлениями. Дополнительные сведения см. в заметках о выпуске центра Azure Stack .

модули Azure PowerShell Az работают с PowerShell 5,1 или более поздней версии на Windows, или PowerShell Core 6. x и более поздних версий на всех платформах. Необходимо установить последнюю версию PowerShell Core для вашей операционной системы. Azure PowerShell не имеет других требований при выполнении в PowerShell Core.

Чтобы узнать вашу версию PowerShell, выполните приведенную ниже команду:

$PSVersionTable.PSVersion

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

Чтобы использовать Azure PowerShell в PowerShell 5.1 в Windows, сделайте следующее:

  1. При необходимости выполните обновление до Windows PowerShell 5.1. Если вы используете Windows 10, среда PowerShell 5.1 уже установлена.
  2. Установите платформу .NET Framework версии 4.7.2 или более поздней.
  3. Убедитесь, что у вас установлена последняя версия PowerShellGet. Выполните следующие командлеты из командной строки с повышенными привилегиями:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

powershell -noprofile
$PSVersionTable
Uninstall-Module PowershellGet -AllVersions -Force -Confirm:$false
Get-module PowershellGet
Find-module PowershellGet
Install-Module PowershellGet -MinimumVersion 2.2.3 -Force

2. Предварительные требования для Linux и Mac

PowerShell Core 6. x или более поздней версии. См. инструкции.

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

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

  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. Если Uninstall-Module не удалось, удалите все папки, начинающиеся с Azure , Az или Azs. из расположения $env:P смодулепас. для Windows PowerShell расположения могут иметь C:\Program Files\WindowsPowerShell\Modules значение и C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules . Для PowerShell Core расположения могут быть C:\Program Files\PowerShell\7\Modules и C:\Users\{yourusername}\Documents\PowerShell\Modules . при удалении этих папок удаляются все существующие Azure PowerShell модули.

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

модуль Azure Stack Az будет работать с PowerShell 5,1 или более поздней версии на Windows компьютере, или PowerShell 6. x или более поздней версии на платформе Linux или macOS. Использование командлетов PowerShellGet — предпочтительный метод установки. Этот метод работает одинаково на всех поддерживаемых платформах.

  1. Выполните следующую команду в сеансе PowerShell, чтобы обновить PowerShellGet до минимальной версии 2.2.3

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force
    
  2. Закройте сеанс PowerShell, а затем откройте новый сеанс PowerShell, чтобы обновление вступило в силу.

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

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module -Name Az.BootStrapper -Force
    Install-AzProfile -Profile 2020-09-01-hybrid -Force
    Install-Module -Name AzureStack -RequiredVersion 2.2.0 
    
  1. Выполните следующую команду из сеанса PowerShell:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module -Name Az.BootStrapper -Force
    Install-AzProfile -Profile 2020-09-01-hybrid -Force
    Install-Module -Name AzureStack -RequiredVersion 2.1.1
    

Предупреждение

вы не можете одновременно установить модули Azure Resource Manager (AzureRM) и Az для PowerShell 5,1 для Windows. Если необходимо, чтобы Azure Resource Manager были доступны в системе, установите модуль AZ для PowerShell Core 6. x или более поздней версии. Чтобы сделать это, установите PowerShell Core версии 6.x или более поздней, а затем следуйте инструкциям в окне терминала PowerShell Core.

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

При установке без подключения к Интернету следует сначала скачать модули 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 2108 или более поздней версии.

Можно использовать либо модули Azure Resource Manager, либо AZ. Дополнительные Azure Resource Manager см. в инструкциях по установке модуля AzureRM PowerShell. Следующий код сохраняет модули из надежного подключенного репозитория https://www.powershellgallery.com/.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

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

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

Центр Azure Stack 2102.

Можно использовать либо модули Azure Resource Manager, либо AZ. Дополнительные Azure Resource Manager см. в инструкциях по установке модуля AzureRM PowerShell. Следующий код сохраняет модули из надежного подключенного репозитория https://www.powershellgallery.com/.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

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

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

Примечание

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

Disable-AzDataCollection

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

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

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

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

  4. Зарегистрируйте это расположение в качестве репозитория по умолчанию и установите AzureRM модули и 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"

 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

 Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted

 Install-Module -Name AzureStack -Repository $RepoName -RequiredVersion 2.2.0 -Scope AllUsers

 Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers
 # requires -Version 5
 # requires -RunAsAdministrator
 # requires -Module PowerShellGet
 # requires -Module PackageManagement

 $SourceLocation = "<Location on the development kit that contains the PowerShell packages>"
 $RepoName = "MyNuGetSource"

 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

 Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted

 Install-Module -Name AzureStack -Repository $RepoName -RequiredVersion 2.1.1 -Scope AllUsers

 Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers

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

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

Get-Module -Name "Az*" -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
    

7. Использование модуля Az

Вы можете использовать командлеты и примеры кода на основе Azure Resource Manager. Но вам наверняка захочется изменить имена этих модулей и командлетов. Имена модулей были изменены таким образом, что AzureRM в сочетании с Azure становится Az. Это же справедливо и для командлетов. Например, модуль AzureRM.Compute был переименован в Az.Compute. New-AzureRMVM теперь называется New-AzVM, а Get-AzureStorageBlobGet-AzStorageBlob.

См. подробное обсуждение и рекомендации по переносу скриптов AzureRM на Az, а также сведения о критических изменениях в модуле Az Azure Stack Hub в руководстве по миграции с AzureRM на Az Azure PowerShell.

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

При установке модулей AZ возникает ошибка

  • Применимо: Эта проблема относится к 2002 и более поздним версиям.
  • Причина: при установке модуля выдается ошибка. Начнется сообщение об ошибке: Register-PacakgeSource : A parameter cannot be found that matches parameter name. 'PackageManagementProvider'. или сообщение об ошибке может содержать следующий текст: PackageManagement\Install-Package : Cannot convert value "2.0.1-preview" to type "System.Version". Error: "Input string was not in a correct format."
  • Исправление: выполните следующий командлет в том же сеансе:
    Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
    Закройте сеанс и запустите новый сеанс PowerShell с повышенными привилегиями.
  • Периодичность. Распространенные

При установке AZ Module false создает ошибку, необходимую для прав администратора

  • Применимо: Эта проблема относится к 2002 и более поздним версиям.
  • Причина. при установке модуля из командной строки с повышенными привилегиями выдается сообщение об ошибке. Ошибка говорит: Administrator rights required .
  • Исправление: Закройте сеанс и запустите новый сеанс PowerShell с повышенными привилегиями. Убедитесь, что не существует AZ. Модуль Accounts, загруженный в сеансе.
  • Периодичность. Распространенные

Сбой командлета New-AzVmss при использовании 2020-09-01-гибридного профиля

  • Применимо. Эта проблема относится к профилю 2020-09-01-гибридного.
  • Причина: командлет New-азвмсс не работает с гибридным профилем 2020-09-01.
  • Исправление: используйте шаблон для создания масштабируемого набора виртуальных машин. пример Azure Stack центра диспетчер ресурсов можно найти в GitHub репозитории AzureStack-QuickStart-templates/101-vmss-windows-vm , а также инструкции по использованию диспетчеров ресурсов центра Azure Stack с Visual Studio Code.
  • Периодичность. Распространенные

При выполнении скрипта PowerShell возникает ошибка

  • Применимо. Эта проблема относится к выпуску 2002 и более поздним версиям.

  • Причина. при выполнении скриптов или команд PowerShell с помощью модулей Azure Stackного центра необходимо, чтобы сценарий или команда были доступны в модуле. Вы можете получать следующую ошибку:

    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.
    

    Текущий модуль — это модуль PowerShell AZ, который заменил модуль PowerShell AzureRM. При попытке выполнить скрипт, вызывающий команды AzureRM при установке модуля AZ, скрипт выдаст ошибки. Или при попытке выполнить скрипт, вызывающий команды AZ при установке модуля AzureRM, сценарий выдаст ошибки.

  • Исправление: удалите модуль AzureRM и установите модуль AZ. Инструкции см. в разделе Установка PowerShell AZ Module для Azure Stack Hub. Если вы используете инструменты концентратора Azure Stack, используйте средства AZ. Клонировать репозиторий инструментов из ветви AZ или скачать AzureStack-Tools из ветви AZ . Инструкции см. в статье Загрузка средств центра Azure Stack из GitHub .

  • Периодичность. Распространенные

Ошибка, вызванная с New-AzADServicePrincipal и New-AzADApplication

  • Применимо: 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 . Выполните следующий командлет:

      New-AzADServicePrincipal -Role Owner -DisplayName <foo>.contoso.onmicrosoft.com
      

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

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

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

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