Hoy vengo con algo distinto, pues me gustaría enseñaros una herramienta muy útil para hacer test de infraestructura
Nunca tenemos en cuenta lo importante que es tener una infraestructura segura y estable, ya que podremos evitar muchos problemas.
Pues para hacer estos test utilizaremos gloss, una herramienta que trae un wrapper para docker. Aqui esta el repo.
https://github.com/aelsabbahy/goss
Para nuestro caso utilizaremos el wrapper dgoss, que es muy sencillo de utilizar.
Primero construimos un Dockerfile de ejemplo
FROM alpine CMD ["sh","-ec","while true; do echo 'test'; sleep 2; done"]
Después debemos compilar el container con
docker build . -t test
Una vez compilado vamos hacer los test del container para esto creamos el fichero goss.yaml
para crearlo de forma fácil utilizamos lo siguiente
dgoss edit test
Esto abrirá un shell y podemos lanzar los comando de goss entre ellos el autoadd para que nos genere los test, en nuestro caso como es de prueba y solo estamos ejecutando sh, pues podemos generar los test para dicho proceso con el siguiente comando.
goss autoadd sh Adding Process to './goss.yaml': sh: running: true
Una vez tenemos el goss.yaml con todos los test, para ejecutarlos dentro del container ejecutamos
dgoss run test INFO: Starting docker container INFO: Container ID: 6c7af040 INFO: Sleeping for 0.2 INFO: Running Tests Process: sh: running: matches expectation: [true] Total Duration: 0.001s Count: 1, Failed: 0, Skipped: 0 INFO: Deleting container
Como veis en pocos pasos tenemos los test correspondientes a nuestra imagen docker, así podemos testar que todo esta correcto en las imágenes que compilamos.
Al igual que ejecutamos el goss.yaml con los test en container también podemos hacer lo propio con nuestros servidores, ya que podemos utilizar los mismos pasos anteriores con
goss autoadd
para generar los test de nuestros procesos en los servidores y ejecutar dichos test con
goss validate
Como siempre digo espero que os haya sido de ayuda por que ami si