diff --git a/deployment.sh b/deployment.sh index acb460e..e9b6edc 100755 --- a/deployment.sh +++ b/deployment.sh @@ -99,7 +99,7 @@ if dmidecode| grep -q 'Location In Chassis'; then PRO_EDITION=true fi -if $PRO_EDITION ; then +if "$PRO_EDITION" ; then ROLE=sp1 if checkBootParam ngcpsp2 ; then @@ -128,11 +128,24 @@ if checkBootParam ngcphostname ; then TARGET_HOSTNAME="$(getProxmoxBootParam ngcphostname)" fi else - if $PRO_EDITION ; then + if "$PRO_EDITION" ; then TARGET_HOSTNAME="$ROLE" - else + fi + + if "$CE_EDITION" ; then TARGET_HOSTNAME="spce" fi + + # if we don't install ngcp ce/pro but + # $HOSTNAME is set via ip=.... then + # take it, otherwise fall back to safe default + if [ -z "$TARGET_HOSTNAME" ] ; then + if [ -n "$HOSTNAME" ] ; then + TARGET_HOSTNAME="$HOSTNAME" + else + TARGET_HOSTNAME="debian" + fi + fi fi if checkBootParam ngcpip1 ; then @@ -231,14 +244,14 @@ for param in $* ; do shift done -if ! $NGCP_INSTALLER ; then - unset PRO_EDITION - unset CE_EDITION +if ! "$NGCP_INSTALLER" ; then + PRO_EDITION=false + CE_EDITION=false unset ROLE fi # needed inside ngcp-installer -if $PRO_EDITION ; then +if "$PRO_EDITION" ; then export ROLE=$ROLE # hopefully set via bootoption/cmdline, # otherwise fall back to hopefully-safe-defaults @@ -247,6 +260,8 @@ if $PRO_EDITION ; then [ -n "$EADDR" ] || export EADDR=192.168.1.103 [ -n "$EIFACE" ] || export EIFACE=b0 [ -n "$MCASTADDR" ] || export MCASTADDR=226.94.1.1 +else + [ -n "$EIFACE" ] || export EIFACE='eth0' fi # when using ip=....:$HOSTNAME:eth0:off file /etc/hosts doesn't contain the @@ -260,7 +275,7 @@ fi [ -n "$dev" ] || dev='eth0' IP="$(ifdata -pa $dev)" -if $PRO_EDITION ; then +if "$PRO_EDITION" ; then case $IP in "$IP1"|"$IP2"|"$EADDR") ipcheck=true;; *) ipcheck=false;; @@ -293,7 +308,7 @@ echo "Deployment Settings: $CHASSIS " -if $INTERACTIVE ; then +if "$INTERACTIVE" ; then echo "WARNING: Execution will override any existing data!" echo "Settings OK? y/N" read a @@ -305,14 +320,14 @@ if $INTERACTIVE ; then fi ## }}} -if $LOGO ; then +if "$LOGO" ; then echo -ne "\ec\e[1;31m" logo echo -ne "\e[9;0r" echo -ne "\e[9B\e[1;m" fi -if $PRO_EDITION ; then +if "$PRO_EDITION" ; then if ifconfig usb0 &>/dev/null ; then ifconfig usb0 169.254.1.102 netmask 255.255.0.0 fi @@ -443,7 +458,7 @@ linux-headers-2.6-amd64 #os-prober EOF -if $PRO_EDITION ; then +if "$PRO_EDITION" ; then cat >> /etc/debootstrap/packages << EOF # required for "Broadcom NetXtreme II BCM5709S Gigabit Ethernet" firmware-bnx2 @@ -499,7 +514,7 @@ if [ -z "$MIRROR" ] ; then MIRROR="http://debian.inode.at/debian/" fi -if $LOCAL_MIRROR ; then +if "$LOCAL_MIRROR" ; then mkdir -p /etc/debootstrap/pre-scripts cat > /etc/debootstrap/pre-scripts/adjust_sources_list << EOT cat > \$MNTPOINT/etc/apt/sources.list << EOF @@ -539,11 +554,11 @@ mount /dev/${DISK}1 $TARGET chroot $TARGET apt-get --purge -y remove \ ca-certificates console-tools openssl tcpd xauth -if $PRO_EDITION ; then +if "$PRO_EDITION" ; then echo "Pro edition: keeping firmware* packages." else chroot $TARGET apt-get --purge -y remove \ - firmware-linux firmware-linux-free firmware-linux-nonfree + firmware-linux firmware-linux-free firmware-linux-nonfree || true fi # get rid of automatically installed packages @@ -567,7 +582,7 @@ ff02::1 ip6-allnodes ff02::2 ip6-allrouters EOF -if $NGCP_INSTALLER ; then +if "$NGCP_INSTALLER" ; then # add sipwise user chroot $TARGET adduser sipwise --disabled-login --gecos "Sipwise" @@ -659,7 +674,7 @@ cat > $TARGET/etc/hostname << EOF ${TARGET_HOSTNAME} EOF -if $DHCP ; then +if "$DHCP" ; then cat > $TARGET/etc/network/interfaces << EOF # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). @@ -673,15 +688,16 @@ iface eth0 inet dhcp EOF else # assume host system has a valid configuration - cat > $TARGET/etc/network/interfaces << EOF + if "$PRO_EDITION" ; then + cat > $TARGET/etc/network/interfaces << EOF # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback -auto b0 -iface b0 inet static +auto $EIFACE +iface $EIFACE inet static address $(ifdata -pa eth0) netmask $(ifdata -pn eth0) gateway $(route -n | awk '/^0\.0\.0\.0/{print $2; exit}') @@ -703,6 +719,34 @@ iface b0 inet static # dns-nameservers 195.58.160.194 195.58.161.122 # dns-search sipwise.com EOF + else # no bonding + cat > $TARGET/etc/network/interfaces << EOF +# This file describes the network interfaces available on your system +# and how to activate them. For more information, see interfaces(5). +# The loopback network interface +auto lo +iface lo inet loopback + +auto $EIFACE +iface $EIFACE inet static + address $(ifdata -pa eth0) + netmask $(ifdata -pn eth0) + gateway $(route -n | awk '/^0\.0\.0\.0/{print $2; exit}') + dns-nameservers $(awk '/^nameserver/ {print $2}' /etc/resolv.conf | xargs echo -n) + +# Example: +# allow-hotplug eth0 +# iface eth0 inet static +# address 192.168.1.101 +# netmask 255.255.255.0 +# network 192.168.1.0 +# broadcast 192.168.1.255 +# gateway 192.168.1.1 +# # dns-* options are implemented by the resolvconf package, if installed +# dns-nameservers 195.58.160.194 195.58.161.122 +# dns-search sipwise.com +EOF + fi # provide example configuration cat > $TARGET/etc/network/interfaces.examples << EOF @@ -756,7 +800,7 @@ EOF # append hostnames of sp1/sp2 so they can talk to each other # in the HA setup -if $PRO_EDITION ; then +if "$PRO_EDITION" ; then cat >> $TARGET/etc/hosts << EOF $IP1 sp1 $IP2 sp2 @@ -785,7 +829,7 @@ if [ -n "$start_seconds" ] ; then fi echo -if $PRO_EDITION ; then +if "$PRO_EDITION" ; then echo "Execute: asu64 set BootOrder.BootOrder 'Hard Disk 0=USB Storage=CD/DVD Rom'