Por el Equipo de la UN de Gestión TI
Entre todas las tecnologías que podemos encontrar, Ansible se ha convertido en una de las soluciones más populares del mercado: Es una solución Open Source impulsada por Red Hat, capaz de cubrir prácticamente cualquier necesidad del departamento de TI, escalable, que no requiere de grandes conocimientos en programación, muy poco intrusiva, etc. Y ante el éxito de esta plataforma, este artículo girará en torno a ella.
¿Qué podemos hacer con Ansible?
Ansible se basa en una tecnología suficientemente flexible como para poder automatizar cualquier tarea de administración, operación y soporte de los departamentos de TI. Algunos de los casos de uso típicos son:
- Provisión de infraestructura.
- Instalación, configuración, parcheados o upgrades de aplicaciones.
- Remediación de incidencias como respuesta a eventos.
- Resolución automática de peticiones de usuario.
- Altas y bajas de los usuarios en los sistemas.
- Securización de equipos.
- Ejecución de procedimientos Ready-for-business.
¿Cómo iniciar un proyecto de Ansible?
A continuación, presentamos una lista de aspectos que consideramos clave a la hora de abordar de forma eficiente un proyecto de automatización con Ansible:
1. Implica desde el principio a los equipos técnicos
Como todo proyecto, automatizar supone necesariamente lidiar con la resistencia al cambio. Para mitigarla, siempre es recomendable hacer partícipes a los equipos desde el primer momento, ya que su participación será imprescindible a la hora de identificar las tareas repetitivas y de diseñar la solución.
Transmitir correctamente los objetivos de esta iniciativa e involucrarles activamente en el proyecto nos evitará muchas trabas.
2. Identifica y cuantifica las tareas candidatas a automatizar
La identificación de las tareas repetitivas dentro del Departamento de TI es la primera de las tareas a realizar. A pesar de que esta “auditoría” requiere tiempo, es importante tener una imagen lo más clara posible de las tareas recurrentes, identificando el tiempo necesario para realizarla y el número de veces que ésta se realiza.
3. Prioriza buscando quick wins
No hay mejor manera de mantener el impulso de una iniciativa que la de demostrar con resultados tangibles los beneficios alcanzados. Una planificación basada en la obtención de “quick wins” y la capacidad para medir y reportar los resultados obtenidos es sin duda la mejor estrategia posible.
4. Empieza por lo pequeño, pero piensa en grande
Como cualquier tecnología, Ansible requiere de un proceso de aprendizaje y, por eso, siempre es recomendable empezar diseñando tareas sencillas. A medida que controlemos la tecnología, ya podremos abordar automatismos más complejos. Además, las pequeñas automatizaciones (tareas / roles) podrán ser utilizadas en playbooks más complejos.
La flexibilidad que proporciona Ansible es en realidad un arma de doble filo: si no se diseña la solución pensando en la futura escalabilidad y mantenibilidad del sistema, es fácil cometer errores de base que después sean difíciles de corregir. Por eso, hay que tener en cuenta que la solución crecerá cuando se diseñe el inventario, la futura estructura de Playbooks, plays, roles y variables.
5. Utiliza las variables y los módulos existentes
A la hora de diseñar un flujo de automatización, es recomendable utilizar los módulos ya existentes para no tratar de reinventar la rueda. El uso de variables también es fundamental ya que permiten reutilizar el código que se vaya construyendo. De esta forma, el proceso de creación será mucho más eficiente.
6. Implementa una solución GUI sobre Ansible
Está claro que el motor de Ansible es la pieza clave de la solución, pero en su versión opensource éste no incorpora una interfaz gráfica. Para el personal más técnico esto no suele ser un problema, pero llegará el momento en que queramos enseñar la solución a perfiles menos técnicos (responsables o personal de otros departamentos) y contar con una interfaz gráfica ayuda bastante…
Por suerte hay una gran variedad de soluciones en el mercado que además de otorgarle una apariencia más agradable, proporciona utilidades bastante útiles como acceso mediante API o la gestión de usuarios. Algunos ejemplos son AWX, Semaphore, Foreman o, sin ir más lejos, la versión comercial de Ansible: Red Hat Ansible Automation Platform.
7. La documentación es importante
Ya lo sabemos, el lenguaje YAML hace que el código creado sea relativamente fácil de entender… Pero, sintiéndolo mucho, la documentación sigue siendo importante. En el momento en que la plataforma va creciendo, tener una buena documentación (que no implica que sea extensa, pero sí bien estructurada) reduce enormemente el tiempo necesario para crear nuevos flujos o modificar los existentes.
Todos estos consejos nacen de nuestra experiencia abordando este tipo de proyectos, y teniéndolos en cuenta, se incrementan enormemente las probabilidades de que Ansible se convierta en un auténtico éxito.
Si necesitas ayuda, desde ABAST podemos ofrecerte asesoramiento sobre esta solución o encargarnos nosotros de implementarla y definir la automatización de algunas tareas iniciales. Podéis contactar con nosotros a través del formulario de contacto de esta web o escribiendo a gestionti@abast.es.
Difícilmente se encuentran proyectos con un mayor retorno de la inversión. ¡Ánimo y a automatizar!