From 7a6ce983d55f466986ee4028033b5cc28520551a Mon Sep 17 00:00:00 2001 From: Christian Rößler Date: Wed, 22 Oct 2014 15:54:24 +0200 Subject: [SSPS] Netsetup expanded, now also dyn IP, to be tested. --- satellit_installer/includes/50-copyscripts.inc | 2 +- satellit_installer/static_files/config_static_ip | 97 -------------- satellit_installer/static_files/netsetup | 164 +++++++++++++++++++++++ 3 files changed, 165 insertions(+), 98 deletions(-) delete mode 100755 satellit_installer/static_files/config_static_ip create mode 100755 satellit_installer/static_files/netsetup diff --git a/satellit_installer/includes/50-copyscripts.inc b/satellit_installer/includes/50-copyscripts.inc index 1882158..f4ecbd8 100644 --- a/satellit_installer/includes/50-copyscripts.inc +++ b/satellit_installer/includes/50-copyscripts.inc @@ -7,6 +7,6 @@ install_tmpdelete() { install_config_static_ip() { echo -n "# Copying config_static_ip to /usr/local/sbin... " mkdir -p /usr/local/sbin 2>/dev/null - cp "$BASEDIR/static_files/config_static_ip" /usr/local/sbin + cp "$BASEDIR/static_files/netsetup" /usr/local/sbin echo "ok." } diff --git a/satellit_installer/static_files/config_static_ip b/satellit_installer/static_files/config_static_ip deleted file mode 100755 index 17a572f..0000000 --- a/satellit_installer/static_files/config_static_ip +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/bash - -DATUM=$(date +%Y%m%d_%H%M%S) -INTERFACES="/etc/network/interfaces" -RESOLV="/etc/resolv.conf" -ERR=0 - -ask_config() { - echo - echo "This script configures a static IP adress." - echo "If you are unsure you can execute it later; you will find this script" - echo "at /usr/local/sbin/${0}." - echo "Please keep in mind you will have to reinitialize the network by hand then" - echo "(or simply reboot)." - echo - echo -n "If you want to configure a static IP adress, press y, any other key to abort: " - read -n 1 config_me - ech - echo - [ "$config_me" != "y" ] && exit 0 -} - -backup_configs() { - if [ -f /etc/network/interfaces ]; then - cp -p "$INTERFACES" "$INTERFACES.${DATUM}" || \ - { echo "Could not $INTERFACES to backup location $INTERFACES.$DATUM - aborting."; \ - exit 1 ; } - cp -p "$RESOLV" "$RESOLV.${DATUM}" || \ - { echo "Could not $RESOLV to backup location $RESOLV.$DATUM - aborting."; \ - exit 1 ; } - fi -} - -restore_configs() { - cp -p "$INTERFACES.$DATUM" "$INTERFACES" - cp -p "$RESOLV.{DATUM}" "$RESOLV" -} - -enter_values() { - while [ "$entry" != "y" ] && [ "$entry" != "Y" ]; do - echo - echo -n "IP-Adress: " - read ipadress - echo -n "Gateway: " - read gateway - echo -n "Net mask - leave empty for 255.255.255.0: " - read netmask - [ "$netmask" == "" ] && netmask=255.255.255.0 - echo -n "Domain - leave empty if not wanted: " - read domain - echo -n "Search domain - leave empty if not wanted: " - read search - echo -n "Primary nameserver: " - read primarydns - echo -n "Secondary nameserver - leave empty if no secondary DNS: " - read secondarydns - echo - echo "# IP Adress : $ipadress" - echo "# Gateway : $gateway" - echo "# Net mask : $netmask" - echo "# Domain : $domain" - echo "# Search domain : $search" - echo "# Primary nameserver : $primarydns" - echo "# Secondary nameserver : $secondarydns" - echo - echo -n "Are those correct values? Press y or Y für yes, any other key for no: " - read -n 1 entry - echo - done -} - -write_configs() { - 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" - - 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 "$secondarydns" ] && echo "nameserver $secondarydns" >> "$RESOLV" -} - -ask_config -enter_values -backup_configs -write_configs diff --git a/satellit_installer/static_files/netsetup b/satellit_installer/static_files/netsetup new file mode 100755 index 0000000..cb94ad0 --- /dev/null +++ b/satellit_installer/static_files/netsetup @@ -0,0 +1,164 @@ +#!/bin/bash + +DATUM=$(date +%Y%m%d_%H%M%S) +INTERFACES="/etc/network/interfaces" +RESOLV="/etc/resolv.conf" +SKRIPT=$(readlink -f "$0") +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 + 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 + echo "Es wurde übrigens eine $TYPE IP-Adresse vorgefunden." + echo +} + + +detect_config() { + if [ "$(grep -c "iface eth. inet dhcp" /etc/network/interfaces)" -gt 0 ]; then + # dhcp detected, we presume + TYPE=dhcp-basierte + WUNSCH=statische + else + TYPE=statische + WUNSCH=dhcp-basierte + fi +} + +ask_config() { + echo + echo "Es wurde eine $TYPE IP-Adresse vorgefunden." + 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 + echo -n "Ihre Wahl - y, x oder a: " + read -n 1 config_me + if [ "$config_me" == "y" -o "$config_me" == "y" ]; then exit 0; fi +} + +decide_action() { + case "$config_me" in + y) backup_configs + if [ "$WUNSCH" == "statische" ]; then + enter_values_static + write_config_static + else + write_config_dyn + fi + ;; + x) backup_configs + if [ "$TYPE" == "statische" ]; then + enter_values_static + write_config_static + else + write_config_dyn + fi + ;; + *) echo "Ihre eingegebene Option $config_me wurde nicht erkannt - Neustart." + exec "$SKRIPT" + ;; + + +} + +backup_configs() { + if [ -f /etc/network/interfaces ]; then + cp -p "$INTERFACES" "$INTERFACES.${DATUM}" || \ + { echo "Could not $INTERFACES to backup location $INTERFACES.$DATUM - aborting."; \ + exit 1 ; } + cp -p "$RESOLV" "$RESOLV.${DATUM}" || \ + { echo "Could not $RESOLV to backup location $RESOLV.$DATUM - aborting."; \ + exit 1 ; } + fi +} + +restore_configs() { + cp -p "$INTERFACES.$DATUM" "$INTERFACES" + 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" + + 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 "$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 dhcpauto eth0" >> "$INTERFACES" + # Leaving /etc/resolv alone; pump/dhclient/whatever will take care of that. +} + +enter_values_static() { + while [ "$entry" != "y" ] && [ "$entry" != "Y" ]; do + echo + echo -n "IP-Adress: " + read ipadress + echo -n "Gateway: " + read gateway + echo -n "Net mask - leave empty for 255.255.255.0: " + read netmask + [ "$netmask" == "" ] && netmask=255.255.255.0 + echo -n "Domain - leave empty if not wanted: " + read domain + echo -n "Search domain - leave empty if not wanted: " + read search + echo -n "Primary nameserver: " + read primarydns + echo -n "Secondary nameserver - leave empty if no secondary DNS: " + read secondarydns + echo + echo "# IP Adress : $ipadress" + echo "# Gateway : $gateway" + echo "# Net mask : $netmask" + echo "# Domain : $domain" + echo "# Search domain : $search" + echo "# Primary nameserver : $primarydns" + echo "# Secondary nameserver : $secondarydns" + echo + echo -n "Are those correct values? Press y or Y für yes, any other key for no: " + read -n 1 entry + echo + done + write_config_static +} + +detect_config +write_banner +ask_config + +decide_action # do the stuff! + +exit + -- cgit v1.2.3-55-g7522