¿Qué es?
En su página, http://jenkins.io, vemos el siguiente slogan:
The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.
En la Wikipedia, http://es.wikipedia.org/wiki/Jenkins, leemos lo siguiente:
Jenkins es un software de Integración continua open source escrito en Java. Está basado en el proyecto Hudson y es, dependiendo de la visión, un fork del proyecto o simplemente un cambio de nombre. Jenkins proporciona integración continua para el desarrollo de software.
Instalamos jdk, con el siguiente comando:
yum install java-1.8.0-openjdk-devel
Descargamos el repositorio de Jenkins:
curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo
Añadimos la llave del repo:
rpm --import http://jenkins-ci.org/redhat/jenkins-ci.org.key
Procedemos a instalar Jenkins, con yum
yum install jenkins
Editamos el fichero /etc/sysconfig/jenkins cambiando el puerto de 8080 a 8081:
JENKINS_PORT="8081"
Arrancamos Jenkins
systemctl start jenkins
Habilitamos el inicio automático
systemctl enable jenkins
Accedemos a Jenkins en la dirección http://ip_del_servidor:8081 y nos solicitara el password.
Este password lo obtenemos corriendo el siguiente comando:
cat /var/lib/jenkins/secrets/initialAdminPassword
Pulsamos en Select plugins to install
En la barra de búsqueda, escribimos ssh y marcamos los 4 qué nos aparecen y pulsamos Install
Instalará los plugins
Una vez instalados todos los plugins, nos pedirá crear el primer usuario administrador:
Una vez definido el usuario administrador, nos permitirá cambiar la url. No la cambiamos y pulsamos en Save and Finish.
Vamos a instalar los plugins de ssh, pulsando en Manage Jenkins
Pulsamos en Manage Plugins
Pulsamos en Avaliable
Escribimos ssh en el cuadro de búsqueda, marcamos el plugin SSH Pipeline Steps y pulsamos en Download now and install after restart
Una vez reiniciado Jenkins, vamos a Credentials – System –Global credentials (unrestricted) y pulsamos en adding some credentials
Dejamos los campos tal como se muestran, indicando el usuario y password del servidor que corre docker. Pulsamos OK
Ahora vamos a Manage Jenkins – Configure System
Pulsamos ADD en SSH sites
Indicamos la ip y el puerto, del servidor de docker. Luego pulsamos en Check connection
Si nos indica Successfull connection, pulsamos en Save
En la página principal, pulsamos en créate new Jobs
Introducimos un nombre, para el job. Pulsamos en Freestyle Project y en OK.
Solo usaremos la parte de Build Environtment.
Marcamos la opción Execute Shell script on remote host using ssh. El servidor de docker, ya aparece (lo hemos creado antes)
En Pre build script introducimos:
docker build -t tomcat7 -f /docker/imagenes/Dockerfile_tomcat7 /docker/imagenes/.
En Post build script introducimos:
/usr/bin/docker container run -d -v /Aplicaciones:/Aplicaciones \
--name tomcat001 -h tomcat001 -p 9000:8080 -p 9001:8009 \
--restart=always tomcat7
Quedando así:
Pulsamos en Save
Ya tenemos creado el job
Pulsamos en Build Now, para que empiece con el despliegue del contenedor
Al pulsar el Build Now, veremos, en Build History, que está ejecutando el job.
Si pulsamos en el número del Build (#1), veremos la siguiente pantalla:
Pulsamos en Console Output, para ver el progreso
Primero, ejecuta el primer comando, construir el contenedor con el Dockerfile
Nos va mostrando el progreso:
Cuando termina la construcción del contenedor, nos muestra lo siguiente:
Ahora, arranca el segundo comando, el arranque del contenedor y termina el job:
Ya tenemos el contenedor corriendo, con el nombre indicado en el parámetro –name, en este caso tomcat001 con el puerto web 9000
Si vamos a portainer, vemos que está creado y funcionando:
Si accedemos a la ip del servidor de docker, con el puerto de tomcat, vemos que está corriendo:
Un comentario