DevOps: IBM Maximo + Control Desk
18-12-2018
DevOps: IBM Maximo + Control Desk

 

Siempre que sale una nueva versión del TPAE, tanto Maximo (MAM) como IBM Control Desk (ICD), tanto partner como clientes deberíamos actualizar nuestra versión demo para conocer los últimos avances y funcionalidades y dar de esta forma los primeros pasos en la planificación de una actualización.

 

El proceso de instalación de este producto es largo y, si ejecutado de forma manual trabajoso y propenso a fallos humanos.

 

Con estas ideas en mente, y con el objetivo de liberar los recursos de DevOps para tareas más estratégicas, hemos desarrollado un mecanismo automático que trata de provisionar e instalar un Maximo desde la creación de la máquina virtual al arranque de la aplicación. Para ello utilizamos herramientas OpenSource existentes en el mercado:

La solución final instala los siguientes componentes:

En este ejemplo la instalación ha sido realizada con un CentOS pero también funciona en un RHEL 7.

 

CICD

 

El sistema te integración continua está soportado por Jenkins Declarative Pipelines y es el responsable por ejecutar todos los pasos necesarios a la instalación. Hemos elegido esta solución porque de esta forma el script de Jenkins está ubicado en un sistema SCM y puede ser modificado como otro desarrollo. Se utiliza el plugin Ansible para Jenkins.

 

Los scripts de Ansible también están ubicados en un sistema SCM y la primera tarea del pipeline de Jenkins es su descarga.

 

El job de Jenkins está parametrizado con los parámetros a pasar a Ansible como la suite a instalar, el motor de BBDD, el host, etc.

 

Automatización

 

Las tareas de instalación están automatizadas en Ansible. Esta solución de gestión de configuración permite automatizar las tareas repetitivas y de esta forma liberar los equipos de DevOps para trabajos más estratégicos.

 

Al tratarse de una instalación a ejecutar 1 vez, los scripts de Ansible se ejecutarán 1 vez para la instalación y no volverán a ejecutarse para ese host. De esta forma no se utiliza un fichero de hosts único sino un fichero de hosts para cada instalación a realizar. Los parmámetros de cada instalación están asociados al host a instalar por lo que se utilizan ficheros de host_vars.

 

Instalación

El proceso de instalación supuso las siguientes tareas:

El hecho de tener automatizado el proceso supone también que este está documentado.

Particulariedades del Sistema Operativo

Aunque pertenezcan a la misma familia, hay algunas diferencias en la instalación con CentOS y RHEL, principalmente a nivel de paquetes a instalar. Estas particulariedades son mitigadas con Ansible utilizando los datos del sistema obtenidos por el motor de configuración (facts).

 

Ejecución

Al utilizar Jenkins Pipelines es posible de un vistazo ver en que momento del despliegue se encuentra la instalación bien como el tiempo que dura cada fase.

 

 

Resultado

El resultado es tener automatizado todo el proceso de instalación que, aunque tarde su tiempo, caso se instale la MAXDEMO de ICD tardó más de 12 horas en nuestro hardware, es ejecutado de forma desantendida. Este automatismo permite además tratar estas máquinas de demo de una forma más descartable.

Inicio
Soluciones
Quienes Somos
Contacto