Search
  • benjamin1846

Conociendo más a fondo Rundeck

Publicado por Reinar Acuña, Community Support Engineer de Rundeck



Si has leído el post anterior de esta serie dedicada a Rundeck ¡Felicidades! a este punto ya te habrás dado cuenta de que la creatividad es el punto más fuerte que necesitas para aprovechar esta herramienta al máximo; pero haremos un pequeño paréntesis donde conoceremos un poco la herramienta y seguiremos configurándola como debe ser.


Componentes principales de Rundeck


Rundeck esta construido por una serie de frameworks , APIs y plugins que unidos provocan que toda la magia ocurra, aquí listo las que me parecen las más importantes.


Quartz


Una de las características vitales de Rundeck es la capacidad de programar tareas siguiendo bajo la nomenclatura de Cron; todo esto es porque detrás funciona Quartz, un motor para programar tareas que se integra perfectamente con el lenguaje Java.


Jetty


Jetty es el servidor web nativo, desarrollado por el equipo detrás de Eclipse, este resulta ideal para desarrollos en Java; igualmente podemos configurar Rundeck para que este “detrás” de un servidor Apache o NGINX. Esto es algo que veremos en su momento.


Apache Log4j


Log4j es un framework de generación de registros (en inglés: logs), lo suficientemente flexible para manejar registros específicos por separado, la documentación esta bastante bien y por lo general nos ayuda a salir de problemas cuando queremos personalizar la salida de registros.


H2


Es una base de datos ultra liviana que puede rivalizar con SQLite; viene por defecto al recién instalar Rundeck y si queremos trabajar en un entorno de producción “serios” tenemos que configurarlo con otra base de datos “de verdad” como MySQL, PostgreSQL o MariaDB entre otras, esto lo veremos en las siguientes entradas de esta serie.


Jsch


Jcsh es el “motor” que nos permite conectarnos a nodos remotos mediante protocolo SSH (mayormente máquinas UNIX, Linux, equipos de red e incluso la implementación OpenSSH de Windows).


PyWinRM


Así como podemos conectarnos a máquinas con protocolo SSH también podemos acceder a sistemas Windows remotos utilizando su protocolo nativo WinRM; Rundeck Python-Winrm Plugin, el plugin de Rundeck, se sirve de PyWinRM.

Versiones antiguas de Rundeck utilizaban este plugin, por lo tanto es probable que consigas un montón de tutoriales basados en él y no en Rundeck Python-Winrm Plugin.


¿Cómo se distribuye Rundeck dentro de tu sistema?


Aja, instalamos Rundeck y queremos saber donde esta cada cosa, a ver:


Directorio /etc/rundeck/


En este espacio están todos los archivos de configuración, por lo tanto si quieres modificar el comportamiento de Rundeck es aquí donde debes buscar.


Un consejo que te puedo dar (y que aplica para cualquier programa o solución en la que estés trabajando) es que hagas una copia de este directorio antes de hacer cualquier cambio; es muy fácil perderse y no encontrar la causa de una mala configuración, sobre todo cuando estamos empezando a conocer como trabaja.


Directorio /var/log/rundeck/


Como buena aplicación Linux, los archivos de registro (logs) se almacenan acá; quizá el más importante es el /var/log/rundeck/service.log, este archivo nos informará de todo lo que suceda en nuestra instancia en todo momento.


Directorio /var/rundeck


Aquí es donde se almacenan los archivos de los proyectos que creamos y donde, en teoría, deberían estar los archivos de definición de nodos que también creamos; esto lo veremos en la siguiente entrada de esta serie.


Directorio /var/lib/rundeck


Donde el corazón de Rundeck reside, el ejecutable principal por ejemplo, esta dentro del directorio /var/lib/rundeck/bootstrap/, los plugins que descarguemos los colocamos en el directorio /var/lib/rundeck/libext/ y la ya mencionada base de datos H2 reside en /var/lib/rundeck/data/.


Archivos de configuración más importantes y para qué sirven


/etc/rundeck/rundeck-config.properties


Este es el corazón de la configuración de Rundeck, casi todo lo importante se configura acá, desde el nivel de detalle de la salida de los logs, pasando por la configuración de la base de datos y hasta ciertos detalles como los cambios en la interfaz de usuario.


A medida que avancemos en la serie veremos como configurar estos parámetros.


/etc/rundeck/framework.properties


Quizá el segundo archivo más importante, aquí configuramos el nombre de host de nuestra instalación Rundeck, identidad de la instalación, puerto TCP, el directorio donde irán los proyectos (en caso de configurarlos en el sistema de archivos y no en una base de datos), ruta y usuario del sistema que usará Rundeck por defecto.


Al igual que con el archivo de configuración anterior, veremos bastantes modificaciones según necesitemos a lo largo de esta serie.


/etc/rundeck/realm.properties


Aquí es donde se definen los usuarios cuando no configuramos Rundeck para que obtenga los usuarios de OpenLDAP o Active Directory, este tema es importantísimo y lo veremos a futuro.


/etc/rundeck/log4j.properties


Como dije al principio de la entrada, Rundeck utiliza el framework Log4j, aquí podemos configurar el nivel de detalle y comportamiento de cada registro en específico.


/etc/rundeck/profile


He aquí un archivo sumamente importante que *no* debes modificar; en muchos tutoriales en Internet conseguirás que debes hacerlo (ya existe una manera para no hacerlo, lo veremos cuando compliquemos esta serie).


En realidad lo de modificar este archivo era una recomendación muy común para todas las versiones de Rundeck anteriores a la 3.0; pero ahora el archivo profile es como el Karate; se aprende para no usarlo.


En las próximas tres entradas de esta serie nos enfocaremos en como configurar Rundeck correctamente utilizando las tres bases de datos más usadas : MySQL de Oracle, PostgreSQL y SQL Server de Microsoft.

Santiago, Chile

©2020 by Variacode.

  • Icono social LinkedIn