X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=initscripts%2Fpl_boot;h=f0faaf899dc2d984eff52db420d0d0177e3933cb;hb=c2127494a9b277ddb164ff04a79c1724a3e3ae2e;hp=51aee96444028ffb88ae1d10a95edfa6f273a39f;hpb=4b85e30580433a5d81c692170de638e09bd4cc22;p=bootcd.git diff --git a/initscripts/pl_boot b/initscripts/pl_boot index 51aee96..f0faaf8 100755 --- a/initscripts/pl_boot +++ b/initscripts/pl_boot @@ -1,11 +1,9 @@ #!/bin/bash -### xxx tmp debug +### make sure this output shows up in the console -set -x -echo pl_boot on console > /dev/console +exec 2>&1 exec > /dev/console -echo pl_boot plain ### . /etc/init.d/pl_functions @@ -79,10 +77,10 @@ CONNECT_BOOT_SERVER_PATH=$BOOT_SERVER_PATH CONNECT_BOOT_SERVER_GPG_KEYRING=$BOOT_SERVER_GPG_KEYRING CONNECT_BOOT_SERVER_CACERT=$BOOT_SERVER_CACERT -while : ; do +while true; do if [[ -f $CANCEL_BOOT_FLAG ]]; then - echo $(date "+%H:%M:%S") " pl_boot: got request to cancel boot, exiting" + verbose-message "pl_boot: got request to cancel boot, exiting" exit 0 fi @@ -91,7 +89,7 @@ while : ; do contact_count=0 if [[ $on_backup_server == 1 ]]; then - echo $(date "+%H:%M:%S") " pl_boot: failed to contact backup server, trying primary $BOOT_SERVER" + verbose-message "pl_boot: failed to contact backup server, trying primary $BOOT_SERVER" on_backup_server=0 @@ -101,7 +99,7 @@ while : ; do CONNECT_BOOT_SERVER_GPG_KEYRING=$BOOT_SERVER_GPG_KEYRING CONNECT_BOOT_SERVER_CACERT=$BOOT_SERVER_CACERT else - echo $(date "+%H:%M:%S") " pl_boot: failed to contact primary server, trying backup $BACKUP_BOOT_SERVER" + verbose-message "pl_boot: failed to contact primary server, trying backup $BACKUP_BOOT_SERVER" on_backup_server=1 @@ -115,10 +113,12 @@ while : ; do if [[ $contact_count != 0 ]]; then - echo $(date "+%H:%M:%S") " pl_boot: next attempt in 30s, to fetch script from server at $CONNECT_BOOT_SERVER" - /bin/sleep 30 + verbose-message "pl_boot: next attempt in 30s, to fetch script from server at $CONNECT_BOOT_SERVER" + /bin/sleep 30 fi + # June 2015 : using --tlsv1 instead of sslv3 that should be available + # on all myplc from f14 inclusive # assemble the curl transaction CURL_CMD="/usr/bin/curl \ --connect-timeout 60 \ @@ -130,7 +130,7 @@ while : ; do --form nonce= /tmp/nonce - echo $(date "+%H:%M:%S") " pl_boot: fetching script from boot server $CONNECT_BOOT_SERVER" + verbose-message "pl_boot: fetching script from boot server $CONNECT_BOOT_SERVER" ((contact_count++)) rm -f $UNVERIFIED_SCRIPT $CURL_CMD curl_err=$? if [ $curl_err -ne 0 ]; then - echo $(date "+%H:%M:%S") " pl_boot: curl request failed with error $curl_err:" + verbose-message "pl_boot: curl request failed with error $curl_err:" cat /tmp/curl_errors echo if [ -n "$DISCONNECTED_OPERATION" ]; then @@ -169,29 +169,29 @@ while : ; do else case $curl_err in 6) - echo $(date "+%H:%M:%S") " This error likely indicates a networking configuration error. " - echo $(date "+%H:%M:%S") " Please, check whether you can ping this machine. If you can, " - echo $(date "+%H:%M:%S") " we recommend checking your DNS settings. If you cannot, then " - echo $(date "+%H:%M:%S") " please double check your network settings registered at PLC and " - echo $(date "+%H:%M:%S") " stored on this Boot Image." + verbose-message "This error likely indicates a networking configuration error. " + verbose-message "Please, check whether you can ping this machine. If you can, " + verbose-message "we recommend checking your DNS settings. If you cannot, then " + verbose-message "please double check your network settings registered at PLC and " + verbose-message "stored on this Boot Image." ;; 60) - echo $(date "+%H:%M:%S") " This error likely indicates that the hardware clock is likely not set " - echo $(date "+%H:%M:%S") " to GMT. The result is that authentication between the local and " - echo $(date "+%H:%M:%S") " remote site fails. Please double check this machine's system " - echo $(date "+%H:%M:%S") " clock, and set it to GMT in the BIOS. If after rebooting the same " - echo $(date "+%H:%M:%S") " error occurs, please report the situation to support@planet-lab.org " - echo $(date "+%H:%M:%S") " with as much detail as possible." + verbose-message "This error likely indicates that the hardware clock is likely not set " + verbose-message "to GMT. The result is that authentication between the local and " + verbose-message "remote site fails. Please double check this machine's system " + verbose-message "clock, and set it to GMT in the BIOS. If after rebooting the same " + verbose-message "error occurs, please report the situation to support@planet-lab.org " + verbose-message "with as much detail as possible." ;; *) - echo $(date "+%H:%M:%S") " The best-practice approach for handling this error is not yet " - echo $(date "+%H:%M:%S") " documented. Please report this error to support@planet-lab.org " - echo $(date "+%H:%M:%S") " with as much detail as possible." + verbose-message "The best-practice approach for handling this error is not yet " + verbose-message "documented. Please report this error to support@planet-lab.org " + verbose-message "with as much detail as possible." ;; esac - # in any case display as much info as we can (see pl_functions) - pl_network_sanity_checks - # retry + # in any case display as much info as we can (see pl_functions) + verbose-forensics "after curl" + # retry continue fi elif [ -n "$DISCONNECTED_OPERATION" ]; then @@ -202,23 +202,23 @@ while : ; do rmdir /tmp/boot-media fi - echo $(date "+%H:%M:%S") " pl_boot: verifying downloaded script" + verbose-message "pl_boot: verifying downloaded script" rm -f $VERIFIED_SCRIPT $GPG_CMD 2> /tmp/gpg_errors if [ $? -ne 0 ]; then - echo $(date "+%H:%M:%S") " pl_boot: failed to verify file:" + verbose-message "pl_boot: failed to verify file:" cat /tmp/gpg_errors echo continue fi - echo $(date "+%H:%M:%S") " pl_boot: decrypted and verified script succesfully" + verbose-message "pl_boot: decrypted and verified script succesfully" - echo $(date "+%H:%M:%S") " pl_boot: handing control to download script" + verbose-message "pl_boot: handing control to download script" rm -f $UNVERIFIED_SCRIPT chmod +x $VERIFIED_SCRIPT $VERIFIED_SCRIPT - echo $(date "+%H:%M:%S") " pl_boot: downloaded script has returned" + verbose-message "pl_boot: downloaded script has returned" done -echo $(date "+%H:%M:%S") " pl_boot: automatic boot process canceled by user" +verbose-message "pl_boot: automatic boot process canceled by user"