From 9aad66b3a08b78266e4037092cde4769f5815916 Mon Sep 17 00:00:00 2001 From: Oleksandr Ivantsiv Date: Wed, 1 Feb 2017 18:54:16 +0200 Subject: [PATCH 1/3] Add DHCP client hook to update hostname. --- build_debian.sh | 1 + files/dhcp/sethostname | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 files/dhcp/sethostname diff --git a/build_debian.sh b/build_debian.sh index d79a05275b17..e113e6925107 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -240,6 +240,7 @@ iface eth0 inet dhcp EOF sudo cp files/dhcp/rfc3442-classless-routes $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d +sudo cp files/dhcp/sethostname $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/ if [ -f sonic_debian_extension.sh ]; then ./sonic_debian_extension.sh $FILESYSTEM_ROOT diff --git a/files/dhcp/sethostname b/files/dhcp/sethostname new file mode 100644 index 000000000000..7b59862a13bd --- /dev/null +++ b/files/dhcp/sethostname @@ -0,0 +1,21 @@ +#!/bin/bash +# This script is to update hostname of the system. + +if [ "$reason" != BOUND ] && [ "$reason" != RENEW ] \ + && [ "$reason" != REBIND ] && [ "$reason" != REBOOT ] +then + exit 0 +fi + +if [ "$interface" != "eth0" ] && [ "$interface" != "eth1" ] +then + exit 0 +fi + +current_host_name=`hostname -s` + +if [ "$current_host_name" != "$new_host_name" ] +then + echo $new_host_name > /etc/hostname + hostname -F /etc/hostname +fi From 3b4c1914346c7fd0f66f3a41ba02014befed5ba7 Mon Sep 17 00:00:00 2001 From: Oleksandr Ivantsiv Date: Thu, 2 Feb 2017 11:14:44 +0200 Subject: [PATCH 2/3] Remove interface checking --- files/dhcp/sethostname | 5 ----- 1 file changed, 5 deletions(-) diff --git a/files/dhcp/sethostname b/files/dhcp/sethostname index 7b59862a13bd..07bc3566da6b 100644 --- a/files/dhcp/sethostname +++ b/files/dhcp/sethostname @@ -7,11 +7,6 @@ then exit 0 fi -if [ "$interface" != "eth0" ] && [ "$interface" != "eth1" ] -then - exit 0 -fi - current_host_name=`hostname -s` if [ "$current_host_name" != "$new_host_name" ] From e8d7ce3adaa8051cb1feabd10e9ee79a233fd57d Mon Sep 17 00:00:00 2001 From: Oleksandr Ivantsiv Date: Thu, 2 Feb 2017 17:44:49 +0200 Subject: [PATCH 3/3] Update hostname in /etc/hosts file --- files/dhcp/sethostname | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/files/dhcp/sethostname b/files/dhcp/sethostname index 07bc3566da6b..81bd458935fc 100644 --- a/files/dhcp/sethostname +++ b/files/dhcp/sethostname @@ -12,5 +12,9 @@ current_host_name=`hostname -s` if [ "$current_host_name" != "$new_host_name" ] then echo $new_host_name > /etc/hostname + line_to_replace=`grep 127.0.0.1.*$current_host_name /etc/hosts` + new_line=`echo $line_to_replace | sed "s/$current_host_name/$new_host_name/"` + sed -i "s/$line_to_replace/$new_line/" /etc/hosts + hostname -F /etc/hostname fi