South Europe, Spain
listas@juanquijano.es

Operaciones con una VM de Azure desde PowerShell

Me he montado una máquina virtual  de desarrollo en Azure, y no quiero andar arrancándola y entrando en ella a través del portal, porque es bastante lento.

Por ello, me he picado el siguiente powershell que me lanza diferentes operaciones básicas contra la máquina virtual.

Pre requisitos

Lo primero es que el sistema en donde lo voy a lanzar permita ejecutar scripts.  Y, aunque es un agujero de seguridad, por ir más deprisa en este artículo, le lanzo un:

[powershell]
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
[/powershell]

A continuación declaro las tres variables que voy a utilizar. El id de la suscription que voy a utilizar como contexto, el nombre del grupo de recursos, y el nombre de la máquina virtual.

El nombre del servicio es el nombre DNS que le debes poner a la IP a donde está conectada la VM; lo cual, desde el portal, lo puedes hacer sin problema, en el overview de la máquina virtual, en el encabezado, en la parte de DNS.

[powershell]
$suscriptionId = "c1ccc0cc-cc41-4c75-857c-eccc8052cc2c"
$resourceGroupName = "trainer"
$vmName = "trainer"
[/powershell]

Las siguientes líneas son para identificarme en Azure y seleccionar, entre las seis suscripciones que tengo, cual es la que quiero utilizar como contexto para las operaciones que siguen a continuación.

[powershell]
# Con esto me logo en la cuenta de Azure
Login-AzureRmAccount
# Con esto saco el listado de suscripciones. Solo es necesario si necesito encontrar el Id de la suscripción
Get-AzureRmSubscription

# Con esto selecciono la suscripción sobre la que voy a lanzar los cmdlets
Set-AzureRmContext -SubscriptionId $suscriptionId
[/powershell]

Si quiero saber el estado de mi VM (no es necesario), le lanzo el siguiente cmdlet. Pero tengo que tener en cuenta que me van a salir todas las máquinas virtuales que tenga dentro de este grupo de recursos. Para este caso, solo sale una.

[powershell]
Get-AzureRmVM -ResourceGroupName $resourceGroupName -Status | Select-Object Name, PowerState;
[/powershell]

Aquí es donde arranco la VM (si ya está arrancada, no pasa nada, ya que no dá error)

[powershell]
Start-AzureRmVM -ResourceGroupName $resourceGroupName -Name $vmName<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>
[/powershell]

En este cmdlet descargo el fichero RDP y lo lanzo.

[powershell]
Get-AzureRmRemoteDesktopFile -ResourceGroupName $resourceGroupName -Name $vmName -Launch
[/powershell]

Por último, cuando haya terminado, apago la VM. Aquí  PowerShell me saca una caja de alerta para asegurarse que quiero apagar la máquina.

[powershell]
Stop-AzureRmVM -ResourceGroupName $resourceGroupName -Name $vmName
[/powershell]

Espero que sea de utilidad.

Tags:

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: