Uso de Docker para ejecutar PowerShell para Azure Stack Hub
En este artículo, puede usar Docker para crear un contenedor en el que se ejecutará la versión de PowerShell necesaria para trabajar con las distintas interfaces. Puede encontrar instrucciones para usar tanto los módulos de AzureRM como los módulos de Az más recientes. AzureRM requiere un contenedor basado en Windows. Az usa un contenedor basado en Linux.
Requisitos previos de Docker
Instalación de Docker
Instale Docker.
En un programa de línea de comandos, como PowerShell o Bash, escriba:
docker --version
Configurar una entidad de servicio para usar PowerShell
Para usar PowerShell para acceder a los recursos de Azure Stack Hub, necesita una entidad de servicio en el inquilino de Microsoft Entra. Los permisos se delegan con el control de acceso basado en rol de usuario (RBAC). Es posible que tenga que solicitar la entidad de servicio a su operador de nube.
Para configurar la entidad de servicio, siga las instrucciones del artículo Creación de entidades de servicio para otorgar a las aplicaciones acceso a los recursos de Azure Stack Hub.
Anote el identificador de aplicación, el secreto, el identificador del inquilino y el identificador del objeto para usarlos más tarde.
Ejecución de PowerShell en Docker
En estas instrucciones, ejecutará una imagen de contenedor basada en Linux que contenga PowerShell y los módulos necesarios para Azure Stack Hub.
Debe ejecutar Docker con el contenedor de Linux. Cuando ejecute Docker, cambie a los contenedores de Linux.
Ejecute Docker desde una máquina unida al mismo dominio que Azure Stack Hub. Si usa el Kit de desarrollo de Azure Stack (ASDK), deberá instalar la VPN en la máquina remota.
Instalación del módulo de Az de Azure Stack Hub en un contenedor de Linux
Desde la línea de comandos, ejecute el siguiente comando de Docker para ejecutar PowerShell en un contenedor de Ubuntu:
docker run -it mcr.microsoft.com/azurestack/powershell
Puede ejecutar Ubuntu o Debian. Puede encontrar los siguientes archivos de Docker en el repositorio de GitHub: azurestack-powershell. Consulte el repositorio de GitHub para ver los últimos cambios en los archivos de Docker. Cada sistema operativo está etiquetado. Reemplace la etiqueta, la sección después de los dos puntos, por la etiqueta del sistema operativo que desee.
Linux Imagen de Docker Ubuntu docker run -it mcr.microsoft.com/azurestack/powershell:ubuntu-18.04
Debian docker run -it mcr.microsoft.com/azurestack/powershell:debian-9
El shell está listo para los cmdlets. Para probar la conectividad de Shell, inicie sesión y ejecute
Test-AzureStack.ps1
.En primer lugar, cree las credenciales de la entidad de servicio. Necesitará el secreto y el identificador de aplicación. También necesitará el identificador de objeto al ejecutar
Test-AzureStack.ps1
para comprobar el contenedor. Es posible que tenga que solicitar una entidad de servicio a su operador de nube.Escriba los siguientes cmdlets para crear un objeto de entidad de servicio:
$passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
Conéctese a su entorno mediante la ejecución del siguiente script con los siguientes valores de la instancia de Azure Stack Hub.
Valor Descripción Nombre del entorno. Nombre del entorno de Azure Stack Hub. Punto de conexión de Resource Manager Dirección URL de Resource Manager. Si no lo sabe, póngase en contacto con su operador de nube. Se parecerá a esta https://management.region.domain.com
.Id. de inquilino del directorio El identificador del inquilino del directorio de Azure Stack Hub. Credential: Objeto que contiene la entidad de servicio. En este caso, $pscredential
../Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
PowerShell devuelve el objeto de cuenta.
Pruebe el entorno ejecutando el script de
Test-AzureStack.ps1
en el contenedor. Especifique el identificador de objeto de la entidad de servicio. Si no indica el identificador de objeto, el script se seguirá ejecutando, pero solo probará los módulos del inquilino (usuario) y se producirá un error en los módulos que requieren privilegios de administrador../Test-AzureStack.ps1 <Object ID>
Pasos siguientes
- Obtenga información general de PowerShell en Azure Stack Hub.
- Obtenga más información sobre los Perfiles de API para PowerShell en Azure Stack Hub.
- Instalación de PowerShell de Azure Stack Hub.
- Lea sobre la creación de plantillas de Azure Resource Manager para mantener la coherencia en la nube.