111 lines
1.7 KiB
Bash
Executable File
111 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# This script sets up the networking on the new gentoo image.
|
|
#
|
|
# Steve
|
|
# --
|
|
# http://www.steve.org.uk/
|
|
|
|
|
|
prefix=$1
|
|
|
|
#
|
|
# Source our common functions
|
|
#
|
|
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
. /usr/lib/xen-tools/common.sh
|
|
else
|
|
. ./hooks/common.sh
|
|
fi
|
|
|
|
|
|
#
|
|
# Log our start
|
|
#
|
|
logMessage Script $0 starting
|
|
|
|
|
|
#
|
|
# Make sure we have an /etc/conf.d directory.
|
|
#
|
|
mkdir -p ${prefix}/etc/conf.d
|
|
|
|
|
|
#
|
|
# A function to setup DHCP for our new image.
|
|
#
|
|
function setupDynamicNetworking
|
|
{
|
|
#
|
|
# The host is using DHCP.
|
|
#
|
|
cat <<E_O_DHCP > ${prefix}/etc/conf.d/net
|
|
# /etc/conf.d/net:
|
|
# Global config file for net.* rc-scripts
|
|
#
|
|
# Setup DHCP for the first ethernet interface
|
|
#
|
|
iface_eth0="dhcp"
|
|
|
|
E_O_DHCP
|
|
}
|
|
|
|
|
|
|
|
#
|
|
# A function to setup static IP addresses for our new image.
|
|
#
|
|
function setupStaticNetworking
|
|
{
|
|
#
|
|
# We have a static IP address
|
|
#
|
|
cat <<E_O_STATIC >${prefix}/etc/conf.d/net
|
|
#
|
|
# First ethernet interface
|
|
#
|
|
config_eth0=( "${ip1} netmask ${netmask}" )
|
|
routes_eth0=( "default via ${gateway}" )
|
|
|
|
E_O_STATIC
|
|
|
|
interface=1
|
|
count=2
|
|
|
|
while [ "${count}" -le "${ip_count}" ]; do
|
|
|
|
value=\$ip${count}
|
|
value=`eval echo $value`
|
|
|
|
logMessage Adding etho:${interface}
|
|
|
|
cat <<E_O_STATIC >>${prefix}/etc/conf.d/net
|
|
config_eth0:${interface}=( "{value} netmask "${netmask}" )
|
|
|
|
E_O_STATIC
|
|
count=`expr $count + 1`
|
|
interface=`expr $interface + 1`
|
|
done
|
|
}
|
|
|
|
|
|
|
|
|
|
#
|
|
# Call the relevant function
|
|
#
|
|
if [[ -z "${dhcp}" ]]; then
|
|
logMessage "Setting up static networking"
|
|
setupStaticNetworking
|
|
|
|
else
|
|
logMessage "Setting up DHCP networking"
|
|
setupDynamicNetworking
|
|
fi
|
|
|
|
|
|
#
|
|
# Log our finish
|
|
#
|
|
logMessage Script $0 finished
|