Hace mucho tiempo que no escribo y vuelvo pues con mas temas sobre puppet y testing.

El otro dia ayudando a una persona con su proyecto….

Surgio la idea de figaro. Una mini herramienta para pasar los test rspec de los modulos de puppet de manera automatica y masiva sin ensuciar nuestro pc.

Vamos al turron.

Primero lo que debemos hacer es compilar el container base con este Dockerfile

FROM debian:latest
RUN apt-get update
RUN apt-get install ruby2.1 ruby2.1-dev puppet -y
RUN ln -sf /usr/bin/ruby2.1 /usr/bin/ruby
RUN ln -sf /usr/bin/gem2.1 /usr/bin/gem
RUN /usr/bin/gem install rspec rspec-puppet rake
VOLUME /tmp/modules:/opt/modules
ENV class "vanilla"
ADD testing /tmp/testing
RUN chmod 755 /tmp/testing
ENTRYPOINT ["bash", "/tmp/testing"]

El fichero del entrypoint es el siguiente

#!/bin/bash
class_=`echo $class | tr -d "\""`
cd /opt/modules/${class_}
rake rspec

Ahora compilamos con el comando

docker build -t figaro .

Con esto ya tenemos la imagen de figaro, ahora podriamos lanzar los test automaticos.

Podriamos hacerlo de varias maneras la simple

docker run -it -v "carpeta modulos":/opt/modules -e class="modulo a testar" figaro

Tambien podemos utilizar docker-compose utilizando el siguiente fichero de docker-compose.yml

kibana:
 image: figaro
 environment:
  - class="kibana"
 volumes:
  - /tmp/modules:/opt/modules

Una vez con este fichero lo podemos lanzar asi

docker-compose run kibana

Y por ultimo podemos hacerlo de forma masiva con figaro de la siguiente forma.

Creamos un fichero yaml con el siguiente contenido

path: /tmp/modules # path donde se encuentran los modulos
image: figaro #imagen del container que hemos compilado
modules:
 - elasticsearch
 - kibana
# estos son los modulos del los que se pasaran los test por si no queremos pasarlos todos

Despues de esto instalamos las dependencias

pip install pyaml docker-py termcolor

Y lanzamos figaro con el comando

python figaro.py modules.yml

figaro

Hasta aquí el proyecto figaro……

Deja un comentario