http://cdn-images-1.medium.com/max/1200/1*RmcSmwPhUn8ljLiiwYxK0A.png

Jenkins, automatizar los despliegues con Docker

¿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

http://linuxize.com/post/how-to-install-jenkins-on-centos-7/unlock-jenkins.jpg

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:

http://pbs.twimg.com/media/DXxZPHrWkAA8NyC.jpg

Un comentario

Dejar una contestacion

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.