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

Gestión de permisos UGOA y ACL en Debian

El propósito de este post es demostrar el funcionamiento de los permisos UGOA y las listas de control de acceso (ACL) en Debian a través de ejemplos y casos prácticos.

Leer

Introducción a Openstack Client

OpenStack es una herramienta de infraestructura como servicio que puede gestionarse desde la línea de comandos a través de su cliente.

Leer

Implantación de una aplicación Java usando Docker

Para implantar una aplicación Java usando Docker se puede compilar una aplicación desde el código fuente o usar un fichero ya compilado. Además, se puede implantar una aplicación en un contenedor tomcat o crear una imagen Docker propia a partir de una imagen Tomcat con las modificaciones necesarias para servir la aplicación.

Leer