Jenkins

=Pre-requisitos= Jenkins corre sobre Java (7 u 8 según la versión que se instalará), por lo que se debe tener el JDK correspondiente instalado.

=Instalación Ubuntu=

Sólo si no existe un Jenkins instalado todavía.

wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins

=Instalación CentOS=

Agregar repositorio e instalar:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key sudo yum install jenkins

=Backup y Restore=

En Ubuntu en el archivo: /etc/default/jenkins

En CentOS en el archivo: /etc/default/jenkins

Fijarse en la variable JENKINS_HOME, donde está definido el directorio donde todos los ajustes, logs, jobs y archivos de artefactos se almacenan.

Simplemente archivar este directorio para hacer una copia de seguridad. Del mismo modo, la restauración de los datos es sólo la sustitución de los contenidos del directorio JENKINS_HOME de una copia de seguridad.

Copias de seguridad se pueden hacer sin detener el servidor, pero al restaurar, es necesario detener el servidor.

=Correr bajo el Nginx=


 * Se debe agregar un location en la configuracion del NGINX

location ^~ /jenkins { proxy_pass http://SERVER_IP:JENKINS_PORT/jenkins; proxy_redirect    default; sendfile off; proxy_set_header  Host             $host:$server_port; proxy_set_header  X-Real-IP        $remote_addr; proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for; proxy_max_temp_file_size 0; #this is the maximum upload size client_max_body_size      10m; client_body_buffer_size   128k;

proxy_connect_timeout     90; proxy_send_timeout        90; proxy_read_timeout        90;

proxy_buffer_size         4k; proxy_buffers             4 32k; proxy_busy_buffers_size   64k; proxy_temp_file_write_size 64k;

}


 * En el archivo de configuracion del jenkins se debe colocar el siguiente parametro:

PREFIX=/jenkins JENKINS_ARGS="--prefix=$PREFIX"

=Upgrade Jenkins=


 * 1) Apagamos el Servicio service jenkins stop<>
 * 2) Backup de /etc/default/Jenkins
 * obs: "si el upgrade modifica el archivo, renombrara la version anterior como jenkins.dpkg-old"
 * 1) Backup de /etc/nginx/sites-enabled/default (por si la version nueva afecte alguna configuracion)
 * 2) Actualizamos el Server sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
 * Verificamos que version tenemos instalada apt-cache policy jenkins Donde nos especificara la version instalada y el candidato por defecto
 * 1) Actualizamos Jenkins con sudo apt-get upgrade jenkins
 * Si tiene paquetes retenidos, estos son los que modificaran configuraciones importantes, consultar las mismas y hacer los backups archivos que corresponden para seguir.
 * Iniciamos el Servicio service Jenkins start

=DOCKER Jenkins=

DESCARGAR IMAGEN DOCKER
sudo docker pull jenkins/jenkins

CREAR DOCKER JENKINS - Ubuntu
El :lts te permite usar la ultima version disponible.

docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts Con jenkins_home:/var/jenkins_home, indicamos que ese sera el directorio que usara nuestro docker. Esto nos permitira borrar, actualizar, o mover libremente el docker sin preocuparnos por perder datos.


 * Puede personalizar la JVM que ejecuta Jenkins agregando.

--env JAVA_OPTS=-Dhudson.footerURL=http://mycompany.com Ejemplo.: docker run --name jenkins-sodep -p 8080:8080 -p 50000:50000 --env JAVA_OPTS=-Dhudson.footerURL=http://mycompany.com jenkins/jenkins:lts

Configurando proxy inverso
Si desea instalar Jenkins detrás de un proxy inverso con prefijo, por ejemplo: mysite.com/jenkins, debe agregar una variable de entorno.

JENKINS_OPTS="--prefix=/jenkins"

Obs: Antes de crear el docker verificar que los puertos a utilizar esten libres sudo netstat -tlnp

docker run -d --name myjenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home --env JENKINS_OPTS="--prefix=/jenkins" jenkins/jenkins:lts

Para mas info lease el README Oficial de Docker-Jenkins

README OFFICIAL DOCKER JENKINS
https://github.com/jenkinsci/docker/blob/master/README.md