{How-To} Actualizar todos los agentes de VMM usando PowerShell

SystemCenter2012

 

Cuando trabajamos con una consola con unos cuantos hosts de virtualizacion e instalamos un update rollup suele ser una tarea engorrosa seleccionar cada uno de los hosts para marcar la actualización del agente, aca es donde PowerShell viene al rescate!

Lo único que debemos hacer es abrir una consola de Virtual Machine Manager Command Shell  y escribir:

$Cred = Get-Credential ; Get-SCVMMManagedComputer | Update-SCVMMManagedComputer -Credential $Cred -RunAsynchronously

Este cmdlet nos pedirá las credenciales con las que realizara el update de los agentes y luego seleccionara todos los equipos que esta controlando el VMM para luego generar un job de actualización por cada uno de ellos.

 

Configurar un Storage Dell EqualLogic PS Series como Storage Provider en VMM 2012 SP1

Hola, este es mi primer post entre la integración entre System Center y un producto de Hardware y creo que no va a ser el único, ya que hay muchas mas y muy interesantes.

En este post vamos a ver los pasos y requerimientos para configurar un Storage Dell EqualLogic PS Series como Storage Provider en nuestro Virtual Machine Manager 2012 SP1 (Beta), para esto vamos a tener que instalar en el host donde tenemos nuestro VMM Server, las Host Integration Tools (HIT) de EqualLogic en su versión 4.5 o posterior.

Luego de que este instalado y hayamos reiniciado el VMM Server, debemos abrir un Virtual Machine Manager Command Shell con permisos elevados (Run as administrator)

Una vez dentro de la consola de powershell debemos importar el modulo de EqualLogic

 Import-Module -Name “C:\Program Files\EqualLogic\bin\EQLPSTools.dll”

Nota: El path puede variar dependiendo del path que hayan usado en la instalación del las HIT.

Una vez importado el módulo tenemos una nueva serie de cmdlets disponibles, el que vamos a utilizar es el New-EqlGroupAccess el mismo se utiliza para configurar el accso al storage group de EqualLogic, los parametros que utlizaremos son:

  • -GroupName: [Nombre del Grupo]
  • -GroupWKAddress [IP del Grupo]
  • -MgmtMKAddress [IP Administrativa del Grupo]
  • -UserName [Usuario]
  • -Password [Clave]

de modo que el cmdlet completo nos quedaría algo así:

 

New-EqlGroupAccess -GroupName “GrpPrueba” -GroupWKAddress 192.168.100.100 -MgmtWKAddress 192.168.200.100 -UserName Administrator -Password “Password”

 

Una vez que creamos el Group Access debemos importarlo en nuestro VMM para ello usamos el cmdlet

 

Import-SCStorageProvider

 

Una vez que esto finalice, en nuestra consola de VMM en la sección de Fabric Storage -> Providers vamos a ver algo como esto:

 

Luego en la pantalla de Array podremos ver un poco mas de información acerca de los Array que son miembros del Grupo.

 

Una vez aqui hacemos click derecho sobre el Array y vamos a propiedades, vamos Storage Pools y hacemos click en el boton “Create Classification…”

Ponemos un nombre descriptivo, le damos ok y luego asignamos en nuestro Pool esta descripción de forma que quede algo similar a la siguiente pantalla.

 

Una vez terminado esto, nos dirigimos a Classification and Pools y ahí vamos a poder ver todas las Logical Units de nuestro Storage.

Con esto finalizado ya podemos crear y asignar Logical Units de nuestro Storage directamente desde VMM!

Como frutilla del post les dejo una muy tolkiniana parodia del Gangnam Style

 

Workaround: System Center Configuration Manager 2012 Stop Windows Server 2012 Hyper-V Virtual Machine Management

Hi, a few weeks ago I installed a Windows Server 2012 in production environment, some days later I found that the “Hyper-V Virtual Machine Management” is stoped.

I start the vmms service and it’s stopped again at the next day, searching about this issue, I found this post in technet, in the post some people resolve the problems uninstalling the System Center Configuration Manager 2012 Agent from the Hyper-V Host, in my case this is not the best option, I use the Agent for a lot of activities.

Reading the Hyper-V Event Viewer I found some EentID 19040 when the service is stopping, I create a scheduled task that use this events as trigger. in the action I write a powershell line that start the vmms service again

This is not a definitive solution, just a workaround.

This are the options to create the scheduled task.

Select “Run whether user is logged or not” and use an account with rights in the server.

 

 

In the trigger tab click new adn select a event trigger.

 

 

In the event trigger use Log, Source and EventID from the previous image

 

In the Action tab click at new and select Start a program.

 

 

In program use powershell and in arguments write:

-command “sleep 30 ; start-service vmms”

 

It’s done, when the vmms service is stopped again by SCCM Agent, this task will start it again.

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.