Lanzamiento de #NubePrivada – VMM desde PowerShell


Amigos, les dejo el material de la presentación que realice junto a Mariano Lopez sobre cómo administrar VMM desde PowerShell

 

En esta charla mostramos dos escenarios los cuales se basaban en:

  • Reconfigurar un servidor por medio de scripts
  • Realizar Deploy de WebServers utilizando diferentes scripts de powershell

A continuación pueden ver la presentación de PowerPoint que utilizamos como material de Soporte.

 

 

 

 

Gracias a Hernan Diaz, tenemos un video de la charla el cual les dejo a continuación.

 

 

 

 

 

 

Y como punto final acá pueden encontrar los scripts que utilizamos en la demostración.

Scripts de PowerShell para VMM

Saludos y nos estamos viendo en el próximo evento de #NubePrivada!

 

{How-To} desmontar todos los VirtualDVD de nuestras VM de un saque!

A menudo en la utilización de nuestras VM nos van quedando los VirtualDVD insertados con alguna imagen .iso y eso desparramado por toda nuestra infraestructura, como hacer para ir sacando estos medios virtuales de las diferentes VM, una forma seria desde VMM entrar una por una, entrar a las propiedades, Hardware Configuration, Virtual DVD drive y seleccionar no media….

Pero… cuando tenemos unas 80 VM… se torna un poco tedioso… ahí es donde vale la pena ponerse un ratito y armar algún pequeño script de PoweShell (digo esto mientras meto la mano en el bolsillo cual MacGyver buscando la Victorinox) y de un saque setear el VirtualDVD de nuestras VM en “No Media”

Lo que deberiamos de hacer es ejecutar una Ventana de PowerShell e incluir el PSSnapin de Virtual Machine Manager o directamente ejecutar “Windows PowerShell – Virtual Machine Manager”

luego ejecutar los siguientes cmdlets

Get-VM | where { $_.VMHost -like “patron”} | ForEach-Object {Get-VirtualDVDDrive  -VM $_.Name | Set-VirtualDVDDrive -NoMedia}

Vamos a analizarlo parte por parte para ver su funcionamiento, el primer cmdlet

Get-VM | where { $_.VMhost -kile “patron”} 

lo que hace es seleccionar todas las objetos VM que esten en los hosts (Hyper-V) cuyo nombre coincida con el patron, por ejemplo si nuestra nombenclatura para servidores de Hyper-V es que empiecen con el nombre SRVHyperV deberiamos poner: Get-VM | where { $_.VMhost -kile “SRVHyperV*”}

la salida de este cmdlet la redrigimos con pipe ( | ) hacia el siguiente cmdlet en este caso

ForEach-Object{}

este cmdlet lo que hace es para cada uno de los objetos (parametro que recivido desde el cmdlet anterior) ejecuta lo que tiene entre {} en el caso lo que se esta ejecutando es:

Get-VirtualDVDDrive  -VM $_.Name | Set-VirtualDVDDrive -NoMedia

lo cual tambien se divide en dos cmdlets

Get-VirtualDVDDrive  -VM $_.Name

el cual obtiene el objeto del VirtualDVDDrive del la VM haciendo referencia a esta con la variable $_ (variable con la que se obtiene el objeto desde el que se ha llamado a este) y la propiedad Name de dicho objeto. y luego redirigiendo con pipe el objeto VirtualDVDDrive hacia el siguiente cmdlet

Set-VirtualDVDDrive -NoMedia

Este cmdlet lo que realiza es setear el objeto VirtualDVDDrive, pasandole el modificador -NoMedia le indicamos que lo que queremos realizar es que deje configurado el Virtual DVD Drive del Servidor como si no tubiese ningun medio insertado.

En la siguiente imagen pueden ver como quedaría el cmdlet completo.

Todo esto puede resultar abrumador a primera vista, pero con el uso produce un gran alivio, ya que nos permite realizar en pocos pasos tareas que de otra forma serian muy monótonas.

 

Apertura y Bienvenida a la Comunidad de Usuarios de Tecnologías de Nube Privada

Amigos, Quería invitarlos el evento de lanzamiento de la Comunidad de Usuarios de Tecnologías de Nube Privada en la cual voy a estar dando una charla de manejo de System Center Virtual Machine Manager 2008 R2 desde PowerShell, en el link de abajo pueden  ver la invitación y registrarse.

Apertura y Bienvenida a la Comunidad de Usuarios de Tecnologías de Nube Privada

 

Comunidad de Usuarios de Tecnologías de Nube Privada

Estoy muy contento en comunicarles la creación del la “Comunidad de Usuarios de Tecnologías de Nube Privada” un grupo pensado para intercambiar conocimientos y experiencias en este campo de la informática que promete revolucionar la industria de IT durante los próximos años.

El grupo esta liderado por un grupo de coordinadores, del cual soy miembro, que cuentan con gran experiencia en este tipo de tecnologías y estamos preparando un evento como lanzamiento de la comunidad el cual se realizara el 8 de Noviembre de 2011, en las oficinas de Microsoft.

Espero pronto tener los datos para la inscripción, en el mientrastanto los invito a ingresar a nuesta pagina, y unirse al grupo de LinkedIn.

www.nubeprivada.org

 

PowerShell: 1 – PSSnapin y modules

Muy buenos días, en esta oportunidad y aprovechando el rediseño y paso a wordpress  de mi blog voy a escribir unas poco sobre una gran herramienta PowerShell.

En la descripción de wikipedia vemos que se trata de una interfaz de linea de comandos (CLI) orientada a objetos, la cual nos permite administrar nuestro servidores, ya sea en cuanto Sistema Operativo, Active Directory, Exchange, Lync, System Center, etc

A su vez nos permite armar scripts y concatenar la salida de un comando hacia la entrada de otro, esto hace que sea una herramienta sumamente versátil a la hora de accionar, un ejemplo practico de esta versatilidad en la concatenación seria por ej; usar un comando de PowerShell para obtener los miembros del grupo Contabilidad en Active Directory y redirigir la salida de este comando hacia un comando en PowerShell para habilitar la funcionalidad de meetings en Lync, de forma que de una sola vez podríamos darle ese permiso a todos los miembros de ese grupo, sin tener que realizar el cambio uno por uno.

Powershell es un sistema totalmente modular, lo cual quiere decir que nosotros podemos agregar o quitar módulos que son colecciones de cmdlets (comandos) y PSSnapin que son una colección de cmdlets y dlls para manejar diferentes sistemas y extender las funcionalidades de PowerShell, por ejemplo agregar PSSnapin de SQL para administrar nuestros servidores de Bases de Datos o de Virtual Machine Manager para trabajar con el entorno virtualizado.

Estos PSSnapin, generalmente están para instalar con las herramientas administrativas de los productos, como ser Exchange, SQL Server, etc

En este post nos dedicaremos a ver que PSSnapin y módulos tenemos en nuestro equipo y como cargarlos para luego utilizarlos.

Podemos ver que PSSnapin tenemos cargados con el comando: Get-PSSnapin

de forma que veríamos algo así:

Get-PSSnapin

Get-PSSnapin

con el mismo comando usando el modificador -Registered podemos ver los que tenemos disponibles para cargar, el comando quedaría Get-PSSnapin -Registered:

Get-PSSnapin -Registered

Get-PSSnapin -Registered

Luego con el comando Add-PSSnapin cargamos el PSSnapin seleccionado, un buen ejemplo de como se pueden concatenar los cmdlets es como podemos listar los PSSnapin disponibles y cargarlos haciendo Get-PSSnapin -Registered | Add-PSSnapin :

Get-PSSnapin -Registered | Add-PSSnapin

Get-PSSnapin -Registered | Add-PSSnapin

De la misma forma que añadimos los PSSnapin vamos a añadir los módulos que necesitemos en nuestra consola de PowerShell, el comando Get-Module -ListAvaiable nos va a mostrar que modulos estan disponibles en nuestro equipo

Get-Module -ListAvailable

Get-Module -ListAvailable

y de la misma forma que con el comando Get-PSSnapin redirigimos esta salida al comando Import-Module para activarlos todos, formando Get-Module -ListAvailable | Import-Module 

Get-Module -ListAvailable | Import-Module

Get-Module -ListAvailable | Import-Module

 

Continuara…. PowerShell: 2 – Comandos básicos

Fuentes:

http://technet.microsoft.com/es-es/library/ms714415(VS.85).aspx

http://technet.microsoft.com/es-ar/scriptcenter/dd742419