X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=initscripts%2Fpl_netinit;h=9a6283054fdc71cafa96babdc0369f45c1b217a5;hb=911d3179f14ae29a192558c744c281cefd764f38;hp=d7950332a6bec9ad92bbaf65d505d3c741bf3e95;hpb=ab12c48e13809375bf18cb6c695293f95cb6b9dd;p=bootcd.git diff --git a/initscripts/pl_netinit b/initscripts/pl_netinit index d795033..9a62830 100755 --- a/initscripts/pl_netinit +++ b/initscripts/pl_netinit @@ -60,7 +60,7 @@ DEFAULT_NET_CONF=0 function net_init_failed() { echo - echo $(date "+%H:%M:%S") " pl_netinit: network initialization failed," + echo $(date "+%H:%M:%S") " pl_netinit: network initialization failed with interface $ETH_DEVICE" echo echo For forensics echo @@ -71,7 +71,11 @@ function net_init_failed() { echo ========== ifconfig beg /sbin/ifconfig echo ========== ifconfig end + echo ========== ip address show beg + ip address show + echo ========== ip address show end echo + echo $(date "+%H:%M:%S") " pl_netinit: network initialization failed with interface $ETH_DEVICE" echo $(date "+%H:%M:%S") " pl_netinit: shutting down machine in two hours" /bin/sleep 2h /sbin/shutdown -h now @@ -263,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 @@ -305,16 +309,25 @@ 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 - echo "pl_netinit: device present $ETH_DEVICE, proceeding (${COUNTER}s/${ALLOW}s)" + echo $(date "+%H:%M:%S") " pl_netinit: device present $ETH_DEVICE, proceeding (${COUNTER}s/${ALLOW}s)" break fi - echo $(date "+%H:%M:%S") " pl_netinit: waiting for device $ETH_DEVICE,${COUNTER}s/${ALLOW}s" + 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 0 ] && net_init_failed + [ $COUNTER -ge $ALLOW ] && net_init_failed sleep 1 done @@ -336,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