diff options
| author | Jonathan Bauer | 2014-01-29 15:31:40 +0100 |
|---|---|---|
| committer | Jonathan Bauer | 2014-01-29 15:31:40 +0100 |
| commit | 43a0aaa0af313a40e903f909a7312879c6d6800e (patch) | |
| tree | d3fdaa7b77fe146a38db743f3814842b9a1d1aeb /remote | |
| parent | [server/configs] new module for ubuntu 13.10: fixes the unity panel not (diff) | |
| parent | [rfs-stage31] Put hosts, hostname, resolv.conf in proper place (diff) | |
| download | tm-scripts-43a0aaa0af313a40e903f909a7312879c6d6800e.tar.gz tm-scripts-43a0aaa0af313a40e903f909a7312879c6d6800e.tar.xz tm-scripts-43a0aaa0af313a40e903f909a7312879c6d6800e.zip | |
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
Diffstat (limited to 'remote')
4 files changed, 34 insertions, 11 deletions
diff --git a/remote/rootfs/rootfs-stage31/data/inc/setup_network b/remote/rootfs/rootfs-stage31/data/inc/setup_network index 3de48057..ed29050f 100755 --- a/remote/rootfs/rootfs-stage31/data/inc/setup_network +++ b/remote/rootfs/rootfs-stage31/data/inc/setup_network @@ -86,6 +86,5 @@ if [ -n "$CLIENTIP" ]; then fi echo -n "$CLIENTIP" > "/run/firstip" echo -n "$GATEWAY" > "/run/firstgw" -echo -n "$FUTURE_ROOT" > "/run/future_root" udhcpc $PARAM -O domain -O nissrv -O nisdomain -O wpad -t 5 -T 2 -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE" diff --git a/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 b/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 index 4e19fb3a..f0380ece 100755 --- a/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 +++ b/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 @@ -43,6 +43,9 @@ mkdir -p /mnt/opt/openslx/uniontmp /mnt/tmp busybox mount -n --move "$FUTURE_ROOT" /mnt/opt/openslx/uniontmp || drop_shell "Problem moving uniontmp." FUTURE_ROOT="/mnt" +# Move network stuff +cp /etc/hostname /etc/hosts /etc/resolv.conf "${FUTURE_ROOT}/etc/" + # "Delete" addon hook-script in aufs view touch "/mnt/opt/openslx/uniontmp/.wh.addon-init" diff --git a/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger b/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger index 7a8eaf0b..ea4d002d 100755 --- a/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger +++ b/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger @@ -42,18 +42,39 @@ if [ -n "${router}" ]; then echo -n "$router" > "/run/firstgw" fi -RESOLV=$(cat "/run/future_root") -RESOLV="${RESOLV}/etc/resolv.conf" -rm -f -- "$RESOLV" +rm -f -- "/etc/resolv.conf" # DNS/domain? -if [ -n "$domain" ]; then - echo "domain $domain" >> "$RESOLV" - echo "search $domain" >> "$RESOLV" -fi [ -n "$dns" ] && echo "..got DNS.." for serv in $dns; do - echo "nameserver $serv" >> "$RESOLV" + echo "nameserver $serv" >> "/etc/resolv.conf" done -cp "$RESOLV" "/etc/resolv.conf" 2>/dev/null +if [ -z "$domain" ]; then + # try to get domain via reverse lookup if empty + echo "..trying to get domain via DNS, as DHCP didn't supply one.." + fqdn=$(nslookup "$ip" | grep -E "^Address +[0-9]+: +$ip " | head -n 1 | awk '{print $4}') + domain="${fqdn#*.}" +fi +if [ -n "$domain" ]; then + echo "domain $domain" >> "/etc/resolv.conf" + echo "search $domain" >> "/etc/resolv.conf" # TODO: patch busybox +fi + + +# Hostname +if [ -z "$hostname" ]; then + # as with domain, if there's no hostname, try to get via DNS + echo "..trying to get hostname via DNS, as DHCP didn't supply one.." + [ -z "$fqdn" ] && fqdn=$(nslookup "$ip" | grep -E "^Address +[0-9]+: +$ip " | head -n 1 | awk '{print $4}') + hostname="${fqdn%%.*}" +elif [ -n "$domain" ]; then + fqdn="${hostname}.${domain%% *}" # in case domain is a list +fi +if [ -n "$hostname" ]; then + [ -z "$fqdn" ] && fqdn="$hostname" + echo "..setting hostname $hostname (fqdn: $fqdn).." + echo "$fqdn" > "/proc/sys/kernel/hostname" + echo "$fqdn" > "/etc/hostname" + echo "$ip $fqdn $hostname" > "/etc/hosts" +fi diff --git a/remote/rootfs/rootfs-stage31/rootfs-stage31.build b/remote/rootfs/rootfs-stage31/rootfs-stage31.build index 82477940..f3eab5b6 100644 --- a/remote/rootfs/rootfs-stage31/rootfs-stage31.build +++ b/remote/rootfs/rootfs-stage31/rootfs-stage31.build @@ -16,7 +16,7 @@ build() { done mkdir -p "$MODULE_BUILD_DIR/lib" - find /lib /lib64 /usr/lib /usr/lib64 \( -name "libnss_dns*" -o -name "libresolv*" \) -exec cp {} "$MODULE_BUILD_DIR/lib" \; + find /lib /lib64 /usr/lib /usr/lib64 \( -name "libnss_dns*" -o -name "libresolv*" \) -exec cp -a {} "$MODULE_BUILD_DIR/lib/" \; tarcopy "$(cat "$COPYLIST" | sort -u)" "$MODULE_BUILD_DIR" } |
