summaryrefslogtreecommitdiffstats
path: root/satellit_installer/static_files/netsetup
diff options
context:
space:
mode:
Diffstat (limited to 'satellit_installer/static_files/netsetup')
-rwxr-xr-xsatellit_installer/static_files/netsetup164
1 files changed, 164 insertions, 0 deletions
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
+