gsb_-_tests

GSB - les tests

Les test sont prévus pour chaque (presque) machine de l'infrastructure grâce à l'outil goss ( https://github.com/aelsabbahy/goss)

Goss permet pour une machine données d'effectuer des tests fonctionnels (paquets installés, ports ouverts, interfaces réseau, services actifs, processus lancés, résultats de commande, fichiers …)

Les commandes :

  • v : validate
  • add : ajouter un test
  • aa : auto add : ajoute une ressource de test
  • render : affiche les commandes exécutées ainsi que le résultat

Pour plus d'information, cf : https://github.com/aelsabbahy/goss/blob/master/docs/manual.md

Pour effectuer la vérification, goss utilise le fichier goss.yaml situé dans le répertoire courant.

Ce fichier goss.yml est produit par des appels successifs à la commande goss add, appels permettant d'ajouter des descriptions de test (cf plus loin).

  goss v # goss validate avec le fichier goss.yaml
  goss -g fichier.yaml v # goss validate avec le fichier fichier.yaml
 
cd tools/ansible/gsb/goss
goss -g $HOSTNAME.yaml v
....................................................
Total Duration: 0.064s
Count: 38, Failed: 0, Skipped: 0

On constate que 38 tests on été effectués et que aucun n'a posé de problème. En cas de problème, goss affiche les tests problématiques

Exemple de fichier goss.yaml (pour s-adm)

package:
  dnsmasq:
    installed: true
    versions:
    - 2.72-3+deb8u1
  squid3:
    installed: true
addr:
  tcp://depl.sio.lan:80:
    reachable: true
    timeout: 500
port:
  tcp:53: 
    listening: true
    ip:
    - 0.0.0.0
  tcp6:53:
    listening: true
    ip:
    - '::'
  tcp6:8080:
    listening: true
    ip:
    - '::'
  udp:53:
    listening: true
    ip:
    - 0.0.0.0
  udp:67:
    listening: true
    ip:
    - 0.0.0.0
  udp6:53:
    listening: true
    ip:
    - '::'
service:
  dnsmasq:
    enabled: true
    running: true
  squid3:
    enabled: true
    running: true
  ssh:
    enabled: true
    running: true
user:
  dnsmasq:
    exists: true
    uid: 111
    gid: 65534
    groups:
    - nogroup
    home: /var/lib/misc
    shell: /bin/false
group:
  ssh:
    exists: true
    gid: 108
command:
  sysctl net.ipv4.ip_forward:
    exit-status: 0
    stdout:
    - net.ipv4.ip_forward = 1
    stderr: []
    timeout: 10000
dns:
  depl.sio.lan:
    resolveable: true
    addrs:
    - 10.121.38.10
    timeout: 500
process:
  dnsmasq:
    running: true
  squid3:
    running: true
interface:
  eth1:
    exists: true
    addrs:
    - 192.168.99.99/24
    - fe80::a00:27ff:fe2a:1e26/64
  curl -fsSL https://goss.rocks/install | sh

interfaces statiques

  • goss add interface eth0
  • goss add interface eth1

routes/passerelles

  • goss add command “ip r | grep default”
  • goss aa application/service (bind9, …)
 

le dépot gsb comporte un répertoire goss qui contient des fichiers de test yaml nommés du nom de la machine (s-infra.yaml, …). A ce jour, trois machines disposent de fichiers de test : s-adm, s-infra et r-int.

Pour lancer un test goss, il suffit de taper la commande gsbchk qui lance goss avec le fichier gossfile qui porte le nom de la machine considérée.

  • gsb_-_tests.txt
  • Dernière modification : 2020/01/07 10:49
  • de 127.0.0.1