Buenas hoy os traigo un poco mas de docker, por que lo he llamado stromboli pues por que tenemos puppet que es marioneta , tenemos gepetto que es su ide, pues ahora tenemos stromboli un personaje de pinocho
En este post voy a poner como hacer un contenedor para probar nuestros módulos de puppet sin ensuciar nada.
Para ello lo primero que tenemos que tener instalado es docker
Luego compilamos el contenedor apartir de este dockerfile
FROM iuscommunity/centos6 RUN yum install -y puppet RUN yum install -y wget RUN mkdir /opt/modules ENV modules "/opt/modules" ENV class "vanilla" ENTRYPOINT /usr/bin/puppet apply --modulepath=${modules} -e "include ${class}"
Compilamos
docker build -t puppet-centos .
Ahora ya tenemos listo nuestro contenedor ahora lo lanzamos de la siguiente manera
docker run -it -v "carpeta del modulo":/opt/modules/"nombre del modulo" -e class="clase del modulo" puppet-centos
Y el resultado es el siguiente
docker run -it -v ~/puppet_modules/puppet/ntp:/opt/modules/ntp -e class="ntp" puppet-centos notice: /Stage[main]/Ntp/Package[ntp]/ensure: created notice: /Stage[main]/Ntp/File[ntp_conf]/content: content changed '{md5}7fda24f62b1c7ae951db0f746dc6e0cc' to '{md5}d8ef2484293860057ad3dff8b4d3233f' err: /Stage[main]/Ntp/Service[service_ntp]/ensure: change from stopped to running failed: Could not start Service[service_ntp]: Execution of '/sbin/service ntpdate start' returned 1: at /opt/modules/ntp/manifests/init.pp:44 notice: /Stage[main]/Ntp/Service[service_ntp]: Triggered 'refresh' from 1 events notice: Finished catalog run in 113.73 seconds
Como veis con esto puedo ver que el modulo tiene algo incorrecto sin ensuciar mi sistema.
Para testeas varias clases pondremos las clases separadas por comas con en el ejemplo
-e class="ntp, ntp::service, ntp::config"
Con esto ya estaria todo ahora a probar modulos