Entradas

Azure Cloud Shell

por Víctor Silva

En los tiempos que corren, para la administración de recursos (sea on-premises o cloud) es necesario contar con herramientas que faciliten la gestión diaria de forma eficiente y eficaz. Microsoft impulsa diariamente el desarrollo de nuevas y mejores herramientas, tanto para expandir los servicios que ofrecen como para la gestión y uso de los mismos.

 En base a lo anterior es que quiero hablar de Azure Cloud Shell, o cómo administrar Azure desde la línea de comandos.

 

 ¿Qué es Azure Cloud Shell?

Según la definición que brinda Microsoft:

“Azure Cloud Shell is an interactive, browser-accessible shell for managing Azure resources.”

En definitiva, podemos decir que es una línea de comandos web para administrar Azure. Al ser web, significa que tampoco vamos a necesitar instalar nada en nuestro sistema local, lo que significa que podemos sustituir la instalación de la CLI en nuestros equipos al utilizar esta funcionalidad.

Los beneficios que puede generar el uso de esta consola van mucho más allá que simplemente acceder a una línea de comandos desde una página web. Dentro de los puntos a destacar se encuentran los siguientes:

 

  • Es un container: Azure Cloud Shell está construido en un container y se presenta en cada sesión. La versión del SO es Ubuntu 16.04 LTS.
  • Tiene la última versión de Azure CLI pre-instalada, en donde ya estamos conectados y listos para comenzar a trabajar.
  • Parte de las herramientas que trae por defecto, se encuentran: Vim, Git y Python.
  • El directorio $home se encuentra respaldado en Azure utilizando Azure File Storage, por lo que es necesario contar con una storage account para utilizar esta funcionalidad.

Para acceder a la consola basta con seleccionar el siguiente botón dentro de la consola de Azure:

Y lo primero que nos va a consultar es si queremos utilizar Bash o PowerShell. Si seleccionamos PowerShell se utiliza la versión Open Source:

Al ejecutar la consola por primera vez se sugiere crear una Storage Account (al no contar con una existente):

 

Esta acción determina una gran funcionalidad, que es la persistencia de los datos.

Una pregunta que puede surgir a esta altura es: ¿qué costo tiene utilizar esta funcionalidad?

La documentación se refiere a este tema de la siguiente manera:

The machine hosting Cloud Shell is free, with a pre-requisite of a mounted Azure file share to persist your $Home directory. Regular storage costs apply.

Lo que en resumidas cuentas indica que utilizar Azure Cloud Shell en sí es gratis, lo que tiene costo (mínimo) es utilizar los servicios de Storage de Azure para alojar nuestro directorio $Home, donde se va a alojar nuestro histórico de comandos ejecutados, archivos creados, etc.

Azure Cloud Shell está soportado para los navegadores Chrome, Firefox, Safari, IE y Edge, aunque se recomienda utilizarlo en Chrome, Edge y Safari.

 

Primeros pasos

Ahora que hemos conocido un poco mejor la consola vamos a ver cómo podemos hacer para trabajar de forma más eficiente utilizando Azure Cloud Shell.

Al acceder a la consola vemos que realiza un proceso antes de presentarnos el prompt para comenzar a trabajar:

 

Ya conectados y con el ambiente disponible para comenzar, podemos indagar qué nos permite realizar la Azure Cloud Shell.

 

Podemos comenzar utilizando un comando de Azure CLI para ver las VMs que tenemos en nuestra suscripción, ejecutando:

<code>az vm list -d -o table</code>

 

 

Despliega en la consola las VMs que se encuentran desplegadas en nuestra suscripción en forma de tabla. El resultado devuelve la única VM que se encuentra desplegada en la suscripción.

Al comando anterior podríamos adicionarle el parámetro -g, que permite definir el Resource Group al que queremos consultar, filtrando los resultados.

 

¿PowerShell?

Sí, también tenemos disponible como alternativa a bash la posibilidad de usar PowerShell como lenguaje para trabajar desde la Azure Cloud Shell, aunque aún se encuentra en preview.

En el caso de PowerShell, la versión que se utiliza actualmente es la 6.1.0-preview.4 correspondiente a la edición Core (Open Source):

Como PowerShell se extiende sobre módulos, podemos observar desde la consola qué módulos se encuentran cargados por defecto, ejecutando Get-Module:

 

En donde se puede observar que se encuentran los módulos de AzureRM para la gestión de los recursos.

Es importante destacar que también se encuentra disponible Azure CLI. A modo informativo el siguiente enlace enlista todas las herramientas y funcionalidades que trae la Azure Cloud Shell:

https://docs.microsoft.com/en-us/azure/cloud-shell/features