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.

126 lines
2.4 KiB

#!/usr/bin/env bash
set -eu
set -x
DESC="Test DHCP (serveur:bigboss et client:tiny)"
HELP="
Bigboss et tiny doivent avoir été configurés par baseConfig.
"
resetToDefault() {
echo
echo "Reset DHCP"
vdn-ssh root@bigboss "
# Création d'une sauvegarde des fichiers originaux
for i in /etc/dhcp3/dhcpd.conf; do
[ ! -e \${i}.vdn -a -e $i ] &&
cp \${i} \${i}.vdn
done
# Restauration de la sauvegarde
for i in /etc/dhcp3/dhcpd.conf; do
[ -e \${i}.vdn ] &&
cp \${i}.vdn \${i}
done
exit 0
"
vdn-ssh root@tiny "
# Création d'une sauvegarde des fichiers originaux
for i in /etc/network/interfaces; do
[ ! -e \${i}.vdn ] &&
cp \${i} \${i}.vdn
done
# Restauration de la sauvegarde
for i in /etc/network/interfaces; do
[ -e \${i}.vdn ] &&
cp \${i}.vdn \${i}
done
"
}
testDHCP() {
echo
echo "Test de DHCP"
tinyMAC=$(vdn-ssh root@tiny ifconfig eth1 | grep ether)
tinyMAC=$(echo "$tinyMAC" | \
sed -re 's/^.*ether ([[:xdigit:]:]*).*$/\1/')
vdn-ssh root@bigboss "
f=/etc/dhcp3/dhcpd.conf
[ -e /etc/init.d/isc-dhcp-server ] && f=/etc/dhcp/dhcpd.conf
cat <<-EOF > \$f
subnet 192.168.30.0 netmask 255.255.255.0 {
}
host tiny {
hardware ethernet ${tinyMAC};
option host-name tiny;
fixed-address tiny;
}
EOF
f=/etc/default/isc-dhcp-server
cat <<-EOF > \$f
INTERFACESv4=\"eth0\"
INTERFACESv6=\"\"
EOF
if [ -e /etc/init.d/dhcp3-server ]; then
/etc/init.d/dhcp3-server stop &> /dev/null
/etc/init.d/dhcp3-server start
elif [ -e /etc/init.d/isc-dhcp-server ]; then
/etc/init.d/isc-dhcp-server stop &> /dev/null
/etc/init.d/isc-dhcp-server start
fi
"
vdn-ssh root@tiny "
cat <<-EOF > /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet dhcp
EOF
ifdown eth1
ifup eth1
ifconfig eth1 | grep -q 192.168 && echo ok || exit 1
"
}
run() {
setErrorHandler
echoStart
requireSshGuests bigboss tiny
resetToDefault
testDHCP
resetToDefault
unsetErrorHandler
echoDone
}