Instalación del módulo AzureRM de PowerShell para Azure Stack Hub

Azure Resource Manager (AzureRM) de Azure PowerShell ofrece un conjunto de cmdlets que usan el modelo de Azure Resource Manager para administrar los recursos de Azure Stack Hub.

Importante

Ha llegado a una página web de una versión obsoleta de PowerShell de Azure Stack Hub. Todas las versiones del módulo de PowerShell de Azure Resource Manager (AzureRM) están obsoletas y no son compatibles. Los módulos AzureRM ya no se actualizarán en futuras compilaciones Azure Stack Hub. Los módulos Az se deben usar para las compilaciones 2002 y posteriores. El perfil 2020-09-01-hybrid no es compatible con los módulos AzureRM.

El módulo Az de PowerShell es el módulo de PowerShell que se recomienda ahora para interactuar con Azure y Azure Stack Hub. Para empezar a trabajar con el módulo Az de PowerShell, consulte Instalación del módulo Az de PowerShell en versión preliminar para Azure Stack Hub. Para obtener información sobre cómo migrar al módulo Az de PowerShell, consulte Migración desde AzureRM al módulo Az de Azure PowerShell en Azure Stack Hub. Para más información sobre el aumento de la funcionalidad de los módulos Az que se han adoptado en Azure global, consulte Presentación del módulo Az de Azure PowerShell.

También debe usar perfiles de API para especificar los puntos de conexión compatibles para los proveedores de recursos de Azure Stack Hub.

Los perfiles de API proporcionan una manera de administrar las diferencias de versión entre Azure y Azure Stack Hub. Un perfil de versión de la API es un conjunto de módulos de PowerShell de Azure Resource Manager con versiones específicas de la API. Cada plataforma de la nube tiene un conjunto de perfiles de versión de API compatibles. Por ejemplo, Azure Stack Hub admite una versión de perfil específica, como 2019-03-01-hybrid. Cuando se instala un perfil, se instalan los módulos de PowerShell Azure Resource Manager que se corresponden con el perfil especificado.

Puede instalar los módulos de PowerShell compatibles con Azure Stack Hub en un escenario desconectado, parcialmente conectado o conectado a Internet. Este artículo le guía por las instrucciones detalladas para estos escenarios.

También puede ejecutar los módulos de Azure Resource Manager para Azure Stack Hub en un contenedor de Docker. Para obtener instrucciones, consulte Uso de Docker para ejecutar PowerShell para Azure Stack Hub.

1. Comprobación de los requisitos previos

Antes de empezar con Azure Stack Hub y el módulo de Azure Resource Manager de PowerShell, debe cumplir los siguientes requisitos previos:

  • PowerShell versión 5.1
    Para comprobar la versión, ejecute $PSVersionTable.PSVersion y compare la versión principal. Si no tiene PowerShell 5.1, siga las instrucciones sobre cómo instalar Windows PowerShell.

    Nota:

    PowerShell 5.1 requiere una máquina Windows.

  • Ejecute PowerShell en un símbolo del sistema con privilegios elevados.

  • Acceso a la Galería de PowerShell
    Necesitará acceso a la Galería de PowerShell. La Galería es el repositorio central para el contenido de PowerShell. El módulo PowerShellGet contiene cmdlets para detectar, instalar, actualizar y publicar artefactos de PowerShell. Algunos ejemplos de estos artefactos son módulos, recursos de DSC, funcionalidades de rol y scripts de la Galería de PowerShell y otros repositorios privados. Si usa PowerShell en un escenario desconectado, debe recuperar los recursos desde una máquina con conexión a Internet y almacenarlos en una ubicación accesible para la máquina desconectada.

Confirme si PSGallery está registrado como repositorio.

Nota:

Este paso requiere acceso a Internet.

Abra un símbolo de sistema de PowerShell con privilegios elevados y ejecute los siguientes cmdlet:

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

Si el repositorio no está registrado, abra una sesión de PowerShell con privilegios elevados y ejecute el siguiente comando:

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

3. Desinstale las versiones existentes de los módulos de PowerShell para Azure Stack Hub.

Antes de instalar la versión requerida, asegúrese de desinstalar los módulos de Azure Resource Manager de PowerShell para Azure Stack Hub instalados previamente. Desinstale los módulos mediante uno de los dos métodos siguientes:

  1. Para desinstalar los módulos de PowerShell de Azure Resource Manager y Az existentes, cierre todas las sesiones de PowerShell activas y ejecute los siguientes cmdlets:

    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
    

    Si se produce algún error, como "el módulo ya se está utilizando", cierre las sesiones de PowerShell que usan los módulos y vuelva a ejecutar el script anterior.

  2. Elimine todas las carpetas que empiecen con Azure, Az o Azs. de las carpetas C:\Program Files\WindowsPowerShell\Modules y C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules. Al eliminar estas carpetas se quitan todos los módulos de PowerShell existentes.

4. Escenario conectado: Instalación de PowerShell para Azure Stack Hub con conectividad a Internet

El perfil de la versión de API y los módulos de PowerShell de Azure Stack Hub que necesite dependerán de la versión de Azure Stack Hub que esté ejecutando.

Instalación de PowerShell de Azure Stack Hub

Ejecute el siguiente script de PowerShell para instalar estos módulos en la estación de trabajo de desarrollo:

Para Azure Stack Hub 2002 o una versión posterior:

Puede usar los módulos AzureRM o Az en versión preliminar. El uso de los módulos Az requiere Azure Stack Hub 2002 o posterior.

Para usar los módulos Az en versión preliminar, siga las instrucciones descritas en Instalación del módulo Az de PowerShell.

# 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 

Para 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

Nota:

  • La versión 1.8.0 del módulo de Azure Stack Hub presenta cambios importantes. Consulte las notas de la versión para obtener más información.

Para Azure Stack Hub 1908 o una versión anterior:

# 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

Nota:

La versión 1.7.2 del módulo de Azure Stack Hub presenta cambios importantes. Para migrar de Azure Stack Hub 1.6.0, consulte la guía de migración.

Confirmación de la instalación de PowerShell

Ejecute el comando siguiente para comprobar la instalación:

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

Si la instalación es correcta, los módulos AzureRm y AzureStack se muestran en la salida.

5. Escenario desconectado: Instalación de PowerShell sin una conexión a Internet

En un escenario sin conexión, primero hay que descargar los módulos de PowerShell en una máquina que tenga conexión a Internet. A continuación, debe transferirlos al Kit de desarrollo de Azure Stack (ASDK) para instalarlos.

Inicie sesión en un equipo con conexión a Internet y use los scripts siguientes para descargar los paquetes de Azure Resource Manager y Azure Stack Hub, según la versión de Azure Stack Hub.

La instalación consta de cinco pasos:

  1. Instale PowerShell de Azure Stack Hub en una máquina conectada.
  2. Habilite las características adicionales de almacenamiento.
  3. Transporte los paquetes de PowerShell a su estación de trabajo desconectada.
  4. Realice manualmente el arranque del proveedor de NuGet en su estación de trabajo desconectada.
  5. Confirme la instalación de PowerShell.

Instalación de PowerShell de Azure Stack Hub

Azure Stack Hub 2002 o una versión posterior.

Puede usar los módulos de Azure Resource Manager o Az en versión preliminar. Para los módulos Az, siga las instrucciones descritas en Instalación del módulo Az de PowerShell.


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

Nota:

La versión 1.8.0 del módulo de Azure Stack Hub presenta cambios importantes. Consulte las notas de la versión para obtener más información.

Para Azure Stack Hub 1908 o una versión anterior:

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

Nota:

La versión del módulo de Azure Stack Hub 1.7.1 es un cambio importante. Para migrar de Azure Stack Hub 1.6.0, consulte la guía de migración.

Nota:

En máquinas sin conexión a Internet, le recomendamos ejecutar el siguiente cmdlet para deshabilitar la colección de datos de telemetría. Puede experimentar una degradación del rendimiento de los cmdlets sin necesidad de deshabilitar la colección de datos de telemetría. Esto solo es aplicable para las máquinas sin conexión a Internet.

Disable-AzureRmDataCollection

Adición de los paquetes a la estación de trabajo

  1. Copie los paquetes descargados en un dispositivo USB.

  2. Inicie sesión en la estación de trabajo desconectada y copie los paquetes desde el dispositivo USB en una ubicación en dicha estación de trabajo.

  3. Realice manualmente el arranque del proveedor de NuGet en su estación de trabajo desconectada. Para obtener instrucciones, consulte Arranque manual del proveedor de NuGet en una máquina no conectada a Internet.

  4. Registre esta ubicación como el repositorio predeterminado e instale los módulos de Azure Resource Manager y AzureStack desde este repositorio:

    # 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
    

Confirmación de la instalación de PowerShell

Ejecute el comando siguiente para comprobar la instalación:

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

6. Configuración de PowerShell para usar un servidor proxy

En escenarios donde se necesita un servidor proxy para acceder a Internet, primero configure PowerShell para que use un servidor proxy existente:

  1. Abra un símbolo del sistema de PowerShell con privilegios elevados.

  2. Ejecute los comandos siguientes:

    #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
    

Problema conocido

Error en el método get_SerializationSettings

  • Causa: El módulo Az y los módulos Azure Resource Manager de PowerShell no son compatibles.

    El siguiente error indica que los módulos de Azure Resource Manager y Az se han cargado en la misma sesión:

    >  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.
    
  • Corrección: Desinstale los módulos en conflicto.

    Si desea usar los módulos de Azure Resource Manager, desinstale los módulos Az. O bien, desinstale el módulo de Azure Resource Manager si desea usar los módulos Az. Cierre la sesión de PowerShell y desinstale los módulos Az o de Azure Resource Manager según corresponda.

    Puede encontrar más instrucciones en Desinstale las versiones existentes de los módulos de PowerShell para Azure Stack Hub.

Error que se produce con NewAzureRMADServicePrincipal y NewAzureRMAdApplication

  • Aplicable: entornos de Azure Stack mediante Microsoft Entra ID.

  • Causa: Azure Active Directory Graph introdujo un cambio importante para restringir el IdentifierUri para que las aplicaciones de Active Directory sean los subdominios de un dominio comprobado en el directorio. Antes del cambio, esta restricción solo regía para las aplicaciones multiinquilino. Ahora esta restricción también rige para las aplicaciones de un solo inquilino. El cambio generará el siguiente error: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running.

  • Corrección: puede solucionar esta restricción de dos maneras.

    • Tendrá que usar un nombre de entidad de seguridad de servicio que sea un subdominio del inquilino del directorio. Por ejemplo, si el directorio es contoso.onmicrosoft.com, el nombre de entidad de seguridad de servicio debe tener el formato <foo>.contoso.onmicrosoft.com. Use el siguiente cmdlet:

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

      Para obtener más información sobre la identidad y el uso de entidades de servicio con Azure Stack Hub, consulte Introducción a los proveedores de identidades en Azure Stack Hub.

    • Cree la aplicación Microsoft Entra que proporcione un valor válido IdentifierUri y, a continuación, cree la entidad de servicio que asocia la aplicación mediante el siguiente cmdlet:

      $app=NewAzureRMAdApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      NewAzureRMADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • Repetición: Comunes

Pasos siguientes