Despliegue aplicación Spring Boot

Escenario

Queremos desplegar en la nube una aplicación desarrollada con Spring Boot cuyo código está bajo control de versiones. Para este artículo usaremos ubuntu 16.04 y java 8, pero el procedimiento debería ser el mismo con versiones más actuales.

Problema

Ninguno. Realmente es sencillo desplegar una aplicación de este tipo si se dispone de las herramientas adecuadas.

Solución

Instalamos java
maven
y git

Aplicación

Vamos a poner que se llama techonage, crearemos un directorio en la máquina donde la clonaremos y compilaremos: Para renforzar la seguridad crearemos un usuario que sólo tenga acceso a las aplicaciones de spring boot:

Instalación del servicio

Creamos el siguiente fichero en /etc/systemd/system/technoage.service
Para que el servicio pueda pasar las variables de entorno a la aplicación, estás han de estar declaradas en el fichero. A modo de ejemplo he puesto dos variables usadas por el APÌ de aws. Nótese también que especificamos el puerto por el que debe escuchar la aplicación. En el caso de technoage, el 8070. De este modo podemos tener varias aplicaciones corriendo, cada una con su puerto sin necesidad de tocar el código. Además hemos especificado el usuario dado de alta anteriormente para que controle la aplicación.
Para arrancar el servicio usaremos el comando: y para pararlo. Cada vez que hagamos una modificación el fichero de configuración deberemos ejecutar . Para que el servicio arranque automáticamente después de cada reboot:

Proxy web

Usaremos nginx para que haga de proxy para las aplicaciones del tomcat y éstas sean accesibles por los puertos http y/o https. Para obtener la última versión de nginx, hay que seguir estos pasos: Y añadidos estas dos líneas al final del fichero: Importamos la clave pública de nginx para poder actualizar el repositorio, e instalamos nginx:
Estos pasos tuve que hacerlos con ubuntu 16.04, para 18.04 basta con
Esta sería una configuración básica para technoage en /etc/nginx/conf.d/technoage.conf:

Instalación del certificado ssl

Usaremos letsencrypt porque funciona muy bien y es gratuito. Una vez instalado, obtenemos el certificado (siempre usando el ejemplo de technoage) con el siguiente comando: Si seguimos las instrucciones de cerbot y escogemos que se fuerce el tráfico por https, éste modificará el fichero de configuración de nginx con las directivas pertinentes. Debería tener esta pinta:

Publicaciones Similares

  • Oracle JDK 7 is NOT installed.

    Escenario El otro día me avisaron que una de las decenas de webs bajo mi responsabilidad tenía el certificado caducado. A principio de mes estuve actualizando los certificados de todos los servidores, pero éste se me pasó. Problema Al no ser una web a la que demos mucho uso, tenía actualizaciones de seguridad pendientes de…

  • Instalando EAC en Ubuntu

    Para ser más concretos en Ubuntu 12.04. Ahí van los pasos: Para estar a la última me he instalo lo más nuevecito (hasta la fecha) de wine, en dos pasos: 1. Añadimos la fuente siguiente a nuestro repositorio: $ sudo add-apt-repository ppa:ubuntu-wine/ppa 2. El consabido: $ sudo apt-get update 3. seguido de un: $ sudo apt-get install wine1.7 4. Antes de proseguir configuramos mínimamente wine:…

  • |

    Cómo ampliar el espacio en disco en 1and1

    Escenario Hemos contratado un servidor dedicado en 1and1 (ubuntu 14.04) y al acceder por ssh constatamos que no disponemos de todo el espacio en disco disponible: $ df -hFilesystem Size Used Avail Use% Mounted onudev 3.9G 4.0K 3.9G 1% /devtmpfs 798M 592K 797M 1% /run/dev/md1 4.0G 990M 3.0G 25% /none 4.0K 0 4.0K 0% /sys/fs/cgroupnone 5.0M 0 5.0M 0% /run/locknone 3.9G 0 3.9G 0% /run/shmnone 100M 0 100M 0% /run/user/dev/mapper/vg00-usr 4.8G 1.3G 3.3G 28% /usr/dev/mapper/vg00-var 4.8G 812M 3.8G 18% /var/dev/mapper/vg00-home 4.8G 10M 4.6G 1% /home Objetivo Aumentar el espacio disponible para dar cabida a nuestros recursos. Solución Nota: sólo aplicable a sistemas linux Primer paso Comprobamos el espacio en disco real: ~$ sudo fdisk -lDisk /dev/sda: 240.1 GB, 240057409536 bytes255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesDisk identifier: 0x24e3fc12   Device Boot      Start         End      Blocks   Id  System/dev/sda1            2048     8390655     4194304   fd  Linux raid autodetect/dev/sda2         8390656    12584959     2097152   82  Linux swap / Solaris/dev/sda3        12584960   468862127   228138584   fd  Linux raid autodetect Segundo…

Deja una respuesta

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