Cómo instalar el servidor de automatización Jenkins en AlmaLinux 8
Jenkins es un servidor de automatización gratuito y de código abierto escrito en Java. Puede implementarse en un único servidor o como una aplicación distribuida. Es una de las soluciones de código abierto más populares para la integración continua y la entrega continua de aplicaciones de software.
La integración continua (CI) es una práctica de desarrollo de software que requiere que los desarrolladores integren su código en el repositorio principal (generalmente a diario) lo antes y con mayor frecuencia posible para detectar errores de integración, crear nuevas funciones y proporcionar comentarios para todos. etapas del ciclo de vida del software.
Una plataforma como Jenkins es un marco de CI que se puede usar en línea o instalar localmente en su computadora. Le proporciona una interfaz fácil de usar para colaborar con los miembros de su equipo en GitHub, Bitbucket u otros repositorios que usan Git para crear canales de integración continua.
La entrega continua (CD) es una práctica de desarrollo de software que permite lanzamientos pequeños y frecuentes de aplicaciones y servicios de software. Es más rápido que el enfoque tradicional, que normalmente implica un único lanzamiento importante cada seis meses. La entrega continua puede incluir la implementación de código nuevo todos los días, cada hora o incluso varias veces por hora. Los intervalos de tiempo más cortos permiten flexibilidad en respuesta a cambios en los requisitos comerciales o la tecnología subyacente y, al mismo tiempo, reducen el costo y el riesgo asociados con largos períodos de tiempo entre lanzamientos.
Una plataforma como Jenkins es un marco de CD que coordina y gestiona los diferentes pasos necesarios para producir un sistema de CD. La función de Jenkins no es sólo crear el código, sino también probarlo e implementarlo.
Una arquitectura basada en complementos que permite ampliar la funcionalidad básica de Jenkins con complementos escritos por uno mismo, p. para la gestión del código fuente u otras tareas. Los complementos disponibles se enumeran en el Administrador de complementos dentro de Jenkins y se pueden instalar simplemente haciendo clic en ellos.
Jenkins proporciona más de 300 complementos para respaldar la creación, implementación y automatización de cualquier tipo de proyecto desde cero hasta producción, incluidos Java, Javascript, PHP, Ruby, Android y otros.
También tiene su propia API REST, por lo que puede crear sus propias herramientas personalizadas que se integran con Jenkins sin necesidad de saber codificar ni nada sobre los aspectos internos de la arquitectura de Jenkins.
Usted es un administrador de sistemas que busca una solución que le ayude a ahorrar tiempo al implementar pequeñas aplicaciones en sus máquinas. Después de mirar algunas opciones, te encuentras con Jenkins, que afirma poder resolver todos tus problemas. Te sumerges, lees la documentación e instalas Jenkins. La documentación lo guía a través del proceso de instalación, pero no puede instalarlo correctamente.
Instalar y configurar los componentes de software necesarios para un sistema de compilación completo y funcional no es tan fácil como parece. Es por eso que creamos este tutorial paso a paso sobre cómo instalar y configurar Jenkins en AlmaLinux 8.
Requisitos previos
Para instalar Jenkins en AlmaLinux 8, necesitará:
- Una máquina AlmaLinux 8 de 64 bits con conexión a Internet que funcione.
- Acceso root a su servidor. Puedes conseguirlo siguiendo esta guía.
- Requisitos del sistema: según el sitio web oficial de Jenkins, una instalación básica de Jenkins necesita un mínimo de 2 GB de RAM. Jenkin requiere 50 GB de espacio libre en disco para la instalación, más 1 GB de espacio libre en disco para cada esclavo de compilación que desee agregar. Además, necesitará un núcleo de CPU y un GB de RAM por cada trabajador de compilación simultáneo que espere admitir.
Actualización de su sistema
Antes de comenzar a instalar y configurar Jenkins, debe actualizar su sistema a la última versión disponible de los paquetes de software.
Para eso, conecte ssh a su servidor y ejecute el siguiente comando. El paquete epel-release proporciona paquetes actualizados del repositorio de desarrollo Extras que aún no forman parte de una versión importante de RHEL. El repositorio de Extras contiene paquetes que no están incluidos en el conjunto de paquetes estándar de Red Hat pero que, sin embargo, están creados para las versiones de RHEL. Esto incluye paquetes de idiomas, compatibilidad con versiones más recientes de íconos adaptables y otras actualizaciones de funciones.
- sudo dnf check-update && sudo dnf update -y
- sudo dnf instalar epel-liberación
Instalación de Java
Java es un lenguaje de programación basado en C. Se considera uno de los lenguajes de programación más populares porque se ha utilizado en muchos software, como Android y Google Chrome. Java es un lenguaje de programación multiplataforma que puede ejecutar aplicaciones autónomas en sistemas operativos Windows y Linux, así como en MacOS, Solaris, FreeBSD y otros sistemas UNIX.
Jenkins, en esencia, es un programa Java que requiere que instale Java Runtime Environment (JRE) y Java Development Kit (JDK) en su sistema para funcionar correctamente.
Esta demostración instalará OpenJDK 11 en el sistema. OpenJDK es una implementación gratuita y de código abierto de Java Platform, Standard Edition (Java SE). Es un entorno de desarrollo y ejecución para crear aplicaciones, microservicios y otros sistemas de servidor que se ejecutan en la máquina virtual Java (JVM).
OpenJDK se basa en la versión 8 del kit de desarrollo Java de Oracle con soporte para Project Jigsaw. Esto significa que puede ejecutar Jenkins en OpenJDK 11 con Project Jigsaw sin ningún problema de compatibilidad.
Ejecute el siguiente comando para instalar OpenJDK 11 en su sistema.
sudo dnf install java-11-openjdk -y
Una vez que se completa la instalación, puede ejecutar el comando para verificar si está funcionando correctamente.
java -version
Verá el siguiente resultado.
Instalando Jenkins
Ahora que tiene Java instalado, está listo para instalar Jenkins.
El repositorio base de AlmaLinux no incluye ninguno de los paquetes de Jenkins, por lo que primero deberá agregar el repositorio oficial de su desarrollador. Es el único repositorio permitido para distribuir software empaquetado para una distribución compatible específica. En este caso, es el repositorio del propio desarrollador de Jenkins para Redhat y sus derivados.
Ejecute el siguiente comando para importar la clave de Jenkins al sistema. Esta clave es un mecanismo de seguridad utilizado para validar la autenticidad de un paquete de software.
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
Ejecute el siguiente comando para agregar el repositorio de Jenkins al sistema.
cd /etc/yum.repos.d/ && curl -O https://pkg.jenkins.io/redhat-stable/jenkins.repo
Ejecute el comando sudo dnf makecache para actualizar la caché de metadatos de todos los repositorios habilitados para garantizar que los datos del repositorio del disco local estén actualizados. Esto se puede utilizar al actualizar/instalar paquetes o si los metadatos están dañados.
sudo dnf makecache
Ejecute el siguiente comando para verificar si el repositorio de Jenkins se ha agregado a su sistema. Es una forma de consultar la lista actual de repositorios, lo que indica al administrador de paquetes qué repositorios se han habilitado. En otras palabras, es una forma de ver qué repositorios están siendo rastreados actualmente por dnf.
sudo dnf repolist
Ejecute el siguiente comando para instalar Jenkins en su sistema.
dnf install -y jenkins
Una vez que el comando haya terminado de instalarse, ejecute el siguiente comando para iniciar el servicio Jenkins.
sudo systemctl start jenkins
Ejecute el siguiente comando para verificar el estado del servicio Jenkins.
sudo systemctl status jenkins
Jenkins es un servicio de integración continua que puede monitorear las ejecuciones de trabajos repetidos, como la creación de un proyecto de software o trabajos ejecutados por cron. Monitorear el estado de Jenkins puede ayudarnos a saber si se están ejecutando como se esperaba. Este conocimiento puede ser útil para solucionar cualquier problema con los trabajos que ejecuta y que no tienen éxito.
Verá el siguiente resultado.
Configuración de su cortafuegos
Jenkins es su servidor de compilación automatizado y le ayuda con la integración y la implementación continuas de sus proyectos. Jenkins tiene la capacidad de permitir que las conexiones SSH realicen compilaciones y tareas en nodos esclavos remotos. Sin embargo, deberá configurar su firewall para permitir que Jenkins acceda a estos servidores.
Deberá abrir el puerto 22 (SSH) y, opcionalmente, el puerto 8080 (cliente web) para que Jenkins pueda conectarse a los servidores remotos en los que residen sus aplicaciones. Estos puertos suelen estar cerrados de forma predeterminada cuando se utilizan máquinas virtuales basadas en la nube. Si está configurando Jenkins en su propio hardware, deberá permitir estos puertos a través de su firewall o enrutador.
Ejecute el siguiente comando para abrir estos puertos en su firewall.
sudo firewall-cmd --permanent --zone=public --add-port=22/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
Ejecute el siguiente comando para aplicar sus cambios. El comando sudo firewalld --reload garantiza que las reglas y configuraciones actualmente vigentes se recargarán si están presentes. Esto puede resultar útil para aplicar los cambios realizados a través de las herramientas firewall-cmd al sistema en ejecución.
sudo firewall-cmd --reload
Finalmente, ejecute el siguiente comando para verificar si las reglas se han agregado correctamente.
sudo firewall-cmd --list-all
Acceder a la interfaz de usuario web de Jenkins
Ahora que tiene su servidor Jenkins en funcionamiento pero desea acceder a él en el navegador web. Puede acceder a Jenkins visitando su dirección IP en el puerto 8080.
Por ejemplo, si su IP es 192.168.1.100 y el puerto predeterminado es 8080, navegue por la siguiente dirección para ir a Jenkins: 192.168.1.100:8080
Cuando intente acceder a la interfaz de usuario web de Jenkins, aparecerá una pantalla Desbloquear Jenkins que le pedirá que vaya a /var/lib/jenkins/secrets/initialAdminPassword, como se muestra a continuación. . Se trata de datos cifrados que contienen la contraseña que utilizó para iniciar sesión en el panel. Almacena la contraseña de administrador inicial en forma cifrada. Esto garantiza que un usuario malintencionado que haya obtenido acceso a su servidor Jenkins no tenga la contraseña que utilizó en el primer inicio de sesión.
Regrese a su terminal, donde aún debería estar conectado como usuario root. Ingrese el siguiente comando para descifrarlo:
cat /var/lib/jenkins/secrets/initialAdminPassword
Verá el resultado que contiene la contraseña de la interfaz de usuario web de Jenkins.
Copie y pegue esto en su editor favorito y guárdelo en algún lugar de su máquina. Ahora puede utilizar esta contraseña para acceder a su interfaz web de Jenkins.
En la siguiente pantalla, seleccione instalar complementos sugeridos. Un complemento no es más que un directorio con algunos archivos. Cuando instala el complemento, Jenkins detecta el directorio y habilita las funciones especificadas en los archivos.
Cuando instala Jenkins por primera vez, debe elegir la opción para instalar los complementos sugeridos. Esta opción instala todos los complementos necesarios para una configuración básica de Jenkins. No te preocupes, siempre puedes cambiar o agregar más complementos más adelante en la sección Complementos de la interfaz web.
En la pantalla Crear primer usuario administrador, proporcione su nombre de usuario, dirección de correo electrónico, nombre completo y contraseña. Haga clic en Guardar y continuar para ir a la siguiente pantalla.
En la siguiente pantalla, mantenga el valor predeterminado y haga clic en Comenzar a usar Jenkins.
Serás llevado al panel de Jenkins, como se muestra a continuación. Cuando instaló Jenkins por primera vez, probablemente venía con una página en blanco como página predeterminada. Puedes ver esto si miras la fuente de la página; no hay nada allí.
Sin embargo, con el tiempo, a medida que comience a agregar trabajos y complementos, la página se transformará en un panel que muestra información visual sobre sus proyectos.
Conclusión
En esta publicación, aprendió cómo instalar y configurar un servidor Jenkins. Sin embargo, esto es sólo el comienzo; Es un entorno de construcción automatizado muy valioso que puede aprovecharse en su práctica diaria. Deje sus comentarios y sugerencias en la sección siguiente si tiene algún comentario o pregunta.