You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
3.8 KiB

#!/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