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

Deja un comentario