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 “mimail@mail.com”
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: