Selección de la herramienta de la línea de comandos de Azure adecuada

En lo que respecta a la administración de Azure, tiene muchas opciones. En este artículo se comparan el lenguaje de la CLI de Azure y de Azure PowerShell y se proporciona una comparación de los entornos de shell en los que se ejecutan.

La CLI de Azure, Azure PowerShell y Azure Cloud Shell tienen una funcionalidad superpuesta. Cada uno funciona de forma diferente y el lenguaje a veces se confunde con el entorno. Use esta guía para determinar cuál es la herramienta adecuada para usted.

¿Cuál es la ventaja de usar una herramienta de la línea de comandos de Azure?

Azure se ejecuta en automatización. Cada acción que se realiza dentro del portal se traduce en algún lugar al código que se ejecuta para leer, crear, modificar o eliminar recursos.

El traslado de la carga de trabajo a Azure libera parte de la carga administrativa, pero no toda. A medida que aumente la tasa de adopción con Azure, también lo hará la sobrecarga. Aunque no tenga que preocuparse por el centro de datos, tendrá que aplicar revisiones y solucionar problemas de máquinas virtuales de Azure, realizar conmutaciones por error de bases de datos y configurar redes virtuales.

Al usar la automatización existente que ejecuta Azure, las herramientas de la línea de comandos reducen esa sobrecarga.

¿Qué son las herramientas de la línea de comandos de Azure?

Las herramientas de la línea de comandos de Azure automatizan las operaciones rutinarias, estandarizan las conmutaciones por error de base de datos y extraen datos que proporcionan información eficaz. Las herramientas de la línea de comandos no solo le dan la capacidad de escalar las tareas en Azure, sino que también facilitan mucho el uso compartido. Compartir un script es mucho más fácil que una larga página de la wiki con capturas de pantalla que consumen mucho tiempo.

No siempre es necesario usar una herramienta de la línea de comandos de Azure, pero es una aptitud útil.

La CLI de Azure frente a Azure PowerShell

La CLI de Azure y Azure PowerShell son herramientas de la línea de comandos que permiten crear y administrar recursos de Azure. Ambos son multiplataforma y se pueden instalar en Windows, macOS y Linux.

CLI de Azure

  • Interfaz de la línea de comandos multiplataforma que se puede instalar en Windows, macOS y Linux
  • Se ejecuta en Windows PowerShell, el símbolo del sistema, Bash y otros shells de Unix.

Azure PowerShell

  • Módulo multiplataforma de PowerShell que se ejecuta en Windows, macOS y Linux
  • Requiere Windows PowerShell o PowerShell

Diferentes entornos de shell

Entorno de shell CLI de Azure Azure PowerShell
Cmd
Bash
Windows PowerShell
PowerShell

Windows PowerShell, PowerShell, el símbolo del sistema y Bash son entornos de shell. El entorno de shell no solo determina qué herramientas puede usar, sino que también cambia la experiencia de la línea de comandos.

Por ejemplo, para el carácter de continuación de línea, Bash usa la barra diagonal inversa \, mientras que Windows PowerShell usa el carácter de acento grave `. Las diferencias en el entorno de shell no cambian el funcionamiento de la CLI de Azure y Azure PowerShell. Sin embargo, cambian la experiencia de la línea de comandos.

La CLI de Azure tiene un instalador que hace que sus comandos se puedan ejecutar en los cuatro entornos de shell.

Azure PowerShell es un conjunto de cmdlets empaquetados como un módulo de PowerShell llamado Az; no un archivo ejecutable. Se deben utilizar Windows PowerShell o PowerShell para instalar el módulo Az.

Windows PowerShell es el shell de scripting estándar que viene preinstalado con la mayoría de los sistemas operativos Windows. PowerShell es una instalación independiente que usa .NET Core como entorno de ejecución, lo que permite instalarlo en macOS, Linux y Windows.

Puntos clave:

  • AzureRM es un módulo de PowerShell al que todavía se hace referencia para la administración de Azure con PowerShell. Sin embargo, se ha reemplazado por Azure PowerShell y tiene fecha de retirada oficial el 29 de febrero de 2024.

Si usa AzureRM, puede migrar Azure PowerShell de AzureRM a Az.

¿Qué es Azure Cloud Shell?

Azure Cloud Shell es un entorno de shell hospedado que se ejecuta en un contenedor de Ubuntu.

Cloud Shell proporciona dos entornos de shell: Bash (con la CLI de Azure preinstalada) y PowerShell (con Azure PowerShell preinstalado). Una lista desplegable en la parte superior de la ventana de Cloud Shell le permite cambiar fácilmente entre los dos entornos.

Cloud Shell es accesible en un explorador web y tiene integraciones para terminal de Windows y Visual Studio Code.

Azure CloudShell Bash and PowerShell environments

Nota:

Es posible que Azure Cloud Shell no siempre refleje inmediatamente las versiones más recientes de Azure PowerShell y la CLI de Azure, ya que la programación de publicaciones de las tres herramientas es diferente. No obstante, por lo general, Azure Cloud Shell suele contener las versiones más recientes de ambas herramientas.

¿Qué herramienta de la línea de comandos de Azure es la adecuada?

Al seleccionar la herramienta adecuada, tenga en cuenta su experiencia anterior y el entorno de trabajo actual.

La sintaxis de la CLI de Azure es similar a la del scripting de Bash. Si trabaja principalmente con sistemas Linux, la CLI de Azure parece más natural.

Azure PowerShell es un módulo de PowerShell. Si trabaja principalmente con sistemas Windows, Azure PowerShell es una opción natural. Los comandos siguen un esquema de nomenclatura verbo-sustantivo y los datos se devuelven como objetos.

Elija la herramienta que se adapte a su experiencia y acorte la curva de aprendizaje. Aproveche las ventajas de Microsoft Learn para convertirse en un experto en la administración de Azure desde la línea de comandos.

Dicho esto, tener una mente abierta solo mejorará sus capacidades. Use otra herramienta cuando tenga sentido.

Puntos clave:

  • No siempre existe una paridad de características de los servicios de Azure entre la CLI de Azure y Azure PowerShell.

Comparación de comandos de la CLI de Azure y Azure PowerShell en paralelo

Comandos de inicio de sesión, suscripción y ubicación:

Get-Help Azure CLI Azure PowerShell
Iniciar sesión con un explorador web az login Connect-AzAccount
Obtener las suscripciones disponibles az account list Get-AzSubscription
Establecer la suscripción az account set –-subscription <SubscriptionId> Set-AzContext -Subscription <SubscriptionID>
Enumerar las ubicaciones de Azure az account list-locations Get-AzLocation

Buscar versiones, obtener ayuda y ver la ayuda sobre los comandos:

Get-Help Azure CLI Azure PowerShell
Buscar versión az --version Get-InstalledModule -Name Az
Obtener ayuda az --help Get-Help
Ver la ayuda sobre los comandos az vm --help Get-Help -Name New-AzVM

Crear un grupo de recursos, una máquina virtual y una cuenta de almacenamiento:

Get-Help Azure CLI Azure PowerShell
Crear grupo de recursos az group create --name <ResourceGroupName> --location eastus New-AzResourceGroup -Name <ResourceGroupName> -Location eastus
Creación de una máquina virtual de Azure az vm create --resource-group myResourceGroup --name myVM --image UbuntuLTS --admin-username azureuser --admin-password '<Password>' New-AzVM -ResourceGroupName <ResourceGroupName> -Name myVM -Image UbuntuLTS -Credential (Get-Credential)
Creación de una cuenta de Azure Storage az storage account create --name <StorageAccountName> --resource-group <ResourceGroupName> --location eastus --sku Standard_LRS --kind StorageV2 New-AzStorageAccount -Name <StorageAccountName> -ResourceGroupName <ResourceGroupName> -Location eastus -SkuName Standard_LRS -Kind StorageV2

Administrar máquinas virtuales de Azure:

Get-Help Azure CLI Azure PowerShell
Enumerar las máquinas virtuales az vm list Get-AzVM
Reinicio de la máquina virtual az vm restart --name myVM --resource-group <ResourceGroupName> Restart-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>
Detención de la máquina virtual az vm stop --name myVM --resource-group <ResourceGroupName> Stop-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>
Detener o desasignar una máquina virtual az vm deallocate --name myVM --resource-group <ResourceGroupName> Stop-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>
Iniciar VM az vm start --name myVM --resource-group <ResourceGroupName> Start-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>
Eliminación de la máquina virtual az vm delete --name myVM --resource-group <ResourceGroupName> Remove-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>

Seleccionar propiedades y cambiar formatos de salida:

Get-Help Azure CLI Azure PowerShell
Mostrar toda la información de las suscripciones az account list --all Get-AzSubscription | Select-Object -Property *
Salida como tabla az account list -o table Get-AzSubscription | Format-Table
Salida como JSON az account show Get-AzSubscription | ConvertTo-Json

Puntos clave:

Pasos siguientes

CLI de Azure:

Azure PowerShell: