#set -v
#*************************************************
# les Verificateurs de données *
# *
#*************************************************
VerifOctet()
{
debut=$1
fin=$2
octet=$3
while true
do
if [ $octet -ge $debut -a $octet -le $fin ]
then
echo -en "[\033[01;05;32m ($octet) \033[0m]"
return $octet
break
else
echo -en "[\033[01;05;31m ($octet) \033[0m]"
echo "saisir votre octet compris entre $debut et $fin : \c"
read octet
fi
done
}
VerifMask()
{
debut=$1
octet=$2
[ $debut -eq 0 ] || debut=128
while true
do
case $octet in
$debut|128|192|224|240|248|252|254|255 )
return $octet
break;;
* ) echo -en "[\033[01;05;31m ($octet)KO\033[0m]"
echo "choisir une des valeurs suivante 128 192 224 240 248 252 254 255 :"
read octet;;
esac
done
}
#*************************************************
# *
# les données de la config du network *
# *
#*************************************************
SaisieIP ()
{
echo -e " Saisir une adresse IP sous la forme a.b.c.d : \c"
read adressip
IFS="."
set $(echo "$adressip")
a=$1; b=$2; c=$3; d=$4
VerifOctet 1 254 $a
IPa=$?
VerifOctet 0 254 $b
IPb=$?
VerifOctet 0 254 $c
IPc=$?
VerifOctet 1 254 $d
IPd=$?
echo " Votre IP est : $IPa.$IPb.$IPc.$IPd"
}
SaisieMask()
{
echo -e " saisir votre masque sous la forme a.b.c.d : \c"
read adressip
IFS="."
set $(echo "$adressip")
a=$1; b=$2; c=$3; d=$4
VerifMask 128 $a
Maska=$?
VerifMask 0 $b
Maskb=$?
VerifMask 0 $c
Maskc=$?
VerifMask 0 $d
Maskd=$?
echo " le masque est : $Maska.$Maskb.$Maskc.$Maskd"
}
SaisieDNS ()
{
echo -e " Saisir un DNS a.b.c.d : \c"
read adressip
IFS="."
set $(echo "$adressip")
a=$1; b=$2; c=$3; d=$4
VerifOctet 1 254 $a
DNSa=$?
VerifOctet 0 254 $b
DNSb=$?
VerifOctet 0 254 $c
DNSc=$?
VerifOctet 1 254 $d
DNSd=$?
echo " Le DNS est : $DNSa.$DNSb.$DNSc.$DNSd"
}
SaisieGTW ()
{
echo -e " Entrez votre passerelle au format a.b.c.d : \c"
read adressip
IFS="."
set $(echo "$adressip")
a=$1; b=$2; c=$3; d=$4;
VerifOctet 1 254 $a
GTWa=$?
VerifOctet 0 254 $b
GTWb=$?
VerifOctet 0 254 $c
GTWc=$?
VerifOctet 1 254 $d
GTWd=$?
echo " La passerelle est : $GTWa.$GTWb.$GTWc.$GTWd"
}
SaisieNTW ()
{
ip -o addr
echo "tu prends laquelle?"
read netcard
echo "Je vais rectifdier tes betises, je vais prendre celle la : $netcard"
echo "Regarde si c est bon, sinon Ctrl+c et tu recommence!"
echo " IP=$IPa.$IPb.$IPc.$IPd"
echo " Mask=$Maska.$Maskb.$Maskc.$Maskd"
echo " GTW=$GTWa.$GTWb.$GTWc.$GTWd"
echo " DNS=$DNSa.$DNSb.$DNSc.$DNSd"
read reponse
ip addr flush dev $netcard
ip addr add $IPa.$IPb.$IPc.$IPd / $Maska.$Maskb.$Maskc.$Maskd dev $netcard
ip route add default via $GTWa.$GTWb.$GTWc.$GTWd
echo "nameserver $DNSa.$DNSb.$DNSc.$DNSd" > /etc/resolv.conf
systemctl restart NetworkManager.service
}
SaisieIP
SaisieMask
SaisieDNS
SaisieGTW
SaisieNTW
#*************************************************
# *
# on test le reseau en bridge *
# *
#*************************************************
echo "Mets ta carte en Bridge, et plus vite que ça on a du TAF"
echo "tape entrer quabd tu te reveille"
read
ping -c 4 8.8.8.8 >/dev/null 2>&1 && echo -en " [\033[01;32m Ca PING!! \033[0m]\n" \
|| echo -en "FAUX [\033[01;31m T es vraiment Nul \033[0m]\n"
#*************************************************
# *
# on installe les softs d admin *
# *
#*************************************************
#echo " Maintenant il te faut des outils voila un DHCP"
yum -y install dhcp-server.x86_64
echo " on passe au TFTP mais pas certain que ce soit fait pour toi"
yum -y install tftp-server.x86_64
echo " on l installe mais n'y touche jamis, OK?? Syslinux "
yum -y install syslinux.x86_64
echo " ca c est pas NINTENDO Familly Services... NFS et ACL "
dnf -y install nfs4-acl-tools-0.3.5-3.el8.x86_64
#*************************************************
# *
# on test le reseau en HOST-ONLY *
# *
#*************************************************
echo " T'es capable de mettre ta carte en Host-Only ?"
echo " tape entrer et je lance la commande"
SaisieIP
SaisieMask
SaisieGTW
SaisieNTW
#*************************************************
# *
# On avance meme si ca ne sert a rien *
# *
#*************************************************
echo "authoritative;" > /etc/dhcp/dhcpd.conf
echo "subnet $IPa.$IPb.$IPc.0 netmask $Maska.$Maskb.$Maskc.$Maskd {" >> /etc/dhcp/dhcpd.conf
echo "range $IPa.$IPb.$IPc.100 $IPa.$IPb.$IPc.120;" >> /etc/dhcp/dhcpd.conf
echo "option routers $IPa.$IPb.$IPc.$IPd;" >> /etc/dhcp/dhcpd.conf
echo "option domain-name-servers $IPa.$IPb.$IPc.$IPd;" >> /etc/dhcp/dhcpd.conf
echo "option broadcast-address $IPa.$IPb.$IPc.255;" >> /etc/dhcp/dhcpd.conf
echo "next-server $IPa.$IPb.$IPc.$IPd;" >> /etc/dhcp/dhcpd.conf
echo "option subnet-mask $Maska.$Maskb.$Maskc.0;" >> /etc/dhcp/dhcpd.conf
echo "filename \"pxelinux.0\";" >>/etc/dhcp/dhcpd.conf
echo "}" >> /etc/dhcp/dhcpd.conf
systemctl enable dhcpd.service
systemctl restart dhcpd.service
systemctl status dhcpd.service
systemctl enable --now tftp.socket
systemctl restart tftp.socket
systemctl status tftp.socket
systemctl start firewalld.service
firewall-cmd --add-service=tftp --permanent
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload
systemctl restart firewalld.service
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/ldlinux.c32 /var/lib/tftpboot/
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
echo "PROMPT 0" > pxelinux.cfg/default
echo "DEFAULT linux" >> pxelinux.cfg/default
echo "LABEL linux" >>pxelinux.cfg/default
echo "KERNEL vmlinuz" >> pxelinux.cfg/default
echo "APPEND initrd=initrd.img ks=nfs:$IPa.$IPb.$IPc.$IPd:/reponses/ks.cfg" >> pxelinux.cfg/default
mkdir /SrcCentos
mkdir /reponses
chmod -R 777 /reponses
mount /dev/sr0 /SrcCentos/
cd /SrcCentos/images/pxeboot
cp vmlinuz initrd.img /var/lib/tftpboot/
cd
echo "/reponses $IPa.$IPb.$IPc.0/24(ro,sync,no_root_squash,no_subtree_check)" > /etc/exports
echo "/SrcCentos $IPa.$IPb.$IPc.0/24(ro,sync,no_root_squash,no_subtree_check)" >> /etc/exports
systemctl enable --now nfs-server.service
systemctl restart nfs-server.service
systemctl status nfs-server.service
exportfs -v
cp /root/anaconda-ks.cfg /reponses/ks.cfg
sed -i "s/#\ Use\ CDROM\ installation\ media/#use\ nfs\ installation/g" /reponses/ks.cfg
sed -i "s/\ cdrom\ nfs/ \--server=$IPa.$IPb.$IPc.$IPd\ --dir=/SrcCentos/g" /reponses/ks.cfg
#sed -i "s/cdrom/nfs\ --server=$IPa.$IPb.$IPc.$IPd\ --dir=/SrcCentos/g" /reponses/ks.cfg
#sed -i "s/cdrom/nfs\ --server=$IPa.$IPb.$IPc.$IPd\ --dir=/SrcCentos/g" /reponses/ks.cfg
#nfs --server=$IPa.$IPb.$IPc.$IPd --dir=/SrcCentos