Creación de recursos de Azure con Azure PowerShell mediante un script
Las tareas complejas o repetitivas pueden llevar mucho tiempo y ser propensas a errores cuando se realizan manualmente. Las organizaciones prefieren automatizar estas tareas para reducir los costos y evitar errores.
La automatización es esencial en el ejemplo de administración de relaciones con el cliente (CRM), donde va a probar el software en varias máquinas virtuales Linux que deben eliminarse y volver a crearse continuamente. El uso de un script de PowerShell para automatizar la creación de máquinas virtuales es mucho más eficaz y confiable que crearlos manualmente cada vez.
Además del funcionamiento principal de la creación de una máquina virtual, el script debe cumplir algunos otros requisitos:
- Crear varias máquinas virtuales: Use
New-AzVM
para crear varias máquinas virtuales con nombre único. - Parámetro del grupo de recursos: Permita que el script acepte el nombre del grupo de recursos como parámetro.
En esta unidad, aprenderá a escribir y ejecutar un script de PowerShell que cumpla estos requisitos.
¿Qué es un script de PowerShell?
Un script de PowerShell es un archivo de texto que contiene comandos y construcciones de control. Los comandos son invocaciones de cmdlets y las construcciones de control son características de programación como bucles, variables, parámetros, comentarios, etc. proporcionados por PowerShell.
Los archivos de script de PowerShell tienen la extensión de archivo .ps1
. Puede crear y guardar estos archivos mediante cualquier editor de texto.
Sugerencia
Si va a escribir scripts de PowerShell, considere la posibilidad de usar Visual Studio Code (VS Code), que es gratuito y compatible con Windows, Linux y macOS. La extensión de PowerShell para VS Code ofrece características como el resaltado de sintaxis y una lista de cmdlets disponibles.
La captura de pantalla siguiente es un ejemplo de VS Code con un script de ejemplo para conectarse a Azure y crear una máquina virtual:
Una vez creado un script, puede ejecutarlo desde la línea de comandos de PowerShell pasando el nombre del archivo precedido por un punto para el directorio actual y una barra diagonal inversa:
.\myScript.ps1
Técnicas de PowerShell
PowerShell incluye características que se encuentran normalmente en lenguajes de programación. Puede definir variables, usar ramas y bucles, capturar parámetros de línea de comandos, escribir funciones, agregar comentarios, etc. Para el script en el que se centra, necesita tres características clave: variables, bucles y parámetros.
Variables
En PowerShell, las variables se declaran mediante el signo de dólar ($
) y los valores asignados mediante el operador equals (=
). Por ejemplo:
$location = 'eastus'
Para determinar el valor almacenado en una variable, use el prefijo $
y su nombre:
$location
Las variables pueden contener objetos. Por ejemplo, la siguiente definición establece la variable $adminCredential
en el objeto devuelto por el cmdlet Get-Credential
:
$adminCredential = Get-Credential
Bucles
PowerShell tiene varias estructuras de bucle, como For
, Foreach
, Do-Until
, Do-While
, y While
. El bucle Foreach
es una buena opción para escenarios en los que es necesario ejecutar un bucle sobre un conjunto de valores de una colección.
$items = 'web','app','sql'
foreach ($item in $items) {
$item
}
Parámetros
Al crear un script de PowerShell, puede agregar parámetros al script y, a continuación, especificar valores para estos parámetros al ejecutar el script. Por ejemplo:
.\setupEnvironment.ps1 -Name 'web','app','sql' -Location eastus
Dentro del script, capture los valores en variables. En este ejemplo, los parámetros son Name (Nombre) y Location (Ubicación):
param (
[string[]]$Name,
[string]$Location
)
Puede usar estos parámetros como entrada y un bucle para crear un conjunto de máquinas virtuales basadas en los parámetros especificados. Este enfoque mantiene el script genérico y evita repetir el mismo código.
Combinación de técnicas
La combinación de características de lenguaje de PowerShell y cmdlets de Azure PowerShell proporciona todas las herramientas que necesita para automatizar las tareas de Azure. En el ejemplo de CRM, puede crear varias máquinas virtuales Linux mediante un script con parámetros y un bucle para simplificar el proceso. Este script permite realizar una operación compleja en un solo paso.
Script de ejemplo
Este es un script de ejemplo que muestra el uso de variables, bucles y parámetros para crear varias máquinas virtuales:
param (
[string[]]$Name = 'web','app','sql',
[string]$ResourceGroupName,
[string]$Location = 'eastus'
)
$adminCredential = Get-Credential
foreach ($vm in $Name) {
$azVmParams = @{
ResourceGroupName = $ResourceGroupName
Name = $vm
Credential = $adminCredential
Location = $Location
Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
OpenPorts = 22
PublicIpAddressName = $vm
}
New-AzVM @azVmParams
}
Ejecución del script
Guarde el script como CreateVMs.ps1
y ejecútelo desde la línea de comandos de PowerShell, proporcionando los parámetros necesarios:
.\CreateVMs.ps1 -ResourceGroupName <resource-group-name>
Con este script, puede crear de forma eficaz varias máquinas virtuales en diferentes grupos de recursos, automatizar tareas repetitivas y garantizar la coherencia en todo el entorno de Azure.