Despliegue de una aplicación usando Jenkins

Índice

Jenkins cuenta con varios plugins que permiten ejecutar comandos en un servidor remoto usando el protocolo SSH. Esto permite incluir una etapa de despliegue en el pipeline en la que, después de probar la aplicación, crear la imagen Docker y subirla a un registro de imágenes, se puede descargar la imagen en el servidor en producción y desplegar la aplicación en él.

En este caso, se opta por usar el plugin ssh agent, que permite realizar conexiones SSH con una máquina desde un pipeline de Jenkins para implantar en un entorno de producción una aplicación a partir de una imagen Docker creada previamente en el mismo pipeline.

Antes de poder conectar desde el pipeline de Jenkins al servidor remoto por SSH hay que configurar las credenciales para la conexión en Jenkins. Esto se puede hacer en el Panel de control -> Administrar Jenkins -> Credenciales. En las credenciales globales se añade una nueva de tipo SSH username with private key. En este formulario se indica el nombre de usuario para la conexión SSH y su clave privada. También se puede añadir una descripción de las credenciales y la frase de paso de la clave privada, si la tuviese.

Tras crear las credenciales, se pueden usar en el pipeline. Para hacer el despliegue se añade una nueva etapa en la que se usa el plugin ssh agent para ejecutar una serie de comandos por SSH en el servidor en el que se despliega la aplicación.

pipeline {
    ...
    agent none
    stages {
        ...
        stage ('Despliegue') {
            agent any
            stages {
                stage ('Despliegue en el VPS'){
                    steps{
                        sshagent(credentials : ['Pignite']) {
                        sh 'ssh -o StrictHostKeyChecking=no debian@pignite.javihuete.site "cd django_tutorial && git pull && docker compose down && docker compose up -d"'
                        }
                    }
                }
            }
        }
    }
    ...
}
comments powered by Disqus

Relacionados

Túneles IPv6: túneles 6to4

En este post se muestra, a través de un ejemplo práctico, el funcionamiento de los túneles IPv6. Estos túneles permiten que el tráfico que va de una a otra dirección IPv6 pase por redes que funcionan usando el portocolo IPv4.

Leer

Instalación del servidor web Apache en Rocky Linux 9

El de Apache es uno de los servidores web más usados del mundo. Aunque en otras distribuciones, como las basadas en Debian, este servidor se instala con el paquete apache2 en las distribuciones basadas en Red Hat como CentOS o Rocky Linux, este servidor se instala con el paquete httpd.

Leer

Cómo instalar qemu/kvm en Debian 12 para virtualizar equipos

Qemu es un potente virtualizador que permite el uso de máquinas virtuales en equipos que usen sistemas operativos basados en Debian y otras distribuciones GNU/Linux. Este software se complementa a la perfección con VirtManager, que ofrece una interfaz gráfica amigable para realizar todas las tareas relacionadas con la virtualización.

Leer