X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=initscripts%2Fpl_netinit;h=9a6283054fdc71cafa96babdc0369f45c1b217a5;hb=911d3179f14ae29a192558c744c281cefd764f38;hp=b658fcd175964c4f90324e945a3e25544ce6093e;hpb=832216f9e8399f4668d84713a7d0e44672f74398;p=bootcd.git diff --git a/initscripts/pl_netinit b/initscripts/pl_netinit index b658fcd..9a62830 100755 --- a/initscripts/pl_netinit +++ b/initscripts/pl_netinit @@ -267,7 +267,7 @@ ETH_DEVICE= if [[ -n "$NET_DEVICE" ]]; then # the user specified a mac address we should use. find the network # device for it. - NET_DEVICE=$(tr A-Z a-z <<<$NET_DEVICE) + NET_DEVICE=$(tr A-Z a-z <<< $NET_DEVICE) pushd /sys/class/net for device in *; do @@ -309,7 +309,11 @@ fi # in any case, let us try to work around that by allowing some delay # here -ALLOW=5 +# tmp: Thierry June 2015 +# on fedora 21 nodes we see this running in a context where eth0 is not known to the system +# could be related to a dependency that we poorly describe to systemd +# I am increasing this timeout to 2 minutes in order to check that conjecture +ALLOW=60 COUNTER=0 while true; do if /sbin/ifconfig $ETH_DEVICE >& /dev/null; then @@ -317,6 +321,11 @@ while true; do break fi echo $(date "+%H:%M:%S") " pl_netinit: waiting for device $ETH_DEVICE - ${COUNTER}s/${ALLOW}s" + set -x + /sbin/ifconfig + journalctl -b | egrep 'eth|bnx|udev' + systemctl list-unit-files | grep -i network + set +x COUNTER=$(($COUNTER+1)) [ $COUNTER -ge $ALLOW ] && net_init_failed sleep 1 @@ -340,3 +349,61 @@ echo $(date "+%H:%M:%S") " pl_netinit: attempting to start networking" /sbin/ifconfig $ETH_DEVICE > $IFCONFIG_OUTPUT echo $(date "+%H:%M:%S") " pl_netinit: network online" + +# patch for f22 - if /etc/resolv.conf is empty in static mode +function pl_netinit_patch_resolv_conf () { + file=/etc/resolv.conf + needed="" + # missing file : patch needed + if ! [ -f $file ]; then + needed=true + # empty file : patch needed + elif cmp $file /dev/null; then + needed=true + fi + if [ -n "$needed" ]; then + echo pl_netinit patching $file + source /etc/sysconfig/network-scripts/ifcfg-${ETH_DEVICE} + ( [ -n "$DNS1" ] && echo nameserver $DNS1; \ + [ -n "$DNS2" ] && echo nameserver $DNS2 ) > $file + else + echo pl_netinit has no need to patch $file + fi + } + +function pl_netinit_forensics () { + + echo "-------------------- BEG post pl_netinit forensics" + + file=/root/.ssh/authorized_keys + echo "$file" + if ! [ -f "$file" ]; then + echo "!!!!!!!!!! missing $file" + else + echo "---------- $file" + cat $file + fi + + file="/etc/ssh/sshd_config" + if ! [ -f "$file" ]; then + echo "!!!!!!!!!! missing $file" + else + echo '---------- egrep Pass|Auth|PAM|Root' $file + grep -v '^#' $file | egrep 'Pass|Auth|PAM|Root' + fi + + # on f22 we see an emty resolv.conf... + file=/etc/resolv.conf + if ! [ -f "$file" ]; then + echo "!!!!!!!!!! missing $file" + else + echo "---------- $file" + cat $file + fi + + echo "-------------------- END post pl_netinit forensics" +} + +pl_netinit_patch_resolv_conf + +pl_netinit_forensics