Hosting de Jenkins, controlador y agentes separados
Un controlador Jenkins en su propia máquina en Praga o Covilhã, con las compilaciones desplazadas a los agentes donde corresponden - el único consejo de dimensionamiento que da el proyecto Jenkins y el que la mayoría de instalaciones ignora.
Para quién es
Un Jenkins que vive bajo la mesa de alguien
Lleva compilando desde 2019, nadie recuerda qué plugins importan, y todo el proceso de publicación depende de una torre con un disco y sin copia de seguridad.
Un controlador que ejecuta sus propias compilaciones
Se asignaron ejecutores en el controlador porque era más fácil, y ahora un trabajo pesado se lleva por delante la interfaz web - algo que la documentación de Jenkins califica de mala práctica con esas mismas palabras.
Un equipo que no puede pasarse a CI alojado
Doce años de pipelines, un plugin que nadie ha sustituido y un trabajo que habla con hardware. Jenkins no es el problema; la máquina de debajo sí.
Lo que le aporta una máquina propia
- Un controlador que sigue respondiendo, porque las compilaciones corren en agentes y no en lo que sirve la interfaz web.
- JENKINS_HOME en NVMe con un snapshot antes de cada actualización de plugins, para que la vuelta atrás sean dos clics y no una tarde entera.
- Agentes añadidos como hosts aparte y conectados por SSH o el protocolo entrante, dimensionados de forma distinta al controlador.
- Una IPv4 estática de AS204057, para que un registro interno, un almacén de artefactos o un destino de despliegue pueda autorizar el controlador por dirección.
- Cualquier agente que necesite al lado - Linux para las compilaciones, Windows Server con licencia nuestra cuando un trabajo lo pida.
- Instalaciones Tier III, una copia de seguridad incluida y una máquina que no depende del aire acondicionado de la oficina.
Dimensionado por lo que la pipeline hace de verdad
El proyecto Jenkins se niega deliberadamente a publicar una cifra única de hardware, califica el dimensionamiento de ciencia inexacta y sitúa la memoria del controlador entre 200 MB para una instalación pequeña y 70 GB o más para una grande. Lo que sí dice con claridad es dónde va el trabajo: no asigne ejecutores en el controlador, porque una compilación puede sobrecargarlo y tumbarlo. Dimensione entonces el controlador para la interfaz, los plugins y el historial de trabajos, y añada agentes para las compilaciones. Una salvedad sobre la forma de facturar: un host mensual fijo cuesta lo mismo en una semana tranquila, donde los minutos de CI alojados no cuestan nada - Jenkins suele estar en marcha casi todos los días, que es justo cuando esto gana.
Cómo instalar Jenkins en Debian o Ubuntu
La línea LTS estable, desde el repositorio propio del proyecto Jenkins, en el orden que documentan. Java 21 o posterior es un requisito, no una sugerencia.
-
Instalar Java
sudo apt update sudo apt install fontconfig openjdk-21-jre java -versionJenkins requiere Java 21 o posterior. fontconfig aparece con él en el comando documentado porque los plugins que renderizan imágenes fallan de forma confusa sin él.
-
Añadir el repositorio LTS de Jenkins
sudo wget -O /etc/apt/keyrings/jenkins-keyring.asc \ https://pkg.jenkins.io/debian-stable/jenkins.io-2026.key echo "deb [signed-by=/etc/apt/keyrings/jenkins-keyring.asc]" \ https://pkg.jenkins.io/debian-stable binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list > /dev/nulldebian-stable es la línea LTS; la ruta debian a secas es la semanal. La clave de firma se rota, así que tome el nombre de fichero actual de la página de Jenkins y no de una guía antigua.
-
Instalarlo y arrancarlo
sudo apt update sudo apt install jenkins sudo systemctl enable jenkins sudo systemctl start jenkinsJenkins escucha en el puerto 8080 y se ejecuta con su propio usuario jenkins, con todo lo que importa bajo /var/lib/jenkins. Ese directorio es lo que hay que snapshotear y respaldar.
-
Desbloquear el primer acceso
sudo cat /var/lib/jenkins/secrets/initialAdminPasswordAbra el servidor en el puerto 8080 y pegue ese valor. No lo deje accesible desde todo internet mientras lo configura - póngalo detrás de nuestra pasarela VPN, o restrinja antes el puerto 8080 a la dirección de su oficina.
-
Sacar las compilaciones del controlador
# Manage Jenkins -> Nodes -> Built-In Node -> set executors to 0 # then Manage Jenkins -> Nodes -> New Node for each agent hostEste es el único consejo de dimensionamiento que la documentación de Jenkins da de forma expresa: asignar ejecutores en el controlador permite que una compilación lo sobrecargue y lo tumbe. Ponga el nodo integrado a cero ejecutores y añada hosts de agente, que recomienda mantener genéricos e intercambiables en lugar de adaptados a cada trabajo.
-
Conectar un agente por SSH
sudo -u jenkins ssh-keygen -t ed25519 -f /var/lib/jenkins/.ssh/agent sudo -u jenkins ssh-copy-id -i /var/lib/jenkins/.ssh/agent.pub jenkins@AGENT-HOSTAñada la clave privada como credencial SSH Username with private key y luego cree el nodo con el método de arranque SSH. Cada conexión de agente le cuesta al controlador un par de hilos y algo más de 2 MB, así que un puñado de agentes no es lo que dimensiona un controlador - lo son los plugins y el historial de trabajos.
Comprobado con la documentación oficial el 2026-08-15 — leer la fuente
Lo que no somos
- No somos el proyecto Jenkins. Jenkins es una marca de la Linux Foundation y el software es suyo; nada de esto cuenta con su respaldo. Vendemos la máquina donde se ejecuta.
- No mantenemos sus plugins. Las actualizaciones de plugins son donde se rompen las instalaciones de Jenkins, y quien sabe cuáles de sus 60 plugins importan está de su lado - aunque un snapshot antes de cada actualización está del nuestro.
- No migramos sus trabajos como parte del precio. Ayudamos con la ventana y con la copia de JENKINS_HOME, y presupuestamos el resto si quiere que se lo hagan en lugar de que le acompañen.
- Aquí no hay un plano de control de Jenkins gestionado. Si quiere que otro se haga cargo por completo de las actualizaciones, un producto de CI alojado es la respuesta honesta, y esto no lo es.
- Los agentes Windows necesitan licencias de Windows Server, que podemos suministrar en el servidor, pero cualquier licencia de herramienta que necesite la compilación sigue siendo suya.
Las partes que los equipos descubren tarde
- JENKINS_HOME es la instalación entera - configuración, historial de trabajos, credenciales, plugins. Respáldelo y un controlador se reconstruye en una hora; sáltelo y no se reconstruye en absoluto.
- Snapshot antes de cada actualización de plugins. Es el cambio con más probabilidad de tumbar un Jenkins que funciona, y un snapshot lo convierte en una vuelta atrás de dos clics.
- Cero ejecutores en el controlador es la recomendación documentada, no una preferencia. Una compilación que sobrecarga el controlador se lleva con ella la interfaz web.
- Los agentes deberían ser intercambiables. La documentación defiende agentes genéricos y sustituibles en lugar de un host especialmente configurado por trabajo, porque el especialmente configurado es siempre el que está caído.
- El puerto 8080 no es sitio para dejar un Jenkins sin bloquear. Póngalo detrás de una pasarela VPN o de una lista de direcciones autorizadas antes del primer acceso, no después.
- La memoria del controlador escala con los plugins, el número de trabajos y el historial de compilaciones, no con lo duras que sean las compilaciones - esa carga es de los agentes.
Minutos de CI alojados frente a un runner propio
| Minutos de CI alojados por el proveedor | Un runner en DCXV | |
|---|---|---|
| Por lo que paga | Cada minuto de cada trabajo, mientras exista el proyecto | Un host mensual fijo, haga lo que haga la pipeline ese mes |
| Una compilación que se vuelve más lenta | Cuesta más cada mes que siga siendo lenta | No cuesta nada más - la máquina ya está pagada |
| Caché de capas de Docker | Fría en cada trabajo salvo que la suba y la baje usted mismo | Caliente en NVMe local, entre trabajos y entre días |
| Concurrencia | Un escalón de plan que se contrata | Un número que usted pone en su propio fichero de configuración |
| Dónde aterriza el checkout | Una flota compartida, a menudo en una región que no puede fijar | Una máquina en Praga o Covilhã, bajo contrato chipriota |
| Dirección saliente | Un rango compartido enorme que nada puede autorizar | Una IPv4 estática de AS204057, suya para autorizar |
| Lo que la máquina puede contener | Lo que la imagen del runner traiga de serie | Cualquier cadena de herramientas, licencia o conjunto de datos que instale una vez |
Cómo se pone esto en marcha en su host
Díganos qué hace la pipeline
El trabajo más pesado que ejecuta hoy, cuántos quiere a la vez y si construye imágenes de contenedor. Con eso basta para dimensionar un host sin adivinar.
Le entregamos la máquina
Praga o Covilhã, acceso root y una IPv4 estática, en menos de diez minutos. Traiga su propia imagen si el runner ya viene dentro.
Siga el paso a paso de esta página
Es la secuencia del fabricante, tomada de su documentación actual y no de una entrada de blog, y lleva unos minutos en un host limpio.
Haga un snapshot y añada el segundo
Haga un snapshot en cuanto la primera pipeline esté en verde, para que la siguiente máquina sea una restauración y no una reconstrucción. Un grupo crece añadiendo hosts, no haciendo uno enorme.
Por qué elegirnos
- Instalaciones certificadas Tier III, SLA de instalación del 99,982 %
- Red propia, AS204057, IPv4 e IPv6
- Soporte 24/7/365 con unos 10 minutos de respuesta media
- Sociedad chipriota, jurisdicción de la UE, conforme al RGPD desde 2007
FAQ
- ¿Qué necesito para instalar Jenkins en Ubuntu o Debian?
Java 21 o posterior, y después el repositorio apt del proyecto Jenkins. Instale fontconfig y openjdk-21-jre, añada el keyring y la línea de sources de debian-stable de pkg.jenkins.io, apt install jenkins, active y arranque el servicio, y desbloquéelo con el valor de /var/lib/jenkins/secrets/initialAdminPassword. Jenkins escucha en el puerto 8080. La secuencia completa está en esta página
- ¿Cuánta RAM necesita un controlador Jenkins?
El proyecto Jenkins se niega deliberadamente a dar una cifra, califica el dimensionamiento de ciencia inexacta y sitúa la memoria del controlador entre 200 MB para una instalación pequeña y 70 GB o más para una muy grande. Lo que la escala son los plugins, el número de trabajos y el historial de compilaciones, no lo duras que sean las compilaciones - porque las compilaciones no deberían correr en el controlador. 8 GB son un comienzo cómodo para un equipo pequeño
- ¿Deberían ejecutarse las compilaciones en el controlador Jenkins?
No, y la documentación lo dice directamente: asignar ejecutores en un controlador es mala práctica porque una compilación puede sobrecargar su CPU o su memoria y tumbarlo. Ponga el nodo integrado a cero ejecutores y añada agentes. El proyecto recomienda además mantener los agentes genéricos e intercambiables en lugar de adaptar un host por trabajo
- ¿Cómo hago copia de seguridad de Jenkins?
JENKINS_HOME, que es /var/lib/jenkins en una instalación por paquete, es la instalación entera: configuración, definiciones de trabajos, historial de compilaciones, credenciales y plugins. Respáldelo y un controlador se reconstruye en una hora. Todos los planes de aquí incluyen una copia de seguridad, y un snapshot antes de cada actualización de plugins convierte el cambio con más probabilidad de romper Jenkins en una vuelta atrás de dos clics
- ¿Cómo conecto un agente de compilación?
La vía habitual es SSH: genere una clave con el usuario jenkins, ponga la mitad pública en el host del agente, añada la mitad privada como credencial SSH y cree el nodo con el método de arranque SSH. Cada conexión de agente le cuesta al controlador un par de hilos y algo más de 2 MB, así que los agentes no son lo que dimensiona un controlador
- ¿Es seguro dejar Jenkins en el puerto 8080?
No en internet abierto. Póngalo detrás de nuestra pasarela VPN o restrinja el puerto a sus propias direcciones antes del primer acceso, no después - la contraseña inicial de administrador está en un fichero de un servidor que, hasta entonces, responde a todo el mundo. Una IPv4 estática de AS204057 hace además sencilla la autorización del otro lado
Si necesita asistencia o tiene preguntas adicionales, por favor contacte a los gerentes o escriba al equipo de soporte en support@dcxv.com
¿Listo para comenzar?
Facturación mensual, sin cuota de instalación, sin compromiso