Administrando Máquinas Virtuales con PowerShell en Azure (es-ES)
En este post aprenderás a usar PowerShell para la automatización y administración avanzada de Máquinas Virtuales en Azure.
Primero veamos ¿Qué es Windows Powershell?
Windows PowerShell es una interfaz de consola (CLI) con posibilidad de escritura y conjunción de comandos por medio de guiones (scripts en inglés).Powershell no sólo permite interactuar con el sistema operativo, sino también con programas de Microsoft como SQL Server, Exchange o IIS. La principal utilidad de Powershell es permitir automatizar tareas administrativas al usuario.
La característica distintiva de PowerShell, es que es un intérprete de comandos orientado a objetos. La información de entrada y de salida en cada etapa del proceso (cmdlet, “comándulo”) es un conjunto de instancias de objeto, a diferencia de lo que ocurre con los intérpretes de comandos tradicionales, que sólo devuelven y reciben texto.
Si estás comenzando a aprender esta herramienta te recomiendo estas lecturas http://technet.microsoft.com/en-us/library/hh857337.aspx
Ahora veamos un poco sobre Máquinas Virtuales(VMs)…
Una máquina virtual es un software que simula a una computadora y puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como “un duplicado eficiente y aislado de una máquina física”. Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta “computadora virtual”
Ahora que tienes una idea de estos conceptos veamos cómo podemos administrar nuestras VMs con ayuda de Powershell.
Puedes usar Windows PowerShell para administrar máquinas virtuales que se ejecutan en servidores Hyper-V Server Core, pero debes ejecutar las secuencias de comandos remotamente desde un equipo que tenga Windows PowerShell instalado. Además, los scripts de Windows PowerShell pueden utilizarse sólo para acceder a la interfaz WMI(Windows Management Instrumentation) en la instalación Server Core específica. Esto significa el cmdlet de Windows PowerShell primario que utilizarás para administrar máquinas virtuales que se ejecutan en Server Core es el cmdlet Get-WmiObject, que también tiene el alias asociado gwmi en Windows PowerShell.
Aquí están algunos ejemplos de cómo puedes utilizar secuencias de comandos de Windows PowerShell para administrar máquinas virtuales que se ejecutan en una instalación Server Core. Ten en cuenta que estos scripts son DEMOS y deben personalizarse para trabajar en tu entorno.
Este ejemplo muestra el estado de todas las máquinas virtuales
$VMState=@{2="Running" ; 3="Stopped" ; 32768="Paused" ; 32769="Suspended";
32270="Starting" ; 32771="Snapshotting" ; 32773="Saving" ; 32774="Stopping" }
get-wmiobject -computername localhost -Namespace root\Virtualization
-query "Select * from MSVM_Computersystem where Description like
'%Virtual%' " | format-table -autosize @{Label=”VM Name”;
expression={$_.elementName}}, Description, @{Label =”VM State”;
expression={$VmState[$_.EnabledState]}}
Máquina Virtual con Powershell
Requieres de 3 sencillos pasos para lograr este objetivo:
- Preparar tu entorno de trabajo
- Instalar el módulo de Windows Azure para Windows PowerShell
- Configurar la conectividad entre Windows Azure y tu estación de trabajo
Preparando tu entorno de trabajo
http://aprendiendowindowsazure.files.wordpress.com/2013/08/cloud_computing.png?w=545
Antes de empezar a usar los cmdlets de Windows Azure, asegúrate de tener:
- Un equipo que ejecuta Windows 8, Windows 7, Windows Server 2008 R2 o Windows Server 2012.
- Una suscripción de Windows Azure. Para obtener más información sobre suscripciones, vea Opciones de compra, miembro ofrece o prueba gratuita.
- Un certificado de gestión subido. Para obtener más información acerca de cómo crear y subir un certificado de manejo. ver cómo
Instalando el módulo de Windows Azure para Windows PowerShell
Instala el módulo de Windows Azure y establece la política de ejecución de Windows PowerShell. Tienes 2 opciones, ejecutar cmdlets mediante el shell de comandos de Windows Azure PowerShell o importar los cmdlets de Windows Azure directamente en Windows PowerShell. Sigue estos sencillos pasos para la instalación:
- Instala Windows Azure Powershell
Descárgalo desde aquí -> http://go.microsoft.com/?linkid=9811175&clcid=0x409
- Establece la política de ejecución de Windows PowerShell La política de ejecución de Windows PowerShell determina las condiciones que configuración de archivos y secuencias de comandos se ejecutan.
- Usa del shell de comandos de Windows Azure PowerShell Cuando instalas el módulo Windows Azure, el shell de comandos de Windows Azure PowerShell también está instalado.
- Importando el módulo cmdlet de Windows Azure en Windows PowerShell
Si prefieres integrar el módulo cmdlet de Windows Azure en Windows PowerShell, se puede importar fácilmente.
Para importar el módulo cmdlet de Windows Azure en Windows PowerShell, primero define la política de ejecución:
- Haga clic en Inicio-> todos los programas ->accesorios -> Windows PowerShell, clic derecho en Windows PowerShell y clic en ejecutar como administrador.
- En la ventana de Windows Azure PowerShell, escribe el comando siguiente, presiona Enter y luego escribe Y para terminar el comando:
PS C:\> Set-ExecutionPolicy RemoteSigned
- Escribe uno de los comandos siguientes y presiona Enter: En una versión de 64 bits del sistema operativo, escribe:
PS C:\> Import-Module "C:\Program Files (x86)\
Microsoft
SDKs\Windows Azure\PowerShell\Azure\Azure.psd1"
- En una versión de 64 bits del sistema operativo, escribe:
PS C:\> Import-Module "C:\Program Files\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1"
Configura la conectividad entre Windows Azure y tu estación de trabajo.
Antes de empezar a usar los cmdlets de Windows Azure para automatizar las implementaciones, debes configurar la conectividad entre tu workstation y Windows Azure. Esto puede hacerse manualmente mediante la configuración de los detalles del certificado y suscripción de gestión con los cmdlets de Set-AzureSubscription y Select-AzureSubscription, o automáticamente mediante la descarga del archivo PublishSettings de Windows Azure e importarlo. La configuración de Windows Azure PowerShell se almacena en: <user>\AppData\Roaming\Windows Azure PowerShell.
- Importa las configuraciones públicas y la información de suscripción.
El módulo de Windows Azure incluye los cmdlets de PublishSettingsFile que simplifican la configuración de su entorno de Windows PowerShell para su uso con Windows Azure. Complete los siguientes pasos para prepararse para implementar y administrar aplicaciones:
En el indicador de comandos de Windows PowerShell, escriba el comando siguiente y presione Entrar:
PS C:\> Get-AzurePublishSettingsFile
Se abrirá una ventana de navegador en https://windows.azure.com/download/publishprofile.aspx, donde puedes firmarte en Windows Azure.
Inicia sesión en el Portal de administración de Windows Azure y luego sigue las instrucciones para descargar los ajustes de Windows Azure editorial. Utiliza tu navegador para guardar el archivo como un archivo .publishsettings en el ordenador local. Ten en cuenta la ubicación del archivo.
En la ventana de Windows Azure PowerShell, ejecuta el siguiente comando
PS C:\> Import-AzurePublishSettingsFile <mysettings>.publishsettings
Donde <mysettings>.publishsettings es el archivo que ha descargado en el paso anterior. Se debe eliminar el perfil editorial que descargado después de importar esos ajustes. El perfil descargado contiene un certificado de manejo que no debe accederse por usuarios no autorizados.
Te recomiendo sigas la carrera en MVA sobre Windows Azure for IT PROS
http://www.microsoftvirtualacademy.com/Content/ViewContent.aspx?et=2850&m=2839&ct=16718#fbid=eiO--HYA8Tj