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 :
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
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.