From 0fd10da646796984d632ce881f82ac005e165bb3 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 12 Nov 2014 19:11:17 +0100 Subject: [SSPS] Tweaked netsetup --- satellit_installer/static_files/netsetup | 113 ++++++++++++++++++------------- 1 file changed, 65 insertions(+), 48 deletions(-) diff --git a/satellit_installer/static_files/netsetup b/satellit_installer/static_files/netsetup index f6570e2..b718819 100755 --- a/satellit_installer/static_files/netsetup +++ b/satellit_installer/static_files/netsetup @@ -8,52 +8,55 @@ ERR=0 write_banner() { echo - echo "Dieses Skript konfiguriert statische oder dynamische IP-Adressen." - echo "Wenn Sie unsicher sind, können Sie es auch später ausführen. Sie" - echo "finden dieses Skript unter $SKRIPT." + echo "Dieses Skript konfiguriert das Netzwerk-Interface." echo - echo "Bitte bedenken Sie, daß Sie das Netzwerk entweder von Hand neu" - echo "starten müssen (oder einfach rebooten), wenn Sie die Netzwerk-" - echo "konfiguration verändern." + echo "Wenn Sie die Netzwerkkonfiguration ändern, sollten Sie anschließend" + echo "den Server rebooten." echo } detect_config() { - if [ "$(grep -c "iface eth. inet dhcp" /etc/network/interfaces)" -gt 0 ]; then + if grep -q -E "^[[:space:]]*iface[[:space:]]+eth0[[:space:]]+inet[[:space:]]+dhcp" /etc/network/interfaces; then # dhcp detected, we presume TYPE=dhcp-basierte WUNSCH=statische + TOUCHE_TYPE=d + TOUCHE_DESIR=s else TYPE=statische WUNSCH=dhcp-basierte + TOUCHE_TYPE=s + TOUCHE_DESIR=d fi } ask_config() { echo - echo "Es wurde eine $TYPE IP-Adresse vorgefunden." + echo "Es ist aktuell eine $TYPE IP-Adresse konfiguriert." echo - echo "Wollen Sie eine $WUNSCH IP konfigurieren (y)," - echo "hat sich das Skript geirrt, und Sie benötigen doch eine $TYPE IP (x)," - echo "oder möchten Sie gar nichts tun (a oder leere Eingabe)?" + echo "Wollen Sie eine $WUNSCH IP konfigurieren (${TOUCHE_DESIR})," + echo "möchten Sie die $TYPE IP neu konfigurieren (${TOUCHE_TYPE})," + echo "oder möchten Sie gar nichts tun (leere Eingabe)?" echo - echo -n "Ihre Wahl - y, x oder a: " - read -n 1 config_me - if [ "$config_me" == "a" -o "$config_me" == "" ]; then exit 0; fi + echo -n "Ihre Wahl? [${TOUCHE_DESIR}/${TOUCHE_TYPE}/nichts]: " + read config_me + [ "$config_me" == "" ] && exit 0 } decide_action() { case "$config_me" in - y) backup_configs + ${TOUCHE_DESIR}*) + backup_configs if [ "$WUNSCH" == "statische" ]; then enter_values_static write_config_static else write_config_dyn fi - ;; - x) backup_configs + ;; + ${TOUCHE_TYPE}*) + backup_configs if [ "$TYPE" == "statische" ]; then enter_values_static write_config_static @@ -61,7 +64,8 @@ decide_action() { write_config_dyn fi ;; - *) echo; echo + *) + echo; echo echo "Ihre eingegebene Option $config_me wurde nicht erkannt - Neustart." echo sleep 1 @@ -83,47 +87,52 @@ backup_configs() { restore_configs() { cp -p "$INTERFACES.$DATUM" "$INTERFACES" - cp -p "$RESOLV.{DATUM}" "$RESOLV" + cp -p "$RESOLV.{DATUM}" "$RESOLV" } write_config_static() { - echo "# This file was written by the satellite auto installer." > "$INTERFACES" - echo "# If any problems arise, copy $INTERFACES.${DATUM}." >> "$INTERFACES" - echo "# The loopback network interface" >> "$INTERFACES" - echo "auto lo" >> "$INTERFACES" - echo "iface lo inet loopback" >> "$INTERFACES" - echo "" >> "$INTERFACES" - echo "# Primary network interface" >> "$INTERFACES" - echo "auto eth0" >> "$INTERFACES" - echo "iface eth0 inet static" >> "$INTERFACES" - echo "address $ipadress" >> "$INTERFACES" - echo "gateway $gateway" >> "$INTERFACES" - echo "netmask $netmask" >> "$INTERFACES" + cat > "$INTERFACES" <<-HIER + # This file was written by the satellite auto installer. + # If any problems arise, copy $INTERFACES.${DATUM}. + # The loopback network interface + auto lo + iface lo inet loopback + + # Primary network interface + auto eth0 + iface eth0 inet static + address $ipadress + gateway $gateway + netmask $netmask + HIER echo "# This file was written by the satellite server install script." > "$RESOLV" echo "# If any problems arise, copy $RESOLV.${DATUM}." >> "$RESOLV" [ -n "$domain" ] && echo "domain $domain" >> "$RESOLV" [ -n "$search" ] && echo "search $search" >> "$RESOLV" - echo "nameserver $primarydns" >> "$RESOLV" + [ -n "$primarydns" ] && echo "nameserver $primarydns" >> "$RESOLV" [ -n "$secondarydns" ] && echo "nameserver $secondarydns" >> "$RESOLV" } write_config_dyn() { - echo "# This file was written by the satellite auto installer." > "$INTERFACES" - echo "# If any problems arise, copy $INTERFACES.${DATUM}." >> "$INTERFACES" - echo "# The loopback network interface" >> "$INTERFACES" - echo "auto lo" >> "$INTERFACES" - echo "iface lo inet loopback" >> "$INTERFACES" - echo "" >> "$INTERFACES" - echo "# Primary network interface" >> "$INTERFACES" - echo "auto eth0" >> "$INTERFACES" - echo "iface eth0 inet dhcp" >> "$INTERFACES" - # Leaving /etc/resolv alone; pump/dhclient/whatever will take care of that. + cat > "$INTERFACES" <<-HIER + # This file was written by the satellite auto installer. + # If any problems arise, copy $INTERFACES.${DATUM}. + # The loopback network interface + auto lo + iface lo inet loopback + + # Primary network interface + auto eth0 + iface eth0 inet dhcp + # Leaving /etc/resolv alone; pump/dhclient/whatever will take care of that. + HIER } enter_values_static() { - while [ "$entry" != "y" ] && [ "$entry" != "Y" ]; do - echo + unset entry + while true; do + echo echo -n "IP-Adresse: " read ipadress echo -n "Gateway: " @@ -148,9 +157,17 @@ enter_values_static() { echo "# Primary nameserver : $primarydns" echo "# Secondary nameserver : $secondarydns" echo - echo -n "Sind diese Eingaben korrekt? Drücken Sie y or Y für ja, andere Taste für nein: " - read -n 1 entry - echo + while true; do + echo -n "Sind diese Eingaben korrekt? [J/n]: " + read entry + echo + [[ -z "$entry" || "$entry" == j* || "$entry" == J* ]] && return + if [[ "$entry" == n* || "$entry" == N* ]]; then + echo "Neustart der Eingabe..." + echo + break + fi + done done } @@ -168,5 +185,5 @@ decide_action # do the stuff! last_words -exit +exit 0 -- cgit v1.2.3-55-g7522