Instalar Rundeck en Proxmox: cómo montarlo en un LXC paso a paso

Instalar Rundeck en Proxmox es una forma muy práctica de empezar a automatizar tareas en un homelab sin complicarte con varias redes, máquinas de salto o despliegues más grandes de la cuenta. En este montaje lo dejo todo en una sola red, con un contenedor LXC Ubuntu y una IP fija dentro de la LAN.

La idea es sencilla: tener una base limpia y funcional sobre la que luego poder seguir construyendo. Primero dejamos Rundeck instalado y accesible por web, y después ya habrá tiempo de conectarlo con Proxmox, montar proyectos y empezar a lanzar despliegues.

Llevaba tiempo queriendo dejar montado un entorno sencillo con Rundeck sobre Proxmox para empezar a automatizar despliegues sin meter todavía demasiada complejidad. Nada de varias redes, nada de máquina de salto, nada de separar gestión y servicio. Solo una LAN normal, un contenedor LXC y una IP fija en la red de casa o del lab.

Para este primer montaje he preferido ir a algo muy simple y fácil de reproducir. La idea es dejar Rundeck instalado dentro de un LXC Ubuntu en Proxmox, con una sola interfaz de red, una sola IP y acceso directo por web. Más adelante ya complicaremos el diseño si hace falta, pero para empezar, cuanto más limpio quede, mejor.

Además, este enfoque encaja bastante bien con cómo está planteado Proxmox. La propia documentación oficial recuerda que Proxmox VE usa LXC como tecnología de contenedores y que el toolkit pct simplifica su gestión, así que para este tipo de servicio ligero tiene bastante sentido tirar por aquí en vez de arrancar directamente con una VM completa.

Requisitos

Para montar esto no hace falta gran cosa. Basta con tener Proxmox VE funcionando, una plantilla LXC de Ubuntu descargada y una IP libre dentro de tu red local. En mi ejemplo voy a usar algo como esto:

Red LAN: 192.168.10.0/24
Proxmox: 192.168.10.10
Rundeck LXC: 192.168.10.50
Gateway: 192.168.10.1
DNS: 192.168.10.1

Rundeck, yo voy a a usar la version community, funciona sobre Java. La documentación oficial indica que, a día de hoy, soporta Java 11 o Java 17, y que en Linux soporta al menos Ubuntu 22.04.3 o superior y Debian 11.8 o superior. También deja claro que por defecto escucha en los puertos 4440 para HTTP y 4443 para HTTPS.

Aquí hago una puntualización importante. Las recomendaciones oficiales de recursos para Rundeck son bastante altas porque están pensadas para entornos más serios, no para un homelab pequeño. Para laboratorio yo empezaría mucho más abajo, por ejemplo con 2 vCPU, 4 GB de RAM y unos 16 GB de disco, sabiendo que si luego le metes muchos jobs, plugins o ejecución intensiva, tocará subir recursos. Las cifras oficiales recomendadas y mínimas publicadas por Rundeck son bastante superiores.

Tal y como recoge la documentación oficial de Proxmox, los contenedores LXC encajan muy bien para este tipo de servicios ligeros.

Arquitectura del montaje

En este artículo lo voy a dejar en un escenario muy básico:

Proxmox VE
└── LXC Ubuntu 24.04
└── Rundeck
└── Acceso web por http://192.168.10.50:4440

Nada más.

No voy a meter aquí reverse proxy, ni HTTPS propio, ni integración con Proxmox, ni proyectos, ni tokens, ni Ansible. Eso lo veremos después. El objetivo de hoy es solo dejar Rundeck instalado, arrancando y accesible.

Crear el contenedor LXC en Proxmox

Yo aquí iría por GUI porque para este caso es lo más rápido.

En Proxmox crea un contenedor nuevo con una plantilla Ubuntu. Si tienes disponible Ubuntu 24.04 LTS, para este montaje me parece una base muy buena. Proxmox soporta tanto máquinas virtuales como contenedores Linux, y para este tipo de servicio encaja perfectamente tirar por LXC.

La configuración que usaría para arrancar sería algo así:

Hostname: rundeck
CT ID: 150
CPU: 2 vCPU
RAM: 4096 MB
Disk: 16 GB
Bridge: vmbr0
IP: 192.168.10.50/24
Gateway: 192.168.10.1
DNS: 192.168.10.1

Yo lo dejaría con IP fija desde el principio. Se puede hacer por DHCP con reserva, pero para un servicio como Rundeck prefiero tenerlo ya claro desde el arranque.

Cuando termine la creación, arranca el contenedor y entra por consola o por SSH.

Actualizar el sistema base

Lo primero dentro del LXC es dejar Ubuntu al día.

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg ca-certificates

Esto no tiene misterio, pero conviene hacerlo antes de meter Java y el repositorio de Rundeck.

Instalar Java

Aquí hay dos caminos razonables: Java 11 o Java 17. La documentación oficial de Rundeck soporta ambos. En un Ubuntu reciente yo prefiero tirar ya por Java 17, que encaja mejor con un sistema actual y evita quedarte demasiado atrás desde el primer día. Rundeck sigue dejando claro en su documentación que la base necesaria es tener un runtime Java compatible instalado antes del proceso.

sudo apt install -y openjdk-17-jre-headless
java -version

Si todo va bien, deberías ver la versión instalada sin más historia.

Añadir el repositorio de Rundeck

La instalación oficial en Debian y Ubuntu puede hacerse añadiendo el repositorio de paquetes de Rundeck. La documentación mantiene un script para ello y después permite instalar el paquete con apt. En la guía oficial también aparece el arranque del servicio y el primer acceso web.

Yo lo dejaría así:

curl https://raw.githubusercontent.com/rundeck/packaging/main/scripts/deb-setup.sh 2> /dev/null | sudo bash -s rundeck
sudo apt update
sudo apt install -y rundeck

Con eso debería quedar instalado el paquete comunitario de Rundeck en el contenedor.

Arrancar el servicio

Una vez instalado, toca levantar el servicio.

sudo systemctl daemon-reload
sudo service rundeckd start
sudo systemctl status rundeckd

La propia documentación oficial indica el arranque con service rundeckd start y recomienda revisar el log de servicio para confirmar que la aplicación ha levantado correctamente. También indica que, cuando todo arranca bien, Rundeck queda accesible por defecto en http://localhost:4440.

Si quieres seguir el arranque en tiempo real, puedes mirar el log:

tail -f /var/log/rundeck/service.log

Cuando ya veas que ha levantado bien, puedes salir del tail.

Abrir Rundeck por web

Llegados a este punto, si todo ha ido bien, deberías poder entrar desde tu navegador a la IP del contenedor:

http://192.168.10.50:4440
Acceso despues de instalar Rundeck en Proxmox

La documentación oficial de Rundeck indica que el primer acceso se hace con el usuario admin y contraseña admin. Lo primero que haría al entrar sería cambiar esa contraseña y no dejarlo así ni cinco minutos más de lo necesario.

Dejarlo un poco más fino desde el principio

Aquí todavía no voy a meter configuración avanzada, pero sí haría tres cosas mínimas nada más entrar.

La primera sería cambiar la contraseña del usuario admin.

La segunda sería comprobar que el contenedor responde bien por nombre e IP dentro de tu red.

La tercera sería dejar anotado su acceso base, porque luego lo vas a necesitar para el siguiente artículo cuando empecemos a montar el proyecto que hablará con Proxmox.

En mi caso lo dejaría algo así:

URL: http://192.168.10.50:4440
Usuario inicial: admin
Estado: servicio levantado

Problemas comunes

Aquí lo normal es tropezar con cuatro cosas muy concretas.

La primera es que el servicio no arranque porque Java no esté bien instalado o no sea una versión compatible. Rundeck requiere Java 11 o 17, así que si has metido otra cosa rara o has dejado un runtime incompleto, te lo vas a encontrar rápido.

La segunda es que no puedas acceder por web aunque el servicio esté levantado. En ese caso yo revisaría enseguida si el contenedor tiene bien la IP, si responde a ping y si el puerto 4440 está escuchando.

ss -lntp | grep 4440
ip a
ip route

La tercera es un problema de DNS o gateway mal puesto en el contenedor. No suele romper la carga de la interfaz web si entras por IP, pero sí te puede dar guerra en cuanto empieces a instalar cosas o a hablar con otros sistemas.

La cuarta es intentar dejar el LXC demasiado corto de recursos. Para instalar y arrancar vale con poco, sí, pero si la idea es usarlo de verdad con jobs, plugins y ejecución remota, no me iría a configuraciones absurdamente pequeñas. La propia documentación oficial apunta bastante más alto en recursos para despliegues reales.

Conclusión

Para empezar con Rundeck en Proxmox, yo no me complicaría más de la cuenta. Un LXC Ubuntu, una IP fija en la LAN y la instalación oficial del paquete son más que suficientes para tener una primera base funcional sobre la que empezar a trabajar.

Luego ya habrá tiempo de meter proyectos, tokens, integración con la API de Proxmox, Ansible y despliegues automáticos. Pero esa segunda parte tiene mucho más sentido cuando primero has dejado el servicio bien montado y accesible.

En el siguiente artículo seguiré con la parte de configuración base para que este Rundeck ya pueda empezar a hablar con Proxmox y tenga sentido como pieza de automatización real.

Si necesitas saber como instalar proxmox te dejo este enlace

Espero que os sirva

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *