System Center Service Manager: ¿El autoservicio mas completo para la nube privada en gran empresa?
Ayer os enseñe como usar Sharepoint + SCCM + Opalis + SCVMM para hacer un portal de autoservicio para pedir VMs a la carta.
Esta aproximación es buena (por cierto, gracias por los comentarios y correos) sin embargo para gran empresa pueden aparecer decenas de condicionantes a cada oferta de autoservicio, imputaciones de costes, procesos complejos de aprobación integración en la burocracia/ITIL de IT, etc, etc.
Antes de empezar deciros que para aquellos que no necesiten de tanta personalización o integración se puede obtener un estupendo portal de autoservicio muy facilmente y de forma gratuita empleando el portal de autoservicio 2.0 de SCVMM.
Para aquellos que si tengais que pegaros con este tipo de requisitos aqui va otra aproximación:
Hoy quiero ir un paso mas lejos y enseñaros como seria la solución mas completa basándose en SCSM.
SCSM es el producto de IT Service Manager de Microsoft, uno de los aspectos mas interesantes que tiene es el de gestionar el cambio.
Sin ponernos metafísicos enfocar una solicitud de autoservicio como un cambio compuesto de una serie de actividades es una aproximación acertada.
En SCSM hay por defecto tres tipos de actividades:
- Manuales: El nombre lo dice, aunque en la plantilla pongamos lo que hay que hacer, etc es un técnico el que tienen que hacerlo e indicar que lo ha completado.
- De Aprobación: Ya sea simple, por mayoría, con derecho a veto o como sea SCSM es capaz de gestionar este tipo de actividades.
- Automáticas: Workflows, llamadas a comandos o simplemente capturando desde Opalis la existencia de una actividad concreta pendiente de ejecución.
Lo interesante y este es uno de los puntos fuertes de SCSM es que es muy fácil personalizarlo, lo cual aplica también a las actividades, por ejemplo vamos a crearnos una actividad para que los usuarios puedan solicitar ampliaciones de memoria en VMs.
Solo tendremos que usar la herramienta de autor de SCSM para crearnos un management pack.
Lo primero que haremos será extender una clase que tenga como base la clase estandar de actividad
Ahora, tendremos que modificar las propiedades de la clase para que podamos especificar los datos requeridos por la actividad, algunos o todos ellos además podrán ser pasados como parámetros a Opalis para ser usados durante la automatización.
Lo primero será eliminar una propiedad nueva que se crea automáticamente y que no vamos a usar:
Vamos a crear tres propiedades:
No vamos a añadir por ejemplo propiedades pidiendo la razón del cambio o ese tipo de campos dado que estos ya se encuentran recogidos en el propio cambio y no queremos volver a pedirlos en la actividad.
Bien, debemos cambiar los tipos de las propiedades para coincidir con el tipo de dato:
Debemos indicar que tanto la cantidad de memoria como el nombre de la VM son obligatorios
Con la clase ya lista, vamos a crear un formulario personalizado:
Creamos las etiquetas (Label) que necesitaremos:
Añadimos los controles que queremos usar:
En la imagen anterior veis el formulario con un picker, para hacerlo así, en la clase tendríamos que crear una propiedad que estuviera relacionada con la target class de maquina virtual, en este ejemplo no lo haremos así, dado que lo complicaría un poco y no es cuestión para una demo.
Otra opción es usar una lista de SCSM que podríamos rellenar dinámicamente con las VMs, para eso necesitaremos también crear la propiedad usando el tipo “list”, por supuesto también podéis usar simplemente un textbox, el riesgo es que se introduzca una VM que no existe.
También es posible añadir código a los formularios a través del Visual Studio.
Con una lista lo haríamos así:
Yo voy a usar el tipo “list” indicando una nueva lista, que como digo rellenaremos dinámicamente con la VMs.
Es momento de hacer el enlace con las propiedades, para ello solo tenéis que seleccionar el control y en sus propiedades modificar el data binding.
Ya podemos guardar nuestro Management Pack.
Desde la consola de service manager importamos nuestro nuevo management pack
Ya tendremos la lista creada (la verdad es que podría haber rellenado el campo descripción y haber puesto espacios en el display name del management pack… que habría quedado mejor)
De momento vamos a meter algunos valores directamente, ya haremos que se rellene sola.
En el siguiente paso nos crearemos una plantilla de actividad desde el SCSM usando la actividad que hemos creado en la consola de autor.
No vamos a modificar nada, pues el usuario debe escoger todos los campos.
Aplicamos y aceptamos
Ahora creamos una plantilla de cambio
Cambiar los valores de los campos para evitar que los que pidan el cambio tengan que rellenar la información y adaptarlo a como queréis que se registre la información.
Ahora la parte que nos interesa, en el tab de actividades añadimos 2 una de aprobación y otra la que hemos personalizado nosotros:
Cuando añadimos una actividad de aprobación podemos indicar como se aprobara, si por votos, si alguien tiene derecho de veto, y obviamente también las personas o grupos que pueden aprobar.
En cuanto añadimos la actividad de aprobación se nos abrirá también el formulario para personalizarlo.
Una vez añadidas las actividades ya podemos crear un nuevo cambio con la nueva plantilla:
En actividades abrimos la actividad de ampliación de memoria:
Rellenamos los parámetros:
Guardamos el cambio.
Como hemos requerido aprobación el cambio tendrá que ser aprobado.
El cambio ha quedado registrado y tipificado, pero aun queremos mas, queremos que una vez aprobado se haga solo
Abrimos la consola de Opalis y nos creamos una nueva política en la carpeta que queramos:
Añadimos un objeto del tipo “Monitor Object” del IP e Service Manager.
Modificamos las propiedades del objeto indicando la conexión con SM y la clase correspondiente a la actividad que hemos creado, indicamos que queremos monitorizar actividades nuevas.
El siguiente objeto sera del tipo “Get Relationship” y lo vamos a usar para averiguar cual es el cambio relacionado con la actividad.
Los unimos
Paso siguiente, saber a que VM hay que hacerle el cambio, para eso vamos a usar el GET-VM del IP de Virtual Machine Manager
Indicamos que el nombre de la VM a la que queremos conectarnos es el que se ha especificado en el campo correspondiente que creamos en la actividad.
Para poder cambiar la memoria una VM tiene que estar apagada, así que la apagamos.
Vamos a modificar las propiedades del conector entre el get-vm y shutdown para que el shutdown solo pase si la VM esta arrancada.
Ahora añadiremos un update VM y lo enlazamos como veis a continuación
Modificamos el conector entre GET-VM y Update-VM para que solo funcione cuando la VM este parada
Lo siguiente va a ser actualizar la VM con la nueva cantidad de memoria que sera igual a la memoria que nos devuelve el objeto GET-VM que es la que ya tiene la VM mas la memoria solicitada en la actividad, para ello editamos las propiedades del Update-VM
Permitirme un cambio, si hemos tenido que apagar la VM entonces en SCOM saldrán alertas de que la VM no responde, etc.
Vamos a añadir un objeto de tipo Stop Maintenence Mode del IP de SCOM para poner el servidor en modo mantenimiento y que no salgan las alertas.
Nota: Por cierto me doy cuenta de que seria mas lógico haber puesto el modo mantenimiento antes de apagar la VM
5 minutos serán mas que suficientes para parar una VM, cambiarle la memoria y arrancarla.
Por si acaso este objeto no estuviera monitorizado modificamos el conector entre este objeto y el siguiente indicando que funcione pase lo que pase.
Al final nos quedara algo así:
Habéis visto como en poco tiempo podemos automatizar un proceso, ahorrando dinero y mejorando el servicio y como SCSM es una solución muy completa e interesante como frontal de autoservicio.
Un saludo a todos.