Actualmente están disponibles las dos versiones de Azure CLI, la 1.0 y la 2.0, las cuales aunque son muy parecidas, no son compatibles entre sí, es decir, los comandos de Azure CLI 1.0 son comandos azure (ej: azure --version), mientras que los comandos Azure CLI 2.0 son comandos az (ej: az --version).
- Azure CLI 1.0 está escrito en JavaScript con Node.js, disponible en GitHub como azure-xplat-cli. Es requisito tener instalado Node.js.
- Azure CLI 2.0 está escrito en Python, disponible en GitHub como azure-cli. Es requisito tener instalado Python 3 (con las variables de entorno del sistema establecidas, es decir, en el PATH).
A día de hoy, debemos trabajar ya con Azure CLI 2.0. Azure CLI 1.0, al igual que el Portal Clásico de Azure, está en desuso, y el esfuerzo de Microsoft está focalizado en el Portal Moderno, Azure CLI 2.0, y ARM. A día de hoy.
Una de las cosas más interesantes de Azure CLI, es que lo tenemos disponible directamente desde el Portal de Azure. Podemos abrir una sesión de Azure Cloud Shell, y desde ella ejecutar nuestros comandos de Azure CLI, sin tener que instalar nada en nuestros equipos, disponible en cualquier momento y en cualquier lugar.
Azure CLI 2.0 con Ejemplos
Vamos a ver cómo crear una Máquina Virtual con Azure CLI 2.0.
Lo primero que podemos necesitar hacer, es logarnos en Azure, utilizando el comando az login. De este modo, conseguiremos acceso a nuestra subscripción. En el caso de estar utilizando Azure Cloud Shell, este paso nos lo podemos ahorrar.
Después, ya podemos empezar a lanzar comandos de Azure CLI. En el siguiente ejemplo, mostramos un conjunto de comandos para crear un Resource Group, con una VNET (que a su vez contiene un SubNet), una IP Pública dinámica, y una NIC (representa la tarjeta de red a vincular a una VM). Estos son los objetos que necesitamos para crear una VM disponible directamente a través de Internet utilizando un IP Pública.
az group create --name "CLI-GuilleSQL-Group" --location "East US" az network vnet create --resource-group "CLI-GuilleSQL-Group" --name "GuilleSQL-VNET" --location "East US" az network vnet subnet create --resource-group "CLI-GuilleSQL-Group" --vnet-name "GuilleSQL-VNET" --name "GuilleSQL-Subnet" --address-prefix 10.0.1.0/24 az network public-ip create --resource-group "CLI-GuilleSQL-Group" --name "GuilleSQL-PIP" --location "East US" --allocation-method "Dynamic" az network public-ip update --resource-group "CLI-GuilleSQL-Group" --name "GuilleSQL-PIP" --dns-name "guillesql-test" az network nic create --resource-group "CLI-GuilleSQL-Group" --location "East US" --name "GuilleSQL-NIC" --subnet "GuilleSQL-Subnet" --vnet-name "GuilleSQL-VNET" --public-ip-address "GuilleSQL-PIP"
|
Antes de crear la VM, necesitamos conocer el URN de la imagen de VM que deseamos utilizar. Si ya lo sabemos, genial, sino podemos consultar los diferentes publicadores de imágenes, qué ofrece cada uno, y para cada oferta identificar cuál es la versión que nos interesa. Lo que necesitamos es obtener el URN de la imagen que deseamos desplegar. En nuestro caso de ejemplo, queremos desplegar un Oracle Linux 7.4, cuyo URN es Oracle:Oracle-Linux:7.4:7.4.20170908. Esto lo podemos reproducir con la siguiente secuencia de comandos:
az vm image list-publishers --location "East US" az vm image list-offers --location "East US" --publisher "Oracle" az vm image list-skus --location "East US" --publisher "Oracle" --offer "Oracle-Linux" az vm image list --location "East US" --publisher "Oracle" --offer "Oracle-Linux" --sku "7.4" --all |
Ahora que ya tenemos creados los objetos de Azure necesarios, y además sabemos cuál es el URN de la Imagen de VM que deseamos desplegar, podemos lanzar el comando az vm create correspondiente. Al ejecutarlo, tendremos creada y ya arrancada la VM en Azure, tan sólo esperando que nos conectemos para empezar a funcionar. Lo quiero, lo tengo.
az vm create --resource-group "CLI-GuilleSQL-Group" --name "GuilleSQL-VM" --location "East US" --nics "GuilleSQL-NIC" --image Oracle:Oracle-Linux:7.4:7.4.20170908 --admin-username "sysadmin" --admin-password "#1Azure.P@ssw0rd$"
|
Si tan solo queremos jugar un rato, dado que hemos creado un Grupo de Recursos, y el resto de objetos han sido creados dentro de dicho Grupo de Recursos, en el que no tenemos nada más, será suficiente con eliminar dicho Grupo de Recursos. Tan fácil como ejecutar el siguiente comando.
az group delete --name "CLI-GuilleSQL-Group" |
El mismo ejemplo con Azure CLI 1.0
Lo mismo que hemos hecho con Azure CLI 2.0, lo podríamos hacer también con Azure CLI 1.0. Lo primero que podemos necesitar hacer, es logarnos en Azure, utilizando el comando azure login. En el siguiente ejemplo, mostramos un conjunto de comandos para crear un Resource Group, con una VNET (que a su vez contiene un SubNet), una IP Pública dinámica, y una NIC (representa la tarjeta de red a vincular a una VM). Estos son los objetos que necesitamos para crear una VM disponible directamente a través de Internet utilizando un IP Pública.
azure group create -n "CLI-GuilleSQL-Group" -l "East US" azure network vnet create -g "CLI-GuilleSQL-Group" -n "GuilleSQL-VNET" -l "East US" azure network vnet subnet create -g "CLI-GuilleSQL-Group" --vnet-name "GuilleSQL-VNET" -n "GuilleSQL-Subnet" --address-prefix 10.0.1.0/24 azure network public-ip create -g "CLI-GuilleSQL-Group" -n "GuilleSQL-PIP" -l "East US" --allocation-method "Dynamic" azure network public-ip set -g "CLI-GuilleSQL-Group" -n "GuilleSQL-PIP" --domain-name-label "guillesql-test" azure network nic create -g "CLI-GuilleSQL-Group" -l "East US" -n "GuilleSQL-NIC" --subnet-name "GuilleSQL-Subnet" --subnet-vnet-name "GuilleSQL-VNET" --public-ip-name "GuilleSQL-PIP" |
Antes de crear la VM, necesitamos conocer el URN de la imagen de VM que deseamos utilizar. Si ya lo sabemos, genial, sino podemos consultar los diferentes publicadores de imágenes, qué ofrece cada uno, y para cada oferta identificar cuál es la versión que nos interesa. Lo que necesitamos es obtener el URN de la imagen que deseamos desplegar. En nuestro caso de ejemplo, queremos desplegar un Oracle Linux 7.4, cuyo URN es Oracle:Oracle-Linux:7.4:7.4.20170908. Esto lo podemos reproducir con la siguiente secuencia de comandos:
azure vm image list-publishers -l "East US" azure vm image list-offers -l "East US" -p "Oracle" azure vm image list-skus -l "East US" -p "Oracle" -o "Oracle-Linux" azure vm image list -l "East US" -p "Oracle" -o "Oracle-Linux" -k "7.4" |
Ahora que ya tenemos creados los objetos de Azure necesarios, y además sabemos cuál es el URN de la Imagen de VM que deseamos desplegar, podemos lanzar el comando azure vm create correspondiente. Al ejecutarlo, tendremos creada y ya arrancada la VM en Azure, tan sólo esperando que nos conectemos para empezar a funcionar.
azure vm create -g "CLI-GuilleSQL-Group" -n "GuilleSQL-VM" -l "East US" --nic-name "GuilleSQL-NIC" --os-type "Linux" --image-urn Oracle:Oracle-Linux:7.4:7.4.20170908 --admin-username "sysadmin" --admin-password "#1Azure.P@ssw0rd$" |
Para eliminar el Grupo de Recursos que acabamos de crear con todos sus elementos, basta con ejecutar el siguiente comando.
azure group delete -n "CLI-GuilleSQL-Group" |
Despedida y Cierre
Para más información puede consultarse el siguiente enlace:
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.