3 # Wir brauchen: $ip $newhostname $macen $macwl
4 # Der neue Rechner muss mit PXE und Preseed fertig sein
9 # Nach den Werten fragen und in Variable schreiben,
10 # wenn diese beim Aufruf vergessen wurden.
13 read -p "ip-Adresse des neuen Rechners: " ip
15 if [ -z $newhostname ]
17 read -p "Hostname des neuen Rechners: " newhostname
20 # temporaere hosts-Datei fuer ansible
21 echo "$ip" > temphosts
24 # Pruefe, ob $ip in custom-list
26 #if grep ${ip} files/dns-pihole_custom.list
28 # echo "IP bereits in dns-pihole_custom.list eingetragen"
29 # echo " bitte entfernen oder andere IP auswählen! Abbruch :-("
33 # suche in ../client-mgt/hosts nach $newhostname
36 # Echo nicht in hosts dazhei, eingetragen, dann weiter
37 if grep ${newhostname} ..
/client-mgt
/hosts
39 echo "Rechnername in hosts-Datei eingetragen, suupi!"
41 echo "Rechnername fehlt in ../client-mgt/hosts. Abbruch :-("
45 # suche in /home/ansible/.ssh/known_hosts nach $ip
47 ssh-keygen
-f "/home/ansible/.ssh/known_hosts" -R "$ip"
48 #if grep ${ip} $HOME/.ssh/known_hosts
50 ssh -o BatchMode
=yes -o ConnectTimeout
=5 -o StrictHostKeyChecking
=no
${ip} 'exit 0'
53 echo "Host nicht per SSH erreichbar! Abbruch :-("
58 macen
=$
(ssh ${ip} cat /sys
/class
/net
/en
*/address
)
59 echo "MAC-Ethernet: $macen"
60 macwl
=$
(ssh ${ip} cat /sys
/class
/net
/wl
*/address
)
61 echo "MAC-WLAN: $macwl"
65 echo "dhcp-host=${macen},${ip},${newhostname}" >> files
/dns20-pihole_04-pihole-static-dhcp.conf
67 echo "dhcp-host=${macen},${macwl},${ip},${newhostname}" >> files
/dns20-pihole_04-pihole-static-dhcp.conf
71 oldhostname
=$
(ssh ${ip} hostname
)
72 ssh ${ip} sudo hostnamectl set-hostname
${newhostname}
73 # change in /etc/hosts
74 ssh ${ip} sudo
sed -i "s/$oldhostname/$newhostname/" /etc
/hosts
76 echo "$ip $newhostname" >> files
/dns-pihole_custom.list
79 echo "Prüfe, ob Host perAnsible erreichbar ist"
80 ansible
${ip} -i temphosts
-m ping
83 echo "Alle DNS-Server mit neuen Listen versorgen"
84 ansible-playbook pihole-update.yml
87 echo "pruefen, ob DNS-Aufloesung fuer neuen Host funktioniert"
88 ping -c 3 ${newhostname}
90 # temporaere Dateien loeschen"
94 echo "+++ pihole static-dhcp file +++"
95 tail files
/dns20-pihole_04-pihole-static-dhcp.conf
98 echo "+++ pihole custom list"
99 tail files
/dns-pihole_custom.list
107 #ansible ${ip} -i newhost -m ping
108 #ansible ${ip} -i newhost -m gather_facts
109 #ansible ${ip} -i newhost -m ansible.builtin.setup -a 'filter=ansible_wlp4s0'