Jenkins: Primeros pasos

Buenas a tod@s, inauguramos una serie de posts sobre Jenkins. Para quien no conozca, Jenkins es la herramienta de CI (Continuous Integration) Open Source y escrita en java mas utilizada. Alguno se preguntará, que es Integración Continua? Pues se trata de un modelo informático que busca que las tareas se automaticen lo máximo posible hasta el punto de compilar, testear y desplegar código de forma automática.  Siguiendo las tendencias, vamos a montar jenkins con docker y traefik como proxy inverso. Al lio!

Despliegue con docker

Primero definimos el docker-compose para levantar jenkins. Se utilizará la imagen oficial de jenkins para eso. La de por defecto no está actualizada. Si se quiere instalar una versión mas actual, en el bloque de image, hay que poner la versión que se quiere ej: jenkins/jenkins:2.124

vim docker-compose.yml
version: '3.5'

services:
  jenkins:
    image: jenkins/jenkins
    container_name: jenkins
    restart: always
    volumes:
      - jenkins:/var/jenkins_home
    networks:
      - traefik
    labels:
      - "traefik.backend=jenkins.example.com"
      - "traefik.frontend.rule=Host:jenkins.example.com"
      - "traefik.docker.network=traefik"

volumes:
  jenkins:

networks:
  traefik:
    external:
      name: traefik

Una vez definido, solo queda levantar el servicio

docker-compose up -d

Si se quiere ver que está haciendo mientras se inicia, se pueden revisar los logs del contenedor

docker-compose logs -f

Configuración Inicial

Cuando esté levantado y funcionando, podremos acceder vía web

https://jenkins.example.com

Nos pedirá la password de Admin que la tiene guardada en un fichero del contenedor, para verla:

docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword

Con esta password podremos acceder. La primera pantalla es seleccionar los plugins. Podemos dejar a jenkins que añada los que quiera o hacerlo nosotros. Es recomendable hacerlo a mano y revisar si queremos añadir alguno mas.

En mi caso, los plugins que he añadido son:

A continuación pedirá que definamos el usuario Admin

 

Con esto ya tendremos Jenkins levantado y listo para empezar a integrar.

En próximos posts explicaré como conectarlo contra un gitlab, una máquina linux, gestión de docker… Y empezar con la automatización de tareas.

One comment

Leave a Reply

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