¿Estás pasando mucho tiempo desplegando código en tu infraestructura con muchos pasos y software? No te preocupes, estás en el lugar correcto para aprender cómo instalar Jenkins, la herramienta de código abierto más utilizada.
En este tutorial, aprenderás cómo instalar Jenkins en una máquina Ubuntu, para que puedas construir y desplegar código con solo un clic.
Sigue leyendo y ¡comienza la instalación!
Prerrequisitos
Esta publicación será un tutorial paso a paso. Para seguirlo, asegúrate de tener una máquina Ubuntu. Este tutorial utiliza Ubuntu 18.04 con apache instalado.
Instalación de Java Versión 11 en una Máquina Ubuntu
Jenkins es una herramienta de Integración Continua (CI) y Despliegue Continuo (CD), que puedes ejecutar en diferentes contenedores servlet, como Apache Tomcat o GlassFish. Pero para esta demostración, ejecutarás Jenkins en su servidor de contenedor servlet Java incorporado.
Existen múltiples implementaciones de Java que puedes utilizar con Jenkins, pero OpenJDK es la más popular, la cual instalarás y utilizarás en este tutorial.
1. Inicia sesión en tu máquina Ubuntu utilizando tu cliente SSH favorito.
2. A continuación, ejecuta los siguientes comandos para crear un directorio llamado ~/install_jenkins_demo y cambia a ese directorio.
3. Ejecuta el comando apt install
a continuación para instalar Java en tu máquina.

4. Por último, ejecuta el siguiente comando para verificar la versión de Java instalada en tu máquina. Al hacerlo, te aseguras de haber instalado Java correctamente.

Instalar Jenkins en una instancia de Ubuntu 18.04 LTS
Ahora que tienes Java instalado en la máquina Ubuntu, es hora de instalar Jenkins en tu máquina. La instalación de Jenkins es bastante similar a cómo instalas otros paquetes en tu máquina.
Suponiendo que aún estás conectado al cliente SSH:
1. Primero, ejecuta el comando apt update
para actualizar los paquetes del sistema.
2. A continuación, ejecuta el siguiente comando wget
para agregar la clave pública de Jenkins a tu sistema.
Agregar la clave pública permite que el sitio de Jenkins descargue el repositorio oficial de Jenkins o cualquier paquete requerido.
3. Ejecuta los siguientes comandos para agregar el repositorio oficial de Jenkins a tu sistema y actualizarlo.

4. Ahora, ejecuta el siguiente comando para instalar
el paquete Jenkins
.

5. Por último, ejecuta el comando service
a continuación para verificar el estado del servicio Jenkins. # Validar el servicio Jenkins en la máquina ubuntu service jenkins status
Como puedes ver a continuación, el estado muestra que el servicio Jenkins está activo.

Configurando una Instancia de Jenkins
En este punto, has avanzado a la mitad en la instalación exitosa de Jenkins. Pero, antes de empezar a usarlo realmente, necesitas configurarlo con comodidades básicas. ¿Cómo? El primer paso para configurar Jenkins es desbloquear el Jenkins recién instalado.
Suponiendo que todavía estás conectado al cliente SSH:
1. Abre tu navegador favorito y navega hacia la dirección IP del servidor seguida por el puerto 8080 como jenkins-ip:8080. Después de navegar al enlace, necesitarás desbloquear Jenkins proporcionando la contraseña administrativa. La contraseña administrativa se encuentra almacenada en el directorio /var/lib/jenkins/secrets/initialAdminPassword
en el servidor (paso dos).

2. Ejecuta el comando cat
a continuación para agregar la contraseña del administrador en tu máquina desde el directorio /var/lib/jenkins/secrets/initialAdminPassword
.
Como puedes ver a continuación, la cadena enorme en la salida es la contraseña de administrador. Toma nota de la contraseña de administrador ya que la necesitarás para desbloquear Jenkins (paso tres).

3. Vuelve a tu navegador web (Desbloquear Jenkins página) e introduce la contraseña de administrador que anotaste en el paso dos.
Una vez que hayas desbloqueado Jenkins, tu navegador se redireccionará a una página donde personalizarás tu instancia de Jenkins con complementos (paso cuatro).
4. En la página Personalizar Jenkins, haz clic en la opción Instalar complementos sugeridos.
El complemento Jenkins es una herramienta de terceros que se integra con Jenkins y te permite realizar tareas como el complemento Git. El complemento Git te permite conectar con repositorios Git, ejecutar comandos Git, y más.

5. Completa los detalles del usuario administrador, como se muestra a continuación, y haz clic en Guardar y Continuar para crear un usuario administrador. Este usuario administrador te permite trabajar con el panel de control de la interfaz de usuario de Jenkins o con la instancia de Jenkins.
Tan pronto como hagas clic en Guardar y Continuar, obtendrás una pantalla de Configuración de la Instancia como se muestra en el paso cinco.
Por defecto, Jenkins tiene un usuario administrador creado con nombre de usuario/contraseña (
admin: admin
) pero aún te proporciona la opción de crear un usuario administrador de tu elección. Puedes omitirlo y continuar como administrador si no deseas crear un usuario administrador personalizado.

6. Por último, haz clic en Guardar y Finalizar para guardar la configuración de la instancia.
La configuración de la instancia te permite especificar la URL de Jenkins que deseas utilizar, y en este caso, utilizarás la URL predeterminada (es decir, server-ip:8080)


Cambiando el Puerto Predeterminado de una Instancia de Jenkins
Anteriormente, aprendiste que por defecto, Jenkins se ejecuta en el puerto 8080, lo cual está bien. Pero, ¿qué pasa si necesitas ejecutar otras aplicaciones en el mismo puerto, como Apache o NGINX? ¡No te preocupes! Puedes cambiar el puerto predeterminado de Jenkins (8080) y ejecutar la instancia de Jenkins en otros puertos.
1. Abre el archivo /etc/default/Jenkins en tu editor de texto preferido y cambia el puerto predeterminado de 8080 a 9090, luego guarda los cambios.

2. A continuación, ejecuta el siguiente comando para reiniciar Jenkins, de modo que las configuraciones actualizadas surtan efecto.
3. Por último, accede a la URL de Jenkins, pero esta vez, cambia el puerto a 9090, como se muestra a continuación.

Ejecutando Jenkins de forma segura (HTTPS) mediante un certificado SSL
En este punto, tu instancia de Jenkins se está ejecutando perfectamente en el puerto 9090. ¿Pero es seguro? No, no lo es. Asegura tu instancia de Jenkins y evita que sea comprometida por atacantes habilitando un certificado SSL.
Los certificados SSL se utilizan principalmente para realizar pruebas en la máquina local cuando no hay un certificado disponible de una autoridad de certificación externa.
Para asegurar tu instancia de Jenkins:
1. Ejecuta cada uno de los siguientes comandos para crear un directorio llamado ~/certificates para almacenar certificados y cambia a ese directorio.
2. A continuación, ejecute el siguiente comando openssl
para generar una Solicitud de Firma de Certificado (CSR) y una clave privada.

3. Ejecute los siguientes comandos para crear otro directorio (/etc/apache2/ssl
) y mover los certificados del directorio ~/certificates/
al directorio /etc/apache2/ssl
.
4. Abra el archivo de configuración del sitio SSL predeterminado de Apache (/etc/apache2/sites-available/default-ssl.conf
) y agregue las siguientes líneas. Asegúrese de reemplazar <my-server-name>
con el nombre real de su servidor.
En el siguiente código, especifique la ubicación (clave y archivo de certificado) donde copió previamente los certificados SSL. Además, para que Jenkins redirija al puerto 9090
, agregará el argumento ProxyPass
y activará el ProxyPreserveHost
.

5. Ahora ejecute cada comando a continuación para habilitar el módulo SSL, habilitar el sitio que modificó (paso cuatro) y reiniciar el servicio Apache.
6. Por último, navegue hasta su instancia de Jenkins, pero esta vez, utilizando HTTPS, como se muestra a continuación.
Como puede ver, Jenkins se está abriendo correctamente con conexiones SSL en el puerto HTTPS. No se preocupe si ve un símbolo de advertencia que muestra el mensaje No seguro. Obtendrá esa advertencia ya que está utilizando un certificado autofirmado (creado por usted) y no por la autoridad de certificación.

Conclusión
En este tutorial, aprendió cómo instalar Jenkins en una máquina Ubuntu y verificar que puede acceder a una instancia de Jenkins de forma segura.
Ahora, ¿cómo planea mejorar su juego con Jenkins? ¿Quizás automatizar despliegues web? ¿O crear un pipeline de CI/CD de Jenkins para mejorar su proceso de desarrollo de software?