Buenas y fresquitas tardes. Creo que este es mi primer post en Domingo!!!
Hace poco vimos cómo instalar Azure Powershell, sencillo y, a partir de ahora, veremos que muy util. Pues bien hoy en esta píldora os explicaré cómo tener actualizado nuestro Azure Powershell, instalar versiones en paralelo y tener los distintos módulos de Azure a la última versión.
Antes de continuar, me gustaría comentar rápidamente que Azure Powershell utiliza un control de versiones semántico. pero ….. ¿y que carajo signfica esto?
Bien, significa que si la versión de Powershell A es mayor que la versión B, A > B, la versión A tiene las API más actualizadas, obviamente. Microsoft declara una API pública, con una nomenclatura X.Y.Z, donde X es la versión «major», Y es la versión «minor» y Z es el «patch» de la versión. Para más información sobre los procedimientos de Versionamiento Semántico en Azure PowerShell, consulte su especificación en: http://semver.org , se trata de evitar los terribles problemas del «infierno de las dependencias» al ir actualizando versiones.
Las formas que habiamos visto para instalar powershell eran:
- A traves de Web Platform Installer, herramienta que nos permite instalar automáticamente componentes, mucho contenido web (IIS) asi como paquetes individuales como herramientas de administración de Azure a través de PowerShell, Windows Azure Pack, etc.
- O desde la Galería de PowerShell, usando PowerShell Get. De esta manera instalamos Azure Powershell a través de la consola de Powershell.
Si continuamos con el ejemplo del post que he comentado al principio, donde habiamos instalado Azure Powershell. Si ejecutamos el siguiente cmdlet:
Get-Module PowerShellGet -list | Select-Object Name, Version, Path
Nos muestra el nombre, versión y ruta del módulo de Powershell. Y si ejecutamos:
Get-Module AzureRM -list | Select-Object Name,Version, Path
Tanto para Azure como para AzureRM obtendremos los mismos resultados …. o no:
Esto nos indica que si hemos instalado Azure Powershell pero para ASM, no el módulo para ARM 😉 Bien, pues procedemos a instalar modulo de Azure Resorce Management
Hay que tener en cuenta que los módulos de Azure y AzureRM tienen dependencias en común, por lo que si actualizamos uno, automáticamente se actualiza el otro.
Procedemos a Instalar el módulo de powershell de AzureRM
install-module -name AzureRM
Nos aparece el mensaje anterior indicándonos que PowerShellGet requiere la versión del proveedor NuGet 2.8.5.201 o superior, para interactuar con cualquier repositorio basado en NuGet. Bien pues aceptamos la instalación e importación de dicho paquete. Se descarga y nos informa que estamos instalando los módulos de AzureRM desde un repositorio que no es de confianza ¿que hacemos? …. continuamos, pues
Observamos el proceso de instalación y
Tachan … comprobamos si ahora están instalados ambos módulos
Otro detalle interesante, es la posibilidad de instalación de versiones de módulos en paralelo. Concretamente, a partir de la versión 2.1.0, y la 1.2.6 para AzureStack, ya que fueron diseñados para poder usarse en paralelo. Esto nos ocurriría, por ejemplo, si tenemos scripts escritos con una versión anterior de Azure PowerShell y no tenemos ni recursos ni tiempo para actualizarla.
Como se puede ver, podemos instalar diversas versiones del módulo de AzureRM de Powershell:
Install-Module -Name AzureRM -RequiredVersion 3.7.0
Install-Module -Name AzureRM -RequiredVersion 1.2.9
pero, solo una de ellas se puede cargar por sesión de PowerShell. Tendremos que abrir una nueva ventana de PowerShell y realizar una tarea de importación de la versión específica que necesitemos de los cmdlets de AzureRM:
Import-Module AzureRM -RequiredVersion 1.2.9
Para terminar, ¿cómo podemos tener actualizados los modulos de Powershell? a la ultimísima …. con el cmdlet Update-Module. Vemos un ejemplo. Ejecutamos el cmdlet con el swithc -whatif
Vemos que si que hay una actualización en el módulo AzureRM.Profile …. pues actualizamos