Jenkins es un servidor de integración continua gratuito y de código abierto. Está escrito en JAVA. Se puede utilizar para automatizar diversas tareas relacionadas con el desarrollo de software, como la creación de pruebas y la implementación. Tiene soporte para muchos sistemas de control de versiones como git, SVN, mercurial, etc.
En este tutorial, instalaremos Jenkins Automation Server en el servidor CentOS 7. También configuraremos Nginx como un proxy inverso para Jenkins.
Requisito previo
- Servidor CentOS 7 mínimo
- Privilegios de raíz. Esta guía está escrita como usuario root, si ha iniciado sesión como usuario sudo, ejecute sudo -i.
Actualizar sistema base
Antes de instalar cualquier paquete, se recomienda que actualice los paquetes y el repositorio con el siguiente comando.
yum -y update
Una vez que su sistema esté actualizado, continúe para instalar JAVA.
Instalar JAVA 8
Jenkins es compatible con OpenJDK y Oracle JAVA, en este tutorial instalaremos la última versión de OpenJDK en el servidor. Ejecute el siguiente comando para instalar OpenJDK en su servidor.
yum install java-1.8.0-openjdk
Ahora puede verificar la versión de Java usando el siguiente comando.
java -version
Obtendrá el siguiente resultado.
[[email protected] ~]# java -version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
También deberá verificar si la variable de entorno JAVA_HOME está configurada. Ejecute el siguiente comando para lo mismo.
echo $JAVA_HOME
Si obtiene un resultado nulo o en blanco, deberá configurar manualmente la variable JAVA_HOME. Edite el archivo .bash_profile con su editor favorito. En este tutorial, utilizaremos el editor nano. Ejecute el siguiente comando para editar .bash_profile usando nano.
nano ~/.bash_profile
Ahora agregue las siguientes líneas al final del archivo.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/ export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/jre
Ahora obtenga el archivo usando el siguiente comando.
source ~/.bash_profile
Ahora puede ejecutar el comando echo $JAVA_HOME nuevamente para verificar si la variable de entorno está configurada o no.
[[email protected] ~]# echo $JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/
Ahora que tiene instalado JAVA, puede continuar con la instalación de Jenkins.
Instalar Jenkins
Jenkins se puede instalar directamente agregando el repositorio e importando la clave GPG. Agregue el repositorio de Jenkins a su sistema ejecutando el siguiente comando.
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
Si no tiene instalado wget, puede ejecutar yum -y install wget.
Importe la clave GPG ejecutando el siguiente comando.
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
Una vez que la importación sea exitosa, puede instalar Jenkins ejecutando el siguiente comando.
yum -y install jenkins
Jenkins ahora está instalado en su servidor. Todos los paquetes necesarios ya están instalados. El instalador también creó un nuevo usuario jenkins para ejecutar el proceso. Puede continuar para iniciar el servidor.
Inicio de Jenkins
Puede iniciar Jenkins ejecutando el siguiente comando.
systemctl start jenkins
Para detener a Jenkins, puede ejecutar el siguiente comando.
systemctl stop jenkins
Puede verificar el estado del proceso ejecutando el siguiente comando.
systemctl status jenkins
Instalar Nginx
En lugar de acceder a la aplicación en el puerto 8080, podemos crear un proxy inverso para la aplicación con el servidor web Apache o Nginx. En este tutorial, usaremos nginx como proxy inverso para su aplicación. Ahora nginx se ejecutará detrás del servidor proxy nginx. nginx no está disponible en el repositorio YUM predeterminado. Deberá instalar el repositorio EPEL para instalar Nginx.
yum -y install epel-release
Ahora puede instalar Nginx ejecutando:
yum -y install nginx
Cree un nuevo bloque de servidor ejecutando el siguiente comando.
nano /etc/nginx/conf.d/jenkins.conf
Rellene el archivo con el siguiente contenido. Reemplaza ci.tudominio.com con tu nombre de dominio real.
upstream jenkins{ server 127.0.0.1:8080; } server{ listen 80; server_name ci.yourdomain.com; access_log /var/log/nginx/jenkins.access.log; error_log /var/log/nginx/jenkins.error.log; proxy_buffers 16 64k; proxy_buffer_size 128k; location / { proxy_pass http://jenkins; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } }
Guarde el archivo y salga del editor. Ahora puede iniciar Nginx ejecutando el siguiente comando.
systemctl start nginx
Para permitir que Nginx se inicie automáticamente en el momento del arranque, ejecute el siguiente comando.
systemctl enable nginx
Configurar Firewall y SELinux
Si tiene un firewall ejecutándose en su servidor, deberá permitir el puerto 8080 y el puerto HTTP estándar a través del firewall. Ejecute el siguiente comando para agregar las reglas de firewall para permitir los puertos 8080 y 80.
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-service=http --permanent
Vuelva a cargar las zonas de cortafuegos ejecutando:
firewall-cmd --reload
Configure SELinux para la configuración del proxy nginx ejecutando el siguiente comando.
setsebool httpd_can_network_connect 1 -P
Configurar Jenkins
Ahora puede acceder a la interfaz web del servidor Jenkins CI yendo a la siguiente dirección web.
http://ci.yourdomain.com
Reemplace ci.yourdomain.com con su dominio real. Verá la siguiente interfaz.
Le pedirá su contraseña de administrador inicial, que genera el instalador y se almacena en el archivo /var/lib/jenkins/secrets/initialAdminPassword. Ejecute el siguiente comando para obtener la contraseña de administrador inicial.
cat /var/lib/jenkins/secrets/initialAdminPassword
Use la contraseña para iniciar sesión y continúe.
En la siguiente sección, se le preguntará qué complementos desea instalar; para los principiantes, se recomienda elegir Instalar complementos sugeridos .
Esto instalará todos los complementos necesarios para comenzar.
En la siguiente interfaz, instalará los complementos.
Ahora deberá crear un usuario administrador para su panel de administración de Jenkins.
Finalmente, se le llevará al panel administrativo de Jenkins.
Conclusión
Ahora puede usar Jenkins para la integración continua en el desarrollo de software. Puede obtener más información sobre Jenkins visitando el sitio web de Jenkins.