Chapter 3 ¿Automatizacion? Jenkins

3.1 Primeros pasos jenkins

3.1.1 Descarga

Lo encontramos en la pagina oficial de jenkins

3.1.2 Requisitos e instalacion.

  • sudo apt-get update

  • sudo apt-get upgrade

  • Java 8 : sudo apt-get install opnjdk-8-jdk wget gnupg

  • sudo sh -c ‘echo deb http://pkg.jenkins.io/debian-stable binary/etc/apt/sources.list.d/jenkins.list’

  • sudo apt-get update

  • sudo apt-get install git jenkins

  • apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 9B7D32F2D50582E6

  • Llave SSH: ssh-keygen o tambien ssh-keygen -trsa -b 4096 -C “

  • service jenkins start

  • service jenkins status

  • Obtener ip: wget -qO- https://ipecho.net/plain ; echo

  • Interfaz jenkins: ip:8080

  • Hacemos lo que nos indica la interfaz, encontrar la contraseña para jenkins.

  • instalamos los plugins sugeridos.

  • Creamos nuestros admin-user.

  • En ambiente empresarial, tener una DNS que apunte a jenkins.dominio.empresa.com.

3.2 Manejo de usuarios

  • Nos vamos a administrar jenkins en la intefaz.

  • Gestion de usuarios.

  • Crear un usuario y listo.

3.3 Jobs

3.3.1 Que es

Jenkins is a free and open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat. Wikipedia

3.3.2 Configuracion

Podemos dejar marcado el checkbox de Desechar ejecuciones antiguas, donde podemos colocar elNumero de dias para mantener ejecuciones de proyectos y tambien Número máximo de ejecuciones para guardar ya que la historia llena la memoria del servidor.

3.4 Pipelines

Nos vamos a nueva tarea, le damos un nombre y elegimos la opcion pipeline.

La sintaxis varia de acuerdo al sismtema operativo donde se encuentre jenkins. Pero la estructura general es la siguiente:

Donde en instruccion podemos colocar codigo R, python, sql, bash, etc.

Por ejemplo:

  • Linux:

    • R: sh ’Rscript /home/usuario/carpeta/script.R

    • Python: sh ’python3 /home/usuario/carpeta/script.py

    • SQL: sh ‘sqlcmd -U usario_BD -P password -S servidor.com -d data_base -i /home/usuario/carpeta/script.sql’

  • Microsoft:

    • R: bat ‘C:/Users/usuario/carpeta/script.bat’

Por ahora solo he logrado correr R scripts. Se preguntaran porque un .bat, bueno no se si exista una manera mas limpia, pero se tienen un poco de problemas para correr scripts R ya que tenemos una version instalada a nivel usuario, que es con el que entramos y otra a nivel sistema, es extraño, pero me paso.

Asi que lo que tenemos que hacer es encontrar donde esta instalado nuestro R. Probablemente tenga esta ruta C:/Program Files/R/R-3.6.1/bin con algunos cambios en la version probablemente.

Aca tenemos un R consola, que puede ejecutar scripts desde bash, por lo que la sintaxis para hacerlo, tambien es rara, pero funciona: Rscript.exe -e "source('C:/Users/nombre_usuario/carpeta/script.R')"

Exacto, usaremos la funcion source de R para ejecutar un script en especifico, ahora probablemente tengan problemas con las librerias, ya que este R de sistema es distinto a nuestro R de usuario con las librerias descargadas en otra ruta, si no me equivoco seria C:/Users/nombre_usuario/Documents/R/win-library. La solucion es crear un script R que tenga las librerias que el R de sistema no tiene y colocar la ruta en el .bat para que apunte a ese script y las instale.

Por lo que finalmente nuestro script .bat tendra la siguiente estructura: