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: