From e2467dbf38db9dc9c7617055872dd7d703a4e22e Mon Sep 17 00:00:00 2001 From: Kilian Cavalotti Date: Mon, 18 Dec 2017 11:44:01 -0800 Subject: [PATCH 1/2] use all nameservers defined in site.nameservers --- xCAT/postscripts/mkresolvconf | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/xCAT/postscripts/mkresolvconf b/xCAT/postscripts/mkresolvconf index 8b4b58d69..65276b101 100755 --- a/xCAT/postscripts/mkresolvconf +++ b/xCAT/postscripts/mkresolvconf @@ -17,6 +17,7 @@ conf_file_bak="/etc/resolv.conf.bak" # get values set when the myxcatpost_ script was run master=$MASTER_IP # this is the ip for the nodes xcatmaster attribute domain=$DOMAIN # this is the domain name used in this cluster +nameservers=$NAMESERVERS # nameservers defined in the site table node=$NODE if [ -n "$master" ] && [ -n "$domain" ]; then @@ -24,7 +25,14 @@ if [ -n "$master" ] && [ -n "$domain" ]; then #logger -t xcat "Created /etc/resolv.conf file on $node." cp $conf_file $conf_file_bak > /dev/null 2>&1 echo "search $domain" >$conf_file - echo "nameserver $master" >>$conf_file + if [[ "$nameservers" != "" ]]; then + for ns in ${nameservers//,/ }; do + echo "nameserver ${ns//$master}" >>$conf_file + done + else + echo "nameserver $master" >>$conf_file + fi + else logger -t xcat -p local4.err "Could not create resolv.conf on $node." exit 1 From d743b26b290a8bcd09f173c8fc6935773bf8b5aa Mon Sep 17 00:00:00 2001 From: Kilian Cavalotti Date: Mon, 18 Dec 2017 17:15:01 -0800 Subject: [PATCH 2/2] mkresolvconf: avoid duplicate nameservers --- xCAT/postscripts/mkresolvconf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xCAT/postscripts/mkresolvconf b/xCAT/postscripts/mkresolvconf index 65276b101..39cf9c06a 100755 --- a/xCAT/postscripts/mkresolvconf +++ b/xCAT/postscripts/mkresolvconf @@ -27,7 +27,8 @@ if [ -n "$master" ] && [ -n "$domain" ]; then echo "search $domain" >$conf_file if [[ "$nameservers" != "" ]]; then for ns in ${nameservers//,/ }; do - echo "nameserver ${ns//$master}" >>$conf_file + grep -q $ns $conf_file || \ + echo "nameserver ${ns//$master}" >>$conf_file done else echo "nameserver $master" >>$conf_file