Search
  • benjamin1846

Configurando correctamente Rundeck con MySQL

Updated: Jul 22

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


En la primera entrada de esta serie aprendimos a instalar Rundeck bajo CentOS Linux y después hicimos un paréntesis para entender como es la bestia por dentro; hoy volvemos a lo práctico y configuraremos correctamente Rundeck para que almacene nuestros proyectos en la base de datos y no en el sistema de archivos.


Entremos en materia ¿Por qué usar una base de datos?


En realidad Rundeck viene pre-configurado con una base de datos llamada H2 que sirve sólo para toma de contacto y jugar un poco con la aplicación; el problema es que muchos configuran Rundeck para que almacene los jobs en base de datos (quedándose con H2) y al ver funciona sin problemas obvian el hecho de que podemos usar una base de datos “de verdad”, con todas las ventajas que conlleva.


Quedarnos con H2 para instancias de producción es un error porque estamos expuestos a inconsistencias en caso de que la data crezca demasiado y tener poco margen de maniobra en caso de querer extraer datos; además que con una base de datos “de verdad” estamos aprovechando de una serie de características que H2 no posee; ya desde algunas versiones recientes de Rundeck se puede ver un mensaje que nos advierte de esto:


Usage of H2 database is recommended only for development and testing



Aquí no cometemos errores, solo “Accidentes Felices”


Rundeck + MySQL





Primero lo primero, como root damos de baja el servicio Rundeck (rundeckd).

# systemctl stop rundeckd

Ahora podemos instalar MySQL, existen varias formas pero particularmente asumo que estamos usando igualmente CentOS (en un servidor remoto o en el mismo donde tenemos Rundeck instalado):

# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

Instalamos el paquete que contiene el repositorio:

# rpm -ivh mysql-community-release-el7-5.noarch.rpm

Actualizamos todos los repositorios:

# yum -y update

Instalamos MySQL:

# yum -y install mysql-server

Queremos que MySQL inicie automáticamente cada vez que inice el sistema:

# systemctl enable mysqld

Arrancamos el servicio MySQL:

# systemctl start mysqld

Es hora de configurar MySQL en este paso el programa nos hará una serie de preguntas, desde luego si esta en un host remoto la idea es que permita conexiones remotas; así que cuando nos pregunte le indicaremos que sí.

# mysql_secure_installation

Ahora tenemos que acceder a MySQL para crear la base de datos, para ello accedemos como root e introducimos la contraseña definida en el paso anterior:

# mysql -u root -p

Una vez dentro de MySQL creamos la base de datos de Rundeck:

create database rundeck;

Y creamos un usuario llamado rundeckuser con contraseña password con los permisos necesarios para operar la base de datos recién creada:

grant ALL on rundeck.* to 'rundeckuser'@'localhost' identified by 'password';

Ahora tenemos que indicarle a Rundeck que el nuevo origen de datos es MySQL y no H2, para ello vamos al archivo /etc/rundeck/rundeck-config.properties y comentamos esta línea:

dataSource.url = jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;MVCC=true

Y agregamos estas, si miras la primera linea puedes notar que se puede especificar la dirección del servidor de base de datos; desde luego puede estar en otro host:


dataSource.url = jdbc:mysql://direccion-de-tu-base-de-datos/rundeck?autoReconnect=true&useSSL=false
dataSource.username=rundeckuser
dataSource.password=password
dataSource.driverClassName=com.mysql.jdbc.Driver

Y le decimos que guarde los proyectos en la base de datos, agregamos esta línea al mismo archivo

/etc/rundeck/rundeck-config.properties:
rundeck.projectsStorageType=db

Ahora que todo esta configurado podemos iniciar el servicio Rundeck:

# systemctl start rundeckd

Voilá. El proceso en la documentación oficial lo encuentras acá. En la próxima entrada haremos lo mismo pero con PostgreSQL

Santiago, Chile

©2020 by Variacode.

  • Icono social LinkedIn