1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| #!/bin/bash
if="ens33" # interface réseau
# la distribution
distribution=$(lsb_release -ds)
# address deja configurées dans le dhcp
maReg='inet ([0-9.]*)\/([0-9]*) brd ([0-9.]*)'
[[ $(ip -4 a show $if) =~ $maReg ]]
addr=${BASH_REMATCH[1]}
mask=${BASH_REMATCH[2]}
bcst=${BASH_REMATCH[3]}
maReg='default via ([0-9.]*)'
[[ $(ip r) =~ $maReg ]]
gateway=${BASH_REMATCH[1]}
maReg='nameserver ([0-9.]*)'
[[ $(< /etc/resolv.conf) =~ $maReg ]]
dns=${BASH_REMATCH[1]}
########################################
# Affichage
echo -e "\n\n\n\n\n"
echo "Bonjour $USER"
echo -e "\n\n\n"
echo "Votre distribution : $distribution"
echo -e "\n\n\n"
echo -e "Votre addresse ipv4 est :\t$addr"
echo -e "Votre addresse Broadcast est :\t$bcst"
echo -e "Votre masque reseau est :\t$mask"
echo -e "Votre gateway est :\t\t$gateway"
echo -e "Votre DNS est :\t\t\t$dns"
#########################################
#demander la confirmation a l usager
echo -e "\n\n"
echo "est-ce que vous confirmer les addresse?"
echo -e "\n\n"
select i in oui non; do
if [ "$i" = "oui" ]; then
echo "les addresse sont sauvegarder"
########################################
#detecter la distributrion Ubuntu/Centos
if grep -sq 'Ubuntu' <<< "$distribution"
then
echo "network:">/tmp/scenario.conf
echo " version: 2">>/tmp/scenario.conf
echo " renderer: networkd">>/tmp/scenario.conf
echo " ethernets:">>/tmp/scenario.conf
echo " $if:">>/tmp/scenario.conf
echo " dhcp4: no">>/tmp/scenario.conf
echo " addresses:">>/tmp/scenario.conf
echo " - $addr/$mask">>/tmp/scenario.conf
echo " gateway4: $gateway">>/tmp/scenario.conf
echo " nameservers:">>/tmp/scenario.conf
echo " addresses: [8.8.8.8, $dns]">>/tmp/scenario.conf
#si refuser on cancelle l operation
elif [ "$i" = "non" ]; then
echo "vous avez canceller l operation "
break
#######################################
#si autre repose entre 1 / 2 afficher mauvaise entree
else
echo "mauvaise entree"
fi
done |
Partager