From: Ullli Date: Mon, 30 Jan 2023 06:36:58 +0000 (+0100) Subject: letzte Version aus Leipzig X-Git-Url: https://freie-schul-it.de/gitweb/fsit-smgt.git/commitdiff_plain/68eba69d4344f98381ec300fb30e05d7ff890676?ds=inline letzte Version aus Leipzig --- diff --git a/examples/add-new-client.sh b/examples/add-new-client.sh index f68190a..4ae79bd 100644 --- a/examples/add-new-client.sh +++ b/examples/add-new-client.sh @@ -1 +1,110 @@ -ping +#!/bin/bash + +# Wir brauchen: $ip $newhostname $macen $macwl +# Der neue Rechner muss mit PXE und Preseed fertig sein + +ip="$1" +newhostname="$2" + +# Nach den Werten fragen und in Variable schreiben, +# wenn diese beim Aufruf vergessen wurden. +if [ -z $ip ] +then + read -p "ip-Adresse des neuen Rechners: " ip +fi +if [ -z $newhostname ] +then + read -p "Hostname des neuen Rechners: " newhostname +fi + +# temporaere hosts-Datei fuer ansible +echo "$ip" > temphosts +#cat temphosts + +# Pruefe, ob $ip in custom-list +# wenn ja --> Abbruch +#if grep ${ip} files/dns-pihole_custom.list +#then +# echo "IP bereits in dns-pihole_custom.list eingetragen" +# echo " bitte entfernen oder andere IP auswählen! Abbruch :-(" +# exit 1 +#fi + +# suche in ../client-mgt/hosts nach $newhostname +# wenn nein +# stop, +# Echo nicht in hosts dazhei, eingetragen, dann weiter +if grep ${newhostname} ../client-mgt/hosts +then + echo "Rechnername in hosts-Datei eingetragen, suupi!" +else + echo "Rechnername fehlt in ../client-mgt/hosts. Abbruch :-(" + exit 1 +fi + +# suche in /home/ansible/.ssh/known_hosts nach $ip +# wenn ja +ssh-keygen -f "/home/ansible/.ssh/known_hosts" -R "$ip" +#if grep ${ip} $HOME/.ssh/known_hosts + +ssh -o BatchMode=yes -o ConnectTimeout=5 -o StrictHostKeyChecking=no ${ip} 'exit 0' +if [ $? != 0 ] +then + echo "Host nicht per SSH erreichbar! Abbruch :-(" + exit 1 +fi + +# MAC-Adressen finden +macen=$(ssh ${ip} cat /sys/class/net/en*/address) +echo "MAC-Ethernet: $macen" +macwl=$(ssh ${ip} cat /sys/class/net/wl*/address) +echo "MAC-WLAN: $macwl" + +if [ -z $macwl ] +then + echo "dhcp-host=${macen},${ip},${newhostname}" >> files/dns20-pihole_04-pihole-static-dhcp.conf +else + echo "dhcp-host=${macen},${macwl},${ip},${newhostname}" >> files/dns20-pihole_04-pihole-static-dhcp.conf +fi + +# Hostnamen aendern +oldhostname=$(ssh ${ip} hostname) +ssh ${ip} sudo hostnamectl set-hostname ${newhostname} +# change in /etc/hosts +ssh ${ip} sudo sed -i "s/$oldhostname/$newhostname/" /etc/hosts + +echo "$ip $newhostname" >> files/dns-pihole_custom.list + +echo +echo "Prüfe, ob Host perAnsible erreichbar ist" +ansible ${ip} -i temphosts -m ping + +echo +echo "Alle DNS-Server mit neuen Listen versorgen" +ansible-playbook pihole-update.yml + +echo +echo "pruefen, ob DNS-Aufloesung fuer neuen Host funktioniert" +ping -c 3 ${newhostname} + +# temporaere Dateien loeschen" +rm temphosts + +echo +echo "+++ pihole static-dhcp file +++" +tail files/dns20-pihole_04-pihole-static-dhcp.conf + +echo +echo "+++ pihole custom list" +tail files/dns-pihole_custom.list + +echo +echo "fertig?" +echo "fertig!" +echo " :-)" + +### +#ansible ${ip} -i newhost -m ping +#ansible ${ip} -i newhost -m gather_facts +#ansible ${ip} -i newhost -m ansible.builtin.setup -a 'filter=ansible_wlp4s0' +