Cómo instalar el servidor de automatización Jenkins con Apache en Ubuntu

Jenkins es un servidor de automatización bifurcado del proyecto Hudson. Jenkins es una aplicación basada en servidor que se ejecuta en un contenedor Java servlet, y es compatible con muchos sistemas de software SCM (Gestión del Control de Fuentes), como Git, SVN y Mercurial. Jenkins proporciona cientos de plugins para automatizar tu proyecto. Jenkins fue creado por Kohsuke Kawaguchi, publicado por primera vez en 2011 bajo licencia MIT, y es un software libre.

En este tutorial, te mostraré cómo instalar la última versión estable de Jenkins en Ubuntu Server 18.04 LTS (Bionic Beaver). Ejecutaremos Jenkins en nuestro propio nombre de dominio, e instalaremos y configuraremos Jenkins para que se ejecute bajo el proxy inverso del servidor web Apache.

Requisitos previos

  • Ubuntu 18.04
  • Privilegios de root

¿Qué haremos?

  1. Instalar Java
  2. Instala Jenkins
  3. Instalar y configurar Apache2 como proxy inverso para Jenkins
  4. Configurar el cortafuegos UFW
  5. Configurar Jenkins
  6. Seguridad de Jenkins
  7. Probar

Paso 1 – Instalar Java

Jenkins es una aplicación basada en Java, por lo que necesitamos instalar Java OpenJDK en el servidor. En este paso, instalaremos Java 8 desde un repositorio PPA que añadiremos primero.

Instala los paquetes software-properties-common, y luego añade el repositorio PPA java OpenJDK.

sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:openjdk-r/ppa -y

Instalar Java

Ahora instala Java 8 utilizando el comando apt.

sudo apt install openjdk-8-jdk -y

Cuando finalice la instalación, comprueba la versión de java instalada en el sistema.

java -version

Y obtendrás que Java OpenJDK 1.8 ya está instalado en el sistema Ubuntu 18.04.

Java OpenJDK 1.8 ya está instalado en Ubuntu 18.04

Nota:

  • Si tienes varias versiones de java en tu sistema, cambia la versión de java por defecto utilizando el siguiente comando.
sudo update-alternatives --config java

Paso 2 – Instala Jenkins

Jenkins proporciona un repositorio Ubuntu para los paquetes de instalación y vamos a instalar Jenkins desde este repositorio.

Añade la clave y el repositorio de Jenkins al sistema con el comando que se indica a continuación.

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo 'deb https://pkg.jenkins.io/debian-stable binary/' | tee -a /etc/apt/sources.list

Ahora actualiza el repositorio e instala Jenkins.

sudo apt update
sudo apt install jenkins -y

Instalar Jenkins en Ubuntu

Cuando finalice la instalación, inicia el servicio Jenkins y añádelo al tiempo de arranque.

systemctl start jenkins
systemctl enable jenkins

Jenkins ya está en marcha en el servidor Ubuntu 18.04, ejecutándose en el puerto por defecto ‘8080’. Compruébalo utilizando netstat como se indica a continuación.

netstat -plntu

Y obtendrás el resultado de abajo.

Servidor Jenkins activado e iniciado

Paso 3 – Instalar y configurar Apache2 como proxy inverso para Jenkins

En este tutorial ejecutaremos Jenkins detrás de un servidor web Apache, configuraremos apache como proxy inverso para Jenkins.

Primero instalaremos Apache y habilitaremos algunos módulos necesarios, y después crearemos el archivo de host virtual con el nombre de dominio jenkins.hakase-labs.io para Jenkins. Utiliza aquí tu propio nombre de dominio y sustitúyelo en todos los archivos de configuración donde aparezca.

Instala el servidor web apache2 desde el repositorio de Ubuntu.

sudo apt install apache2 -y

Una vez completada la instalación, activa los módulos proxy y proxy_http para que podamos configurar apache como servidor frontend/proxy inverso para Jenkins.

a2enmod proxy
a2enmod proxy_http

A continuación, crea un nuevo archivo de host virtual para Jenkins en el directorio sites-available.

cd /etc/apache2/sites-available/
vim jenkins.conf

Pega a continuación la configuración del host virtual.

<Virtualhost *:80>
    ServerName        jenkins.hakase-labs.io
    ProxyRequests     Off
    ProxyPreserveHost On
    AllowEncodedSlashes NoDecode
 
    <Proxy http://localhost:8080/*>
      Order deny,allow
      Allow from all
    </Proxy>
 
    ProxyPass         /  http://localhost:8080/ nocanon
    ProxyPassReverse  /  http://localhost:8080/
    ProxyPassReverse  /  http://jenkins.hakase-labs.io/
</Virtualhost>

Guarda y sal, después activa el host virtual de Jenkins con el comando a2ensite.

a2ensite jenkins

Reinicia los servicios de Apache y Jenkins.

systemctl restart apache2
systemctl restart jenkins

La instalación y configuración de apache2 como proxy inverso para Jenkins ha finalizado.

Apache como proxy inverso para jenkins

Paso 4 – Configurar el cortafuegos UFW

Antes de habilitar el cortafuegos UFW en el servidor Ubuntu, tenemos que añadir los puertos de servicios básicos como SSH, HTTP y HTTPS.

Añade los servicios SSH, HTTP y HTTPS al cortafuegos ufw.

ufw allow ssh
ufw allow http
ufw allow https

Ahora inicia y habilita el cortafuegos ufw.

ufw enable

Escribe «y» y pulsa Intro.

Configurar el cortafuegos UFW

El cortafuegos ufw ya está habilitado y se ha añadido el puerto HTTP.

Paso 5 – Configurar Jenkins

Jenkins se está ejecutando en el nombre de dominio‘http://jenkins.hakase-labs.io’. Abre tu navegador web y escribe la URL.

Aparecerá una pantalla que te pedirá que introduzcas la contraseña inicial de administrador. Jenkins ya ha generado una contraseña, así que sólo tenemos que mostrar y copiar los resultados en el cuadro de contraseña.

Muestra la contraseña inicial de admin Jenkins con el comando cat.

cat /var/lib/jenkins/secrets/initialAdminPassword

Configurar jenkins

Pega los resultados en la pantalla y haz clic en «Continuar».

Desbloquear Jenkins

Ahora deberíamos instalar algunos plugins en Jenkins para tener una buena base para su uso posterior. Elige ‘Instalar plugins sugeridos’, haz clic en él.

Personalizar Jenkins

Instalación de plugins de Jenkins en curso.

Inicio de Jenkins

Una vez completada la instalación de plugins, necesitamos crear una nueva contraseña de administrador. Escribe tu nombre de usuario, contraseña, correo electrónico, etc. y haz clic en «Guardar y continuar».

Crear usuario administrador

Para la configuración de la instancia, escribe el nombre de dominio de Jenkins ‘http://jenkins.hakase-labs.io’ y haz clic en el botón ‘Guardar y finalizar’.

Configuración de la instancia

Ahora haz clic en el botón ‘Empezar a utilizar Jenkins’.

Jenkins está listo

Y serás redirigido al panel de administración de Jenkins.

Bienvenido a Jenkins

La instalación y configuración de Jenkins se ha completado correctamente

Paso 6 – Seguridad de Jenkins

Desde el panel de administración de Jenkins, tenemos que configurar los ajustes de seguridad estándar para Jenkins, haz clic en «Gestionar Jenkins» y luego en «Configurar Seguridad Global».

Gestionar Jenkins

Jenkins proporciona varios métodos de autorización en la sección «Control de acceso». Nosotros utilizaremos la ‘Seguridad basada en matrices’, para poder controlar todos los privilegios de los usuarios.

Añade el usuario ‘hakase’ en la casilla ‘Usuario/Grupo’ y haz clic en añadir.

Da al usuario ‘hakase’ todos los privilegios marcando todas las opciones, y haz clic en el botón ‘Guardar’.

Configuración de Jenkins

Serás redirigido al panel de control, y si hay opción de inicio de sesión, simplemente escribe tu usuario y contraseña de administrador.

Iniciar sesión como admin

Paso 7 – Pruebas

En esta sección, queremos crear un trabajo sencillo para el servidor Jenkins. Crearemos un trabajo sencillo para probar Jenkins y averiguar la carga del servidor con el comando top.

Desde el panel de administración de Jenkins, haz clic en «Crear nuevo trabajo».

Crear trabajo en Jenkins

Escribe el nombre del trabajo. Aquí utilizaremos ‘Sistema de comprobación’, selecciona ‘Proyecto de estilo libre’ y haz clic en ‘Aceptar’.

Trabajos en Jenkins

Ve a la pestaña «Construir». En «Añadir paso de compilación», selecciona la opción «Ejecutar shell».

Escribe en la casilla el comando que aparece a continuación.

top -b -n 1 | head -n 5

Haz clic en «Guardar».

Crear trabajo Jenkins

Ahora estás en la página de la tarea «Sistema de comprobación de proyectos». Haz clic en «Construir ahora» para ejecutar la tarea «Sistema de comprobación».

Sistema de comprobación de proyectos

Una vez ejecutado el trabajo, verás el ‘Historial de construcción’, haz clic en el primer trabajo para ver los resultados.

Aquí tienes los resultados del trabajo ejecutado por Jenkins.

Resultado de la ejecución del trabajo Jenkins

La instalación y configuración de la herramienta de automatización Jenkins con Apache2 como proxy inverso en Ubuntu 18.04 se ha completado con éxito.

Referencias

También te podría gustar...