Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== 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). <code bash> goss v # goss validate avec le fichier goss.yaml goss -g fichier.yaml v # goss validate avec le fichier fichier.yaml </code> ===== Utilisation de goss sur une machine ===== <code bash> cd tools/ansible/gsb/goss goss -g $HOSTNAME.yaml v .................................................... Total Duration: 0.064s Count: 38, Failed: 0, Skipped: 0 </code> 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 ==== Goss.yaml : un exemple ==== Exemple de fichier **goss.yaml** (pour **s-adm**) <code yaml> 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 </code> ==== Goss - Installation ==== <code bash> curl -fsSL https://goss.rocks/install | sh </code> ==== Goss - goss.yaml : spécifications ==== === interfaces statiques === * goss add interface eth0 * goss add interface eth1 === routes/passerelles === * goss add command "ip r | grep default" * goss aa application/service (bind9, ...) <code bash> </code> ==== Goss et GSB ==== 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:49de 127.0.0.1