1
0
mirror of synced 2026-02-24 07:32:35 +00:00
Files
xen-tools.xen-tools/hooks/gentoo/40-setup-networking
Stéphane Jourdois f032178de9 Add new nameserver config option
This optional config value is used in hooks to create domU resolv.conf.
If unset, domU's resolv.conf is created by the guest distrib install.
2010-07-10 11:38:03 +02:00

133 lines
2.2 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.
#
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
#
config_eth0=( "dhcp" )
E_O_DHCP
}
#
# A function to setup static IP addresses for our new image.
#
setupStaticNetworking ()
{
#
# if $p2p is set then add a "pointopoint" setting.
#
point='';
if [ ! -z "${p2p}" ]; then
point="pointopoint ${p2p}"
else
point=''
fi
#
# We have a static IP address
#
cat <<E_O_STATIC >${prefix}/etc/conf.d/net
#
# First ethernet interface
#
config_eth0=( "${ip1} ${point} 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
#
# Hooks are run chrooted, hence the resolv.conf is moved
# temporarily to /etc/resolv.conf.old. Use that file, it
# will be restored after hooks are run.
#
if [ '*' != "*$nameserver" ]; then
rm -f ${prefix}/etc/resolv.conf.old
for ns in $nameserver; do
echo "nameserver $ns" >>${prefix}/etc/resolv.conf.old
done
fi
}
#
# 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