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