Be geek my friend

Blog de Daniel Matey

Receta: Maquinas virtuales a la carta

Receta: Maquinas virtuales a la carta

  • Comments 2
  • Likes

El objetivo: Permitir a los clientes de nuestra nube privada solicitar maquinas virtuales con una configuración y aplicaciones determinadas.

Aviso: Este articulo es una simple prueba de concepto rápida, ponerlo en producción puede requerir cambios y trabajo adicional.

La receta:

1- El portal de autoservicio:

Aquí las posibilidades son muchas, básicamente queremos que un usuario acceda a un interface y seleccione las opciones que conducirán a generar la VM, así que necesitamos un interface que podamos personalizar fácilmente con nuestras opciones.

Creo que tenemos 3 opciones principales:

  • Usar el sistema que la empresa tenga implantado para la gestión de solicitudes/ordenes de trabajo tales como SCSM, Remedy, etc., generar una plantilla con nuestras opciones y escuchar este tipo de solicitudes.
  • Usar SharePoint como interface, esto nos permite una fácil personalización, aprobaciones, acceso web, posibilidad de ponerlo en la intranet con el branding de la empresa, etc.
  • Programarnos un interface desde 0 o usar un sistema en 2 pasos en los que el usuario pida a través del portal de autoservicio 2.0 de SCVMM la VM y luego desde otro sitio solicite el software y otras opciones.

-La primera opción puede ser mi favorita para muy gran empresa, la ultima no me gusta nada y la de usar Sharepoint me viene muy bien para este articulo por que mi objetivo es no tardar mas de 1h en hacerlo Winking smile.

Así que empezamos creando nuestro formulario, para ello creamos una lista en el Sharepoint:

image

image

image

Ahora iremos creando los campos que queremos.

image

Os voy a enseñar algunos ejemplos:

-Ofrecer al cliente varias opciones en un desplegable:

image

image

-Seleccionar opciones excluyentes:

image

-Opciones Si/No

image

Cambiamos la columna titulo para que indique automáticamente el usuario y la fecha

image

Ya podemos ver el formulario:

image

image

Vamos a hacer unas cuantas cosas mas, vamos a añadir una columna oculta para guardar el estado de la solicitud cuyo valor por defecto va ha ser “pendiente de aprobación” , de esta forma las solicitudes no se procesaran directamente si no que alguien con atribuciones para ello tendrá que poner el estado a “Aprobado”.

image

Nota: si, si, se que se podrían usar workflows de aprobación de SharePoint, etc., pero esto es una demo, vamos a mantenerlo tan simple como podamos que quiero hacerlo en menos de una hora Smile.

Crearemos también otra columna oculta para guardar un log del proceso.

Por supuesto lo suyo seria abrirlo desde el SharePoint designer, quitar el campo titulo y formatear mejor el formulario, pero para el ejemplo/demo me vale.

Nos copiamos el enlace y probamos a acceder directamente al formulario:

image

image

Con esto tenemos nuestro prototipo de interface y podemos pasar al siguiente paso.

2- Los componentes de la VM

Necesitamos varias cosas para poder componer la VM:

Las plantillas de maquinas virtuales, que en este caso serán dos una con XP y otra con Windows 7.

Las plantillas tienen que estar preparadas para meterse automáticamente en dominio y tienen que llevar el cliente de SCCM preparado para que después del arranque reporten al SCCM.

Esto es fácil y no lo voy a explicar, si alguno tiene dudas sobre como generar plantillas de SCVMM ponerme un comentario y lo explico.

image

El siguiente paso es tener cada opción de software en SCCM dado que será lo que usemos para distribuir el software según lo especificado por el usuario.

Como sabéis el software que incluimos en SCCM para su distribución puede ser normal o virtual (App-V) yo personalmente soy fan de este ultimo por todo lo que implica a nivel de ahorros de coste, mantenimiento, etc., si no lo conocéis, evaluarlo!.

image

Otra cosa que haremos gracias a SCCM es meter el software base de todo equipo en nuestra red, tal como el antivirus, el reader, etc, evitando poner todo este software directamente en las plantillas estamos reduciendo el coste de propiedad de estas maquinas virtuales.

Como también estamos dejando a los usuarios escoger la política de backup que quieren para sus VMs vamos a necesitar un Protection Group en SCDPM para cada tipo de backup que ofrezcamos.

image

image

image

Aunque en este ejemplo hablemos de escritorios en realidad son VMs sobre servidores de Hyper-V así que el backup lo hacemos desde Hyper-V, como SCDPM nos permite la restauración granular de archivos dentro de una VM sin recuperar la VM completa la solución nos da todo lo que necesitamos y se hace con la VM en marcha.

Tenemos que seleccionar algún contenido para hacer backup para poder avanzar en el asistente, vale con un simple fichero, las VMs se harán añadiendo a medida que se creen.

Tendremos que incluir cada nodo de los clusters donde vayan a estar las VMs o en los servidores independientes que usemos.

image

Lo siguiente será darle un nombre a este grupo de protección y seleccionar si queremos hacer el backup en disco o cinta.

image

Ahora indicamos cada cuanto haremos el backup y cuantos días queremos retenerlo, la hora, etc.

image

Reservamos el espacio que necesitemos

image

El método que se usara para la primera copia:

image

Comprobaciones de consistencia del backup

image

Y creamos el grupo de protección…

image

image

Siguiente elemento el Broker VDI, podríamos usar el de Microsoft o el de Citrix, Quest, etc.

En este ejemplo usare el de Microsoft que es el que tengo mas a mano.

image

En el broker vamos a indicar que la VM pertenece al usuario de forma que entre directamente a ella, si los usuarios van a tener muchas VMs porque por ejemplo sean desarrolladores que usen varias, es posible no usar ni broker y que entren directamente por escritorio remoto a las que necesiten.

Creo que ya tenemos todo lo que necesitamos para continuar con esta demo.

3- Automatizar el proceso

Ahora usaremos Opalis que recordareis es nuestro orquestador dentro de System Center y que va incluido en la suite de System Center, ya hemos hablado mucho en este blog de Opalis asi que espero que lo conozcáis, si no un buen lugar para empezar es este: http://blogs.technet.com/b/dmatey/archive/2010/12/10/introducci-243-n-a-system-center-opalis-tu-mejor-aliado-en-el-d-237-a-a-d-237-a.aspx

En Opalis vamos a crear nuestra orquestación del proceso automatizándolo, básicamente será algo así:

image

 

Empezamos, haciendo una nueva carpeta para nuestro proceso:

image

image

Generamos una nueva política que será la principal

image

La cambiamos el nombre a 0-Principal

Configuramos la conexión con nuestra lista en Sharepoint

image

image

La primera tarea de la política será estar escuchando en el sharepoint

image

Configuramos la tarea para que espere elementos actualizados (recordar que queremos aquellos que esten en estado “Aprobados”) que mire cada 30 segundos.

image

Configuramos el filtro

image

image

Siguiente paso actualizar la solicitud para que muestre que estamos procesándola

image

Une las dos acciones (yo prefiero ir poniendo la línea verde indicando que todo va bien):

image

Indicamos que queremos actualizar el elemento de la lista que hemos encontrado antes:

image

image

Y cambiamos el valor del campo Estado

image

Siguiente paso crear la VM, pero primero tenemos que saber que plantilla usar, como el nombre que selecciona el usuario en el formulario no es el mismo que tenemos en SCVMM tenemos que hacer algo que nos devuelva el nombre real que necesitamos.

Usamos el Map Published Data para saber la plantilla en función de lo seleccionado por el usuario:

image

image

image

Ya podemos hablar con SCVMM para crear la VM

image

Introducimos los valores a través de todo lo que sabemos anteriormente.

Si esto lo fuera a hacer en producción obviamente el nombre del host y el disco no lo podríamos poner fijo si no que tendríamos que averiguarlo interrogando el intelligent placement de SCVMM para que nos diga el mejor host posible.

image

Hay que asegurarse de que la VM ya existe y que esta en estado Stopped, después solo queda arrancarla.

image

Ponemos un loop que mire que el estado sea stopped eso indicara que ha terminado de desplegarse del todo (después me di cuenta que esto del looping no es necesario, dado que la tarea de crear la VM no pasa el testigo a esta hasta que no ha terminado de crear la VM)

image

Lo siguiente será arrancar la VM

image

image

Siguiente esperar que el equipo aparezca en la colección de todos los equipos Windows de SCCM, como son varios pasos para no complicar mucho el tema vamos a crear otra política y llamarla desde esta.

La primera tarea será empezar cuando se la llame pidiendo como parámetro el nombre de la maquina.

image

image

Esta es la colección que nos interesa:

image

image

image

image

Modificamos las propiedades de la política para que publique un campo de tipo booleano que indique si ha encontrado o no la maquina en la colección.

image

image

Modificamos el enlace para que solo se produzca cuando se ha encontrado la maquina.

image

Ahora tenemos que publicar los datos para que la política que llame a esta sea capaz de cogerlos:

image

Desde la política principal llamamos a la otra política:

image

No quiero que el post sea eterno, y creo que habéis pillado la forma, ahora hiramos creando sub-políticas como esta ultima para añadir los advertisements de software del SCCM a la maquina, añadir el broker, etc.

image

Añadimos lo de ir guardando el estado en el log en los objetos que nos interesen

image

Generamos una sub-política que notifique el fallo guardando en el log de la solicitud el problema y mandando un correo al usuario que pidió la VM y a un responsable.

Para enlazarlo para que solo se ejecute cuando ocurra un error modificamos las propiedades del enlace.

image

image

Solo nos queda indicar que el proceso a finalizado

image

image

Ejecutamos la política en modo test para ir viendo el resultado:

image

La arrancamos:

image

Se quedara esperando que metamos una solicitud en el sharepoint

image

Ya la tenemos metida, así que cambiamos su estado a aprobada

image

Esperamos un poco y el opalis encontrara la solicitud aprobada

image

Y bueno como era lógico con las prisas falla Smile

image

La razón es que hemos dicho que la memoria sea 4 y nos esta pidiendo MB y 4 esta por debajo del mínimo permitido así que modificamos el formulario para que en vez de 4 ponga 4000 y ejecutamos de nuevo.

Otro fallo:

image

Había usado en el nombre de la VM como parámetro el nombre del usuario que había rellenado la solicitud, pero el campo que había elegido venia en formado dominio\usuario y \ es un carácter no permitido, lo cambio y continuamos.

Después de resolver estos problemas la VM ya se aprovisiona.

image

No os voy a engañar, salieron mas errores pero se solucionaron igual de rápido.

También tuve que hacer algún cambio de ultima hora, cuando lo tenga mas fino os publicare aquí la política exportada.

Al finalizar el proceso tenemos nuestro log y un usuario contento Smile

image

Espero haberos mostrado con este ejemplo el potencial de System Center para solucionar cualquier necesidad de gestión que se os pueda presentar.

Un saludo a todos.

Comments
  • Fántastico post...enhorabuena...la idea es brutal

  • Hola, muy bueno el post. Me gustaría que me explicaras como crear plantillas del SCVMM por favor

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment