Jenkins es un servidor de automatización de código abierto que ayuda a los desarrolladores a automatizar el proceso de desarrollo de software, lo que incluye compilación, prueba e implementación. Jenkins le permite administrar y monitorear cualquier cambio de código en GitHub, Bitbucket o GitLab y compilar el código automáticamente usando herramientas como Maven y Gradle. Con Jenkins, puede distribuir el trabajo de manera eficiente en varias máquinas.
En esta guía, le mostraremos cómo instalar Jenkins en Ubuntu 20.04.
Requisitos
- Un Ubuntu 20.04 VPS (usaremos nuestro plan SSD 2 VPS)
- Acceso a la cuenta de usuario root (o acceso a una cuenta de administrador con privilegios de root)
Paso 1:Inicie sesión en el servidor y actualice los paquetes del sistema operativo del servidor
Primero, inicie sesión en su servidor Ubuntu 20.04 a través de SSH como usuario raíz:
ssh root@IP_Address -p Port_number
Deberá reemplazar 'IP_Address' y 'Port_number' con la dirección IP y el número de puerto SSH respectivos de su servidor. Además, reemplace "root" con el nombre de usuario de la cuenta de administrador si es necesario.
Antes de comenzar, debe asegurarse de que todos los paquetes del sistema operativo Ubuntu instalados en el servidor estén actualizados. Puede hacerlo ejecutando los siguientes comandos:
apt-get update -y apt-get upgrade -y
Paso 2:Instalar Java
Jenkins es una aplicación basada en Java. Entonces, Java debe estar instalado en su sistema, si no está instalado, puede instalarlo usando el siguiente comando:
apt-get install default-jdk -y
Esto instalará la versión 11 de Java en su sistema. Puede verificar la versión de Java con el siguiente comando:
java -version
Deberías obtener el siguiente resultado:
openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
Paso 3:Instalar Jenkins
De forma predeterminada, Jenkins no está disponible en el repositorio estándar de Ubuntu, por lo que deberá agregar el repositorio de jenkins a su sistema.
Primero, instala las dependencias necesarias con el siguiente comando:
apt-get install apt-transport-https gnupg2 -y
A continuación, descargue y agregue la clave GPG con el siguiente comando:
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | apt-key add -
A continuación, agregue el repositorio de Jenkins con el siguiente comando:
sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
Una vez que se agrega el repositorio, actualice el caché del repositorio e instale Jenkins con el siguiente comando:
apt-get update -y apt-get install jenkins -y
Después de instalar Jenkins, verifique el estado de Jenkins usando el siguiente comando:
systemctl status jenkins
Deberías obtener el siguiente resultado:
● jenkins.service - LSB: Start Jenkins at boot time Loaded: loaded (/etc/init.d/jenkins; generated) Active: active (exited) since Mon 2020-12-21 05:34:22 UTC; 6s ago Docs: man:systemd-sysv-generator(8) Tasks: 0 (limit: 2353) Memory: 0B CGroup: /system.slice/jenkins.service Dec 21 05:34:20 ubuntu2004 systemd[1]: Starting LSB: Start Jenkins at boot time... Dec 21 05:34:21 ubuntu2004 jenkins[15472]: Correct java version found Dec 21 05:34:21 ubuntu2004 jenkins[15472]: * Starting Jenkins Automation Server jenkins Dec 21 05:34:21 ubuntu2004 su[15526]: (to jenkins) root on none Dec 21 05:34:21 ubuntu2004 su[15526]: pam_unix(su-l:session): session opened for user jenkins by (uid=0) Dec 21 05:34:21 ubuntu2004 su[15526]: pam_unix(su-l:session): session closed for user jenkins Dec 21 05:34:22 ubuntu2004 jenkins[15472]: ...done. Dec 21 05:34:22 ubuntu2004 systemd[1]: Started LSB: Start Jenkins at boot time.
Jenkins ahora se está ejecutando y escuchando en el puerto 8080. Puede verificarlo con el siguiente comando:
ss -antpl | grep 8080
Deberías obtener el siguiente resultado:
LISTEN 0 50 *:8080 *:* users:(("java",pid=15539,fd=141))
Paso 4:Configure Nginx como proxy inverso para Jenkins
Es una buena idea usar Nginx como proxy inverso para acceder a Jenkins. Para hacerlo, instale Nginx usando el siguiente comando:
apt-get install nginx -y
Una vez que nginx esté instalado, cree un archivo de configuración de Nginx con el siguiente comando:
nano /etc/nginx/conf.d/jenkins.conf
Agregue las siguientes líneas:
upstream jenkins { keepalive 32; server 127.0.0.1:8080; } # Required for Jenkins websocket agents map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name jenkins.domain.com; # this is the jenkins web root directory # (mentioned in the /etc/default/jenkins file) root /var/run/jenkins/war/; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; # pass through headers from Jenkins that Nginx considers invalid ignore_invalid_headers off; location ~ "^/static/[0-9a-fA-F]{8}\/(.*)$" { rewrite "^/static/[0-9a-fA-F]{8}\/(.*)" /$1 last; } location /userContent { root /var/lib/jenkins/; if (!-f $request_filename){ #this file does not exist, might be a directory or a /**view** url rewrite (.*) /$1 last; break; } sendfile on; } location / { sendfile off; proxy_pass http://jenkins; proxy_redirect default; proxy_http_version 1.1; # Required for Jenkins websocket agents proxy_set_header Connection $connection_upgrade; proxy_set_header Upgrade $http_upgrade; 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 $scheme; proxy_max_temp_file_size 0; #this is the maximum upload size client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffering off; proxy_request_buffering off; # Required for HTTP CLI commands proxy_set_header Connection ""; # Clear for keepalive } }
Guarde y cierre el archivo, luego verifique la configuración de Nginx usando el siguiente comando:
nginx -t
Deberías obtener el siguiente resultado:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Finalmente, reinicie el servicio Nginx con el siguiente comando:
systemctl restart nginx
Paso 5:Acceda a Jenkins
Ahora, abra su navegador web y acceda a la interfaz web de Jenkins usando la URL http://jenkins.domain.com
. Debería ver la siguiente página:
Ahora, abre tu terminal e imprime la contraseña de Jenkins usando el siguiente comando:
cat /var/lib/jenkins/secrets/initialAdminPassword
Debería obtener la contraseña de administrador de Jenkins en el siguiente resultado:
00c7fa4f27c142a3ab8e6867eddb1bdd
A continuación, vuelva a su interfaz web, pegue la contraseña anterior y haga clic en Continuar. botón. Debería ver la siguiente pantalla:
Haga clic en instalar complementos sugeridos botón. Una vez que todos los complementos estén instalados, debería obtener la siguiente página:
Proporcione su nombre de usuario, contraseña, correo electrónico y haga clic en Guardar y continuar botón. Debería ver la siguiente página:
Proporcione la URL de su sitio web de Jenkins y haga clic en Guardar y finalizar botón. Debería ver la siguiente página:
Haga clic en Empezar a usar Jenkins . Debería ver el panel predeterminado de Jenkins en la siguiente página:
Por supuesto, no tiene que hacer nada de esto si utiliza uno de nuestros servicios de hospedaje de VPS Jenkins administrados, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que lo configuren por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD. Si te gustó esta publicación, compártela con tus amigos en las redes sociales usando los botones de la izquierda o simplemente deja una respuesta a continuación. Gracias.