Iniciando con Jenkins
Instalación y configuración de un servidor de integración continua y despliegue continuo.
Jenkins es un servidor open source para la integración continua. Herramienta utilizada principalmente para compilar y probar proyectos de software de forma continua, lo que facilita, tanto a los desarrolladores como a las operaciones, a integrar cambios en un proyecto y entregar nuevas versiones de una manera agil. Escrito en Java, es multiplataforma y accesible mediante interfaz web. Es el software más utilizado en la actualidad para este propósito.
Instalacion en un servidor Linux
Entorno: RHEL 8 / Centos 8 / Rocky Linux 8
Para instalar un servidor Jenkins en necesario contar con las librerías de JAVA JDK. Realizamos lo siguiente para la instalación:
sudo yum install java-1.8.0-openjdk -yEn el siguiente paso realizamos la instalación del repositorio Jenkins Oficial para distribuciones Redhat / Centos
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keyFinlamente, procedemos a la instalación de Jenkins
sudo yum install jenkins -yInciamos el servicio y accedemos al puerto 8080 para ver nuestra aplicación en ejecución
sudo systemctl enable jenkins && sudo systemctl start jenkinsInstalacion con Docker / Podman
Para levantar un servicio Jenkins utilizando tecnología de contenedores, es necesario tener un directorio de almacenamiento para mantener los datos persistentes
Vamos a crear un volumen con el nombre de jenkins-data para almacenar los datos del sevicio
sudo podman volume create jenkins-dataPodemos observar la ruta de almacenamiento por defecto de nuestro volumen de datos
sudo podman volume inspect jenkins-dataFinalmente iniciamos el contenedor, indicando los siguientes parámetros en la ejecución:
nombre: jenkins
datos: jenkins-data:/var/jenkins_home
puerto: 8080 / 50000
imagen: jenkins/jenkins:lts-jdk1Iniciamos el contenedor. Y accedemos al puerto 8080 de nuestro servidor
sudo podman run --name jenkins -v jenkins-data:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure -d jenkins/jenkins:jdk11Configuraciones Iniciales
Una vez que tenemos el servicio de Jenkins en ejecución en el puerto 8080, podemos acceder a su página de bienvenida, donde nos solicitara una clave para continuar.
Esta clave se encuentra en el siguiente directorio: /var/jenkins_home/secrets/initialAdminPassword
En el caso de que utilice la instalación por contenedores, puede acceder a directorio de la siguiente manera
sudo podman exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPasswordIndicando la clave solicitada, aparecerá la siguiente ventana, donde tendremos que seleccionar los plugins iniciales para la instalación. En nuestro caso, seleccionaremos los plugins recomendados por defecto
El siguiente paso es crear un usuario administrador para el manejo del servicio:
Finalmente, el servidor Jenkins está instalado y listo para ser utilizado
Vista general de Jenkins
Dentro de la plataforma, podra acceder a multiples opciones disponibles, como por ejemplo:
Nueva Tarea: Permite generar Jobs o Pipelines utilizando distintas interfaces para la configuración necesaria
Administrar Jenkins: Vista general del Administrador. Permite el acceso y control de todas las configuraciones de Jenkins
Configuraciones: Administracion de Plugins
Un plugin es una funcionalidad extra que una persona ha creado para dar solución a un problema existente y que se integra de forma sencilla con Jenkins. Por ejemplo, mediante un plugin es posible integrar distintos componentes a Jenkins
Para verificar la lista de Plugins disponibles, puede acceder a la siguiente seccion:
Administrar Jenkins > Administrar Plugins
Configuraciones: Administración de Instancias / Nodos
Una particularidad importante de Jenkins, es la delegar el trabajo de ejecucion de procesos a diferentes instancias o servidores.
Administrar Jenkins > Administrar Nodos
Es una buena práctica, configurar distintas instancias para cada tipo de trabajo. También es posible agregar como instancia un servicio de contenedores para que los Jobs se ejecuten como microservicios. Por ejemplo, Kubernetes.
Con esto evitamos que los Jobs de Jenkins se ejecuten en el propio servidor y generen carga innecesaria.
En el siguiente articulo, agregamos un nodo esclavo en Jenkins
