El portal de Microsoft Azure nos proporciona gran agilidad para crear y aprovisionar cualquier servicio que este a nuestra disposición y es genial poder lograr todo a través de nuestro navegador web.

Sin embargo, como ya lo he comentado en anteriores artículos, cuando la gestión de servicios empieza a crecer y se requieren tareas repetitivas, hacerlo de forma manual desde el portal web puede empezar a ser cansado.

Una consola de comandos es por excelencia una de las mejores herramientas para automatizar procesos mediante scripts, para los que manejan ambientes Windows seguramente le ponen mano a «PowerShell» y para los que utilizan ambientes Linux está por demás decir que tienen el preciado «Bash». Aunque comparten sintaxis en algunos comandos, son consolas con objetivos particulares, diseñados para atender necesidades de Sistemas Operativos diferentes.

Azure Cloud Shell

Si la posibilidad de gestionar servicios en la nube desde una consola de comandos es bastante atractivo, más lo es cuando la consola ni siquiera necesita estar instalada como cliente en nuestro equipo. Azure Cloud Shell es una consola de comandos que trabaja directamente en la nube con una interfaz web, para invocarla basta con hacer clic en el símbolo de su propio icono desde la página principal:

De primera impresión podríamos hacernos dos preguntas ¿otra consola? ¿comandos diferentes por aprender? Y la verdad es que el tema no va en esa dirección.

Azure Cloud Shell viene a actuar como un contenedor tipo Docker que encapsula a las dos consolas ya mencionadas: PowerShell y Bash. Por lo que Azure Cloud Shell da a elegir con que consola queremos gestionar nuestros servicios, y si ya conocemos muy bien alguna de estas dos, no tenemos que aprender una nueva lista de comandos.

Ambas no vienen solas, traen consigo cargadas una serie de herramientas populares que seguramente tendremos que usar en algún momento. Dando clic en los enlaces de abajo podremos saber cuáles son:

Azure CLI (Command Line Interface) es un cliente de Microsoft Azure que nos permite también desplegar servicios en la nube como PowerShell. Azure CLI viene cargado tanto en Bash como Azure PowerShell, por lo que desde ambos entornos puede ser lanzado. ¿Diferencias entre PowerShell y CLI? abajo algunos puntos a considerar:

Azure PowerShell  Azure CLI
Modelo de objeto (Construir y enviar). Cross Platform (Linux y Windows)
Extensibilidad con .NET Acciones atómicas (una a la vez)

Digamos que escoger entre Azure PowerShell y Azure CLI depende de: la plataforma a usar, preferencias del equipo y habilidades. Siendo que con ambas llegas al mismo resultado que es despliegue de servicios sobre línea de comandos.

Iniciando con Azure Cloud Shell

Los requerimientos para poder usar Azure Cloud Shell como en casi cualquier otro servicio, son los siguientes:

  • Grupo de recursos (contenedor).
  • Una cuenta de almacenamiento (Blob Storage).
  • Recurso compartido (Azure File).

Aspectos a considerar

  • Ejecución: Azure Cloud Shell vive dentro un equipo virtual temporal por sesión de usuario, por lo que, al cerrar el portal de Microsoft Azure, este se liberará y requerirá inicializarse la próxima vez.
  • Tiempo de espera: La sesión se pierde con más de 20 minutos sin interacción por parte del usuario.
  • Recurso compartido: Tanto Bash como Poswer Shell se basan en el mismo recurso compartido (File Storage).

Dicho todo lo anterior se entiende que Azure Cloud Shell actúa como un contenedor que provee dos opciones para gestionar servicios de Microsoft Azure las cuales son: Bash de Linux y PowerShell de Windows. A continuación, listaré 3 scripts completos para desplegar servicios con Azure PowerShell

Web App + Azure PowerShell

SQL Azure + Azure PowerShell

Virtual Machine + Azure PowerShell


Sígueme en Twitter @vmorenoz

¿Te gustó este artículo? Únete a Facebook en MicrosoftLand

Deja un comentario