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