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
Hasta aquí el proyecto figaro……