[Diario de Desarrollo] Semana 11/03 – 17/03

¡Comienza el desarrollo de CMSysBot!

Esta semana finalmente hemos dado comienzo al desarrollo del código de CMSysBot, realizando las primeras contribuciones al repositorio de Github.

Gran parte del tiempo ha sido invertido en familiarizarnos con la librería utilizada para desarrollar el Bot (python_telegram_bot), además de ir concretando algunas elecciones de diseño necesarias para ir implementándolo.

También, como una parte importante del resultado final del Bot se ve reflejada en el diseño de su interfaz (que hace un uso intensivo de menús para mostrar todas las opciones al usuario), estamos teniendo muy en cuenta el aspecto de UX. Esperamos poder compartir pronto prototipos de la interfaz para hablar mejor de sus funcionalidades y recibir feedback de cara a las próximas iteraciones del proyecto.

Algunas de las funcionalidades implementadas son las siguientes:

  • Menú principal de la aplicación y algunos submenús importantes.
  • Archivo config.json donde centralizar toda la configuración del Bot.
  • Funcionalidad básica para establecer conexión SSH entre el Bot y el ordenador objetivo.
  • Ejecutar comandos en un ordenador ajeno mediante el Bot a través de una conexión SSH, mostrando la salida como un mensaje.

En el siguiente vídeo se puede ver una preview con las nuevas implementaciones:

Si quieres estar atento al progreso del Bot, tienes disponible tanto el repositorio de Github como la cuenta de Twitter.

Equipos puentes de CMSysBot

Si ya sabes cómo es la infraestructura que lleva consigo CMSysBot, y has probado cómo funciona, ¡te estarás preguntando si es cuestión de magia!

No, no es magia, ¡pero a veces lo parece!

El bot está desarrollado de tal forma, que cuando el usuario introduzca la dirección IP de un equipo de la red para que este haga de equipo puente, el servidor (donde está alojado el bot, dentro de tu organización) se conectará mediante el protocolo SSH a este equipo, y es este equipo quien se encargará de enviar todas las peticiones masivas al resto de equipos.

¿Qué es un equipo puente?

Es cualquier equipo dentro de tu organización que tenga la posibilidad de realizar una conexión SSH al resto de equipos de la misma red.

Un ejemplo de equipo puente suele ser, por ejemplo, el equipo del propio administrador de sistemas.

¿Cómo funciona un equipo puente?

Son equipos utilizados como puente entre el bot y el resto de equipos dentro de la organización

¿Por qué se utilizan los equipos puentes?

Existe la posibilidad que sea el propio servidor el que realice estas conexiones SSH directamente a todos los equipos de la organización, pero esto podría suponer un problema de seguridad y existe la posibilidad de que la ejecución de muchas acciones simultáneas, hagan que el servidor se ralentice o se bloquee.

¿Puedo tener más de un ordenador puente?

Sí, ¡tantos como quieras!

En organizaciones grandes, como es el caso de la Universidad de La Laguna donde se está trabajando en implantar este bot para la gestión de aulas, se utiliza un equipo puente por cada aula.

¿Los ordenadores puente necesitan algún software especial?

Estos equipos sólo necesitan tener la opción Wake On Lan (WoL) de la BIOS activada y la herramienta sshpass.

Un equipo se convierte en equipo puente desde el momento que lo seleccionas desde el propio menú del bot.

De esta forma, cualquier equipo puede ejercer como equipo puente.

¿Cómo funciona CMSysBot?

CMSysBot es un proyecto que permite realizar una conexión entre el bot de Telegram y equipos de tu organización para poder administrarlos de forma remota y centralizada.

https://www.appelmo.com/wp-content/uploads/2015/10/Telegram-down-2.jpg

Para poder realizar esta administración de los equipos, es necesario disponer de un servidor Python con el bot instalado y en ejecución.

Este servidor debe tener acceso a las IPs de tu red local para poder realizar una conexión mediante el protocolo SSH (Secure Shell).

Los comandos y solicitudes enviados por los usuarios se envían al software que se ejecuta en nuestro servidor.

El servidor intermediario de Telegram se encarga de todo el cifrado y la comunicación con la API de Telegram.

Ahora podemos abrir una sesión con Telegram en un dispositivo que esté conectado en la misma red y comenzar a utilizar el bot.

Acerca de CMSysBot

¡Hola!

Te estarás preguntando ¿qué es CMSysBot?

Pues CMSysBot (Centralized Management for Systems Administration) es un proyecto de Software Libre que nace como necesidad de realizar una gestión centralizada de la administración de sistemas en la Universidad de La Laguna.

Este proyecto está siendo desarrollado por David Afonso (Universidad de La Laguna) y Andrés Nacimiento (Universidad de La Laguna).

En concreto, se trata de un bot para Telegram que permite administrar los equipos de una red local desde el propio bot, por ejemplo, ejecutar una serie de comandos en todos los equipos de forma automática, o realizar actualizaciones y recopilar información de los equipos, todo de manera centralizada.