#!/bin/bash runErrorScript() { #set -x eval "$@" &> /dev/null [ $? != 0 ] && { echo "Le script a, au moins partiellement, échoué !" >&2 } || echo "ok" } apply() { case "$choix" in "Erreur 1 (TP1)") # Remplace 192.168.30.16 par 192.168.30.61 dans tiny:/etc/network/interfaces runErrorScript "vdn-ssh root@tiny \ 'sed -i -re s/192.168.30.16/192.168.30.61/g /etc/network/interfaces; \ ifdown eth1; ifup eth1'";; "Correction erreur 1 (TP1)") runErrorScript "vdn-ssh root@tiny \ 'sed -i -re s/192.168.30.61/192.168.30.16/g /etc/network/interfaces; \ ifdown eth1; ifup eth1'";; "Erreur 2 (TP1)") # Remplace tiny par tini dans bigboss:/etc/hosts runErrorScript "vdn-ssh root@bigboss 'sed -i -re s/tiny/tini/g /etc/hosts'";; "Correction erreur 2 (TP1)") runErrorScript "vdn-ssh root@bigboss 'sed -i -re s/tini/tiny/g /etc/hosts'";; "Erreur 3 (TP2)") # NFS : remplace tiny par bigboss dans bigboss:/etc/exports runErrorScript "vdn-ssh root@bigboss \ 'sed -i -re s/tiny/bigboss/g /etc/exports; \ systemctl restart nfs-kernel-server'";; "Correction erreur 3 (TP2)") runErrorScript "vdn-ssh root@bigboss \ 'sed -i -re s/bigboss/tiny/g /etc/exports; \ systemctl restart nfs-kernel-server'";; "Erreur 4 (TP3)") # Apache2 (bigboss) : renomme /var/www/html /var/www/html.bak sur bigboss runErrorScript "vdn-ssh root@bigboss 'mv /var/www/html /var/www/html.bak'";; "Correction erreur 4 (TP3)") runErrorScript "vdn-ssh root@bigboss 'mv /var/www/html.bak /var/www/html'";; "Erreur 5 (TP4)") # cache tiny:~titi/.ssh/authorized_keys runErrorScript "vdn-ssh root@tiny \ 'su -c \" \ mv ~/.ssh/authorized_keys ~/.ssh/.authorized_keys.bak \ \" - titi' \ ";; "Correction erreur 5 (TP4)") # restaure tiny:~titi/.ssh/authorized_keys runErrorScript "vdn-ssh root@tiny \ 'su -c \" \ mv ~/.ssh/.authorized_keys.bak ~/.ssh/authorized_keys \ \" - titi' \ ";; "Erreur 6 (TP5)") # Désactive la fonction routage de societe runErrorScript "vdn-ssh root@societe 'sysctl -w net.ipv4.ip_forward=0'";; "Correction erreur 6 (TP5)") runErrorScript "vdn-ssh root@societe 'sysctl -w net.ipv4.ip_forward=1'";; "testAll-1A") vdn-scripts testAll-1A;; "Quitter") exit 0;; esac } run() { cat << EOF Le menu ci-dessous permet de générer des erreurs sur votre réseau ! Pour "jouer" il faut au préalable que votre réseau soit complètement opérationnel (le script testAll-1A affiche ok pour tout). Si c'est le cas, déclenchez une erreur, lancez le script testAll-1A pour découvrir l'ampleur des dégâts et rétablissez le fonctionnement optimal de votre réseau. Si vous ne vous en sortez pas, le choix "Correction" est là pour annuler l'erreur, théoriquement ;-) Note : chaque erreur est une unique commande exécutée sur une machine du réseau. La commande peut être du genre : vdn-ssh root@tiny "sed -i -re 's/^toto:/tutu:/' /etc/passwd" Si un service est impacté par la commande, il est relancé afin de mettre immédiatement en évidence les erreurs via le script testAll-1A. Bonne chance ! EOF select choix in \ "Erreur 1 (TP1)" \ "Correction erreur 1 (TP1)" \ "Erreur 2 (TP1)" \ "Correction erreur 2 (TP1)" \ "Erreur 3 (TP2)" \ "Correction erreur 3 (TP2)" \ "Erreur 4 (TP3)" \ "Correction erreur 4 (TP3)" \ "Erreur 5 (TP4)" \ "Correction erreur 5 (TP4)" \ "Erreur 6 (TP5)" \ "Correction erreur 6 (TP5)" \ "testAll-1A" \ "Quitter" \ ; do apply done } run