From ec0c7a74bbf5824adc4efa54e1f91984ac870a8e Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 6 May 2009 09:53:36 +0000 Subject: move to .in files --- setup-alpine-web.in | 145 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 setup-alpine-web.in (limited to 'setup-alpine-web.in') diff --git a/setup-alpine-web.in b/setup-alpine-web.in new file mode 100644 index 0000000..ca98d1f --- /dev/null +++ b/setup-alpine-web.in @@ -0,0 +1,145 @@ +#!/bin/sh + +PROGRAM=${0##*/} + +BRNUM=0 +CNET="10.$BRNUM.0" +HNAME=alpine +DOMAIN="bootstrap.invalid" +IFACE_LIST=/tmp/interfaces + +get_interfaces() { + [ -f "$IFACE_LIST" ] || tail -n +3 /proc/net/dev \ + | awk -F: '$1 !~ /lo/ { print $1 }' > "$IFACE_LIST" + cat "$IFACE_LIST" +} + +make_dhcp_subnet() { + local num=$1 + local iface=$2 + local network="$CNET.$num" + local netmask=255.255.255.240 + local router="$CNET.$(( $num + 1 ))" + local poolstart="$CNET.$(( $num + 3 ))" + local poolend="$CNET.$(( $num + 14 ))" + echo "subnet $network netmask $netmask {" + echo " range $poolstart $poolend;" + echo " option routers $router;" + echo "}" + echo "" + ip addr add $router/28 dev $iface || echo "Failed to set address $router/28 on $iface" >&2 + ip link set dev $iface up + iptables -t nat -A PREROUTING -i $iface -j DNAT --to-destination $router +} + +make_dhcp_global() { + echo "option domain-name \"$DOMAIN\";" + echo "option domain-name-servers $CNET.1;" + echo "ddns-update-style none;" + echo "" +} + +do_setup() { + local i + local count + hostname $HNAME + + # install needed packages + apk_add dhcp iptables "$@" + + # config dhcp server + make_dhcp_global > /etc/dhcp/dhcpd.conf + count=0 + for i in $(get_interfaces); do + # maximum 16 network interfaces + [ $count -ge 16 ] && break + make_dhcp_subnet $(( $count * 16 )) $i >> /etc/dhcp/dhcpd.conf + count=$(( $count + 1 )) + done + + /etc/init.d/syslog start + /etc/init.d/dhcpd start + FORCE_SETUP_WEBCONF=yes setup-webconf "$@" + + # set up http listener/forwarder + mkdir -p /var/www/redirect + cat </var/www/redirect/index.html + + + + + + +EOF + echo "E404:/var/www/redirect/index.html" > /etc/httpd.conf + echo "HTTPD_OPTS=\"-h /var/www/redirect\"" > /etc/conf.d/httpd + + /etc/init.d/httpd start + + # dummy dns + echo "* $CNET.1" > /etc/dnsd.conf + /etc/init.d/dnsd start +} + +# reconf dhcp and kill all interfaces but $1 +do_reset() { + local iface=$1 + local i + local oldip=$(ip addr show dev $iface | awk '/inet / { print $2 } ' | head -n 1) + + # setup new dhcpd.conf + make_dhcp_global > /etc/dhcp/dhcpd.conf + cat >> /etc/dhcp/dhcpd.conf <