Instalar y configurar Jenkins en Ubuntu 16.04
Introducción
Jenkins es un servidor de automatización escrito en Java, como una bifurcación del proyecto Hudson. Ayuda a automatizar parte del proceso de desarrollo de software, con ayudas como la integración continua, pero también empoderando aún más a los equipos para implementar la parte técnica de una Entrega Continua. Jenkins es compatible con muchos sistemas de software SCM (Source Control Management), incluidos Git, SVN y Mercurial y proporciona cientos de complementos para automatizar proyectos.
Este tutorial explica cómo instalar y usar Jenkins en Ubuntu 16.04 usando Apache como servidor.
Instalar Java
Jenkins requiere Java, por lo tanto, instale OpenJDK7 en el servidor. Primero, instale
python-software-properties
:
apt install python-software-properties
Luego puedes agregar el repositorio de Java:
add-apt-repository ppa:openjdk-r/ppa
Actualice los repositorios de Ubuntu e instale OpenJDK:
apt update
apt install openjdk-7-jdk
Correr
java -version
para verificar que tiene OpenJDK7 correctamente instalado.
Instalar Jenkins
El equipo de Jenkins proporciona un repositorio para Ubuntu. Primero, agrégalo:
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
Actualice el repositorio e instale Jenkins:
apt update
apt install jenkins
El proceso de instalación realizará las siguientes tareas:
- Configure Jenkins como un demonio lanzado al inicio
- Cree un usuario de Jenkins para ejecutar este servicio
Salida directa del registro de la consola al archivo
/var/log/jenkins/jenkins.log
- Complete /etc/default/jenkins con parámetros de configuración para el lanzamiento
- Configure Jenkins para que escuche en el puerto 8080. Acceda a este puerto con su navegador para iniciar la configuración
A continuación, inicie Jenkins:
systemctl start jenkins
Verifique que se esté ejecutando y escuchando en el puerto 8080 con el siguiente comando:
nestat -plntu | grep 8080
Verás una línea como esta:
tcp6 0 0 :::8080 :::* LISTEN 122 54406 12370/java
Instalar y configurar Apache
Instale el servidor web Apache en su sistema:
apt install apache2
A continuación, habilite el
proxy
y
proxy_http modules
para configurarlo como servidor front-end y proxy inverso para Jenkins. Esto se hace ejecutando los siguientes comandos:
a2enmod proxy
a2enmod proxy_http
Ahora debes crear un nuevo archivo de Host Virtual en el
/etc/apache2/sites-available/
directorio.
$EDITOR /etc/apache2/sites-available/jenkins.conf
Aquí, pega las siguientes líneas:
<Virtualhost *:80>
ServerName my.jenkins.id
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://my.jenkins.id/
</Virtualhost>
Guarde el archivo y active el host virtual de Jenkins con el
a2ensite
dominio.
a2ensite jenkins
Todas estas modificaciones se harán efectivas después de reiniciar Apache y Jenkins, así que:
systemctl restart apache2
systemctl restart jenkins
Al ejecutar el siguiente comando, puede verificar que Apache esté usando el puerto 80 y Jenkins el puerto 8080:
netstat -plntu | grep 80
Configurar Jenkins
Abra su navegador y vaya a la URL
http://localhost:8080
Verás esta página:
cat /var/lib/jenkins/secrets/initialAdminPassword
Copie la contraseña solicitada; en mi caso, este es:
f698b591187c40f298f24eea4847734a
Pégalo en la página de configuración de Jenkins y haz clic en Continuar.
Configurar la seguridad
Ahora que la instalación ha finalizado, necesitamos configurar los ajustes de seguridad estándar de Jenkins.
En el Panel, haga clic en Administrar Jenkins -> Configurar seguridad global. Verá una página con diferentes configuraciones. Desplácese y habilite Seguridad basada en Matrix. Esto le permitirá elegir permisos para los usuarios. Agrega el usuario "admin" y dale todos los permisos. Para Anónimo, habilite solo Leer. Haga clic en Guardar.
A partir de ahora, puede utilizar su servidor basado en Jenkins para gestionar trabajos de desarrollo. A través del Dashboard puedes agregar usuarios, crear nuevos proyectos y configurarlos.