En este manual se describe el proceso de configuración y despliegue de una aplicación escrita en grails framework usando jenkins y tomcat como webserver.
Configuración de tomcat
Para la integración de las aplicaciones es necesario realizar las siguientes configuraciones previas en tomcat:
Habilitar usuario para despliegue:
Es necesario habilitar un usuario que usará jenkins para el despliegue del war de la aplicación.
- Editar el archivo conf/tomcat-users.xml y agregar las siguientes líneas dentro del tag <tomcat-users>:
<role rolename="manager-script"/> <role rolename="admin-gui"/> <user username="USUARIO" password="CONTRASEÑA" roles="manager-script, admin-gui"/>
Donde:
-
- USUARIO: Es el usuario que se usará para realizar el despliegue
- CONTRASEÑA: Es la contraseña a usar para el despliegue.
- Editar el archivo webapps/manager/META-INF/context.xml y comentar la linea:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1">
Configuración de jenkins
Configuraciones previas:
Es necesario contar con los siguientes plugins instalados:
- Git plugin.
- Deploy to container Plugin.
- Copy Artifact Plugin.
Ir a Jenkins -> Manage Jenkins -> Global Tools Configuration y realizar las siguientes configuraciones:
En la sección JDK configurar el jdk 8 a usar para compilar el proyecto:
Proyectos:
El pipeline se dividirá en 2 tareas:
- PROYECTO_build. Encargado de clonar el código y construirlo.
- PROYECTO_DEPLOY: Encargado de desplegar proyecto generado por la tarea anterior.
PROYECTO_build:
- Crear un item nuevo de tipo Freestyle con el nombre PROYECTO_build:
- En la sección de general elegir la versión de jdk a utilizar:
- En la sección SOURCE MANAGMENT configurar el acceso al repositorio de la aplicación:
Repository URL: La url de tu proyecto
Credentials: Usuario y contraseña con privilegios para clonar proyecto.
Branch: */master
- En la sección Build Triggers elegir Poll SCM y en schedule escribir * * * * *
- En la sección Build agregar un paso “execute shell” con el siguiente comando:
./grailsw.sh prod war
- En la sección Post Build agregar un paso Archive the artifacts y especificar:
**/*.war
- Hacer click en save.
PROYECTO_deploy:
- Crear un item nuevo de tipo Freestyle con el nombre PROYECTO_deploy:
- En la sección Build Triggers seleccionar Build after other projects are built y proporcionar el nombre del nombre del proyecto de build:
PROYECTO_build
- En la sección Build agregar un paso Copy artifacts from another project con los siguientes datos:
- Project name: PROYECTO_build
- Wich build: Latest successful build
- Artifacts to copy: **/*.war
- En la sección Post-build Actions agregar un paso Deploy war/ear to a container con los siguientes datos:
- WAR/EAR files: **/*.war
- Containers: Tomcat 8x Remote.
- Nota. En esta sección se usan las credenciales configuradas en el archivo tomcat-users.xml de tomcat.
- Hacer click en save.
Una vez concluida la configuración el proyecto se desplegará cada vez que exista algún cambio en el branch master del repositorio git.