"target" is also the name used in the debian installer for the installation target while "prefix" is too ambiguous.
149 lines
2.9 KiB
Bash
Executable File
149 lines
2.9 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# This script places the new systems hostname into a couple of files within
|
|
# the new image.
|
|
#
|
|
# Steve
|
|
# --
|
|
# http://www.steve.org.uk/
|
|
|
|
|
|
|
|
TARGET=$1
|
|
|
|
|
|
#
|
|
# Source our common functions
|
|
#
|
|
if [ -e /usr/share/xen-tools/common.sh ]; then
|
|
. /usr/share/xen-tools/common.sh
|
|
else
|
|
. ./hooks/common.sh
|
|
fi
|
|
|
|
|
|
#
|
|
# Log our start
|
|
#
|
|
logMessage Script $0 starting
|
|
|
|
#
|
|
# Determine the FQDN and Hostname
|
|
#
|
|
GUEST_FQDN=${hostname}
|
|
GUEST_HOSTNAME=`echo $GUEST_FQDN | awk -F'.' '{print $1}'`
|
|
|
|
|
|
#
|
|
# Make sure the umask is correct
|
|
#
|
|
umask 022
|
|
|
|
|
|
#
|
|
# Setup the mailname + hostname files.
|
|
#
|
|
echo $GUEST_HOSTNAME > ${TARGET}/etc/hostname
|
|
echo $GUEST_FQDN > ${TARGET}/etc/mailname
|
|
|
|
|
|
#
|
|
# Fixup the /etc/hosts file upon the new image for
|
|
# machines with static IPs
|
|
#
|
|
if [ -z "${copyhosts}" ]; then
|
|
#
|
|
# Copy localhost
|
|
#
|
|
cat > ${TARGET}/etc/hosts <<EOF
|
|
127.0.0.1 localhost
|
|
EOF
|
|
#
|
|
# Make sure our hostname and FQDN is resolvable
|
|
#
|
|
if [ -z "${dhcp}" ]; then
|
|
#
|
|
# If dhcp is diabled, FQDN should resolve to our IP
|
|
#
|
|
cat >> ${TARGET}/etc/hosts <<EOF
|
|
${ip1} $GUEST_FQDN $GUEST_HOSTNAME
|
|
EOF
|
|
else
|
|
cat >> ${TARGET}/etc/hosts <<EOF
|
|
127.0.1.1 $GUEST_FQDN $GUEST_HOSTNAME
|
|
EOF
|
|
fi
|
|
|
|
cat >> ${TARGET}/etc/hosts <<EOF
|
|
|
|
# The following lines are desirable for IPv6 capable hosts
|
|
::1 ip6-localhost ip6-loopback
|
|
fe00::0 ip6-localnet
|
|
ff00::0 ip6-mcastTARGET
|
|
ff02::1 ip6-allnodes
|
|
ff02::2 ip6-allrouters
|
|
ff02::3 ip6-allhosts
|
|
|
|
EOF
|
|
|
|
else
|
|
# Non-IPv6 stuff.
|
|
grep -v '\(::\|IPv6\)' /etc/hosts > ${TARGET}/etc/hosts
|
|
|
|
# New entry.
|
|
if [ -z "${dhcp}" ]; then
|
|
cat >> ${TARGET}/etc/hosts <<EOF
|
|
${ip1} $GUEST_FQDN $GUEST_HOSTNAME
|
|
|
|
EOF
|
|
else
|
|
cat >> ${TARGET}/etc/hosts <<EOF
|
|
127.0.1.1 $GUEST_FQDN $GUEST_HOSTNAME
|
|
|
|
EOF
|
|
fi
|
|
|
|
# IPv6 stuff.
|
|
grep '\(::\|IPv6\)' /etc/hosts >> ${TARGET}/etc/hosts
|
|
fi
|
|
|
|
|
|
#
|
|
# Allow the host system to know the IP address of our new guest.
|
|
#
|
|
if [ -z "${dhcp}" ]; then
|
|
|
|
if ( grep $GUEST_FQDN /etc/hosts > /dev/null ) ; then
|
|
|
|
logMessage Host already has IP address for the host $GUEST_FQDN.
|
|
|
|
else
|
|
if [ -z "${nohosts}" ]; then
|
|
|
|
logMessage Adding $GUEST_FQDN and $GUEST_HOSTNAME to /etc/hosts on the host
|
|
echo "${ip1} $GUEST_FQDN $GUEST_HOSTNAME" >> /etc/hosts
|
|
|
|
#
|
|
# If we've updated the /etc/hosts file on the host machine
|
|
# and there is an installation of dnsmasq installed then
|
|
# reload it.
|
|
#
|
|
# This will let the local LAN clients lookup the new address.
|
|
#
|
|
if [ -x /usr/sbin/dnsmasq ] ; then
|
|
if [ -e /var/run/dnsmasq.pid ]; then
|
|
|
|
logMessage Allowing DNSMasq to restart.
|
|
kill -s HUP `cat /var/run/dnsmasq.pid`
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
#
|
|
# Log our finish
|
|
#
|
|
logMessage Script $0 finished
|