summaryrefslogblamecommitdiffstats
path: root/satellit_installer/static_files/netsetup
blob: cb94ad02f5fa551cf0d090afa1952bd97447388c (plain) (tree)
1
2
3
4
5
6
7
8




                                    
                          

     

























                                                                                      

              



                                                                                     
            
                                           
                           

























                                                                                                 



                                               
                                                               

                                                                                                           
                                                       









                                                                                                   



































                                                                                                








                                                                    
                                                              
                           
                                                                     

















                                                                                                 
                           

 


             
 


                               
 
#!/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