#!/bin/bash ### make sure this output shows up in the console exec 2>&1 exec > /dev/console ### . /etc/init.d/pl_functions . /tmp/planet.cnf # Run gpg once to create default options GNUPGHOME=/root export GNUPGHOME /usr/bin/gpg --yes 2>/dev/null /tmp/nonce 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 verbose-message "pl_boot: curl request failed with error $curl_err:" cat /tmp/curl_errors echo if [ -n "$DISCONNECTED_OPERATION" ]; then mkdir /tmp/boot-media mount -U "$DISCONNECTED_OPERATION" /tmp/boot-media cp /tmp/boot-media/bootscript.gpg $UNVERIFIED_SCRIPT umount /tmp/boot-media rmdir /tmp/boot-media else case $curl_err in 6) 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) 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." ;; *) 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) verbose-forensics "after curl" # retry continue fi elif [ -n "$DISCONNECTED_OPERATION" ]; then mkdir /tmp/boot-media mount -U "$DISCONNECTED_OPERATION" /tmp/boot-media cp $UNVERIFIED_SCRIPT /tmp/boot-media umount /tmp/boot-media rmdir /tmp/boot-media fi verbose-message "pl_boot: verifying downloaded script" rm -f $VERIFIED_SCRIPT $GPG_CMD 2> /tmp/gpg_errors if [ $? -ne 0 ]; then verbose-message "pl_boot: failed to verify file:" cat /tmp/gpg_errors echo continue fi verbose-message "pl_boot: decrypted and verified script succesfully" verbose-message "pl_boot: handing control to download script" rm -f $UNVERIFIED_SCRIPT chmod +x $VERIFIED_SCRIPT $VERIFIED_SCRIPT verbose-message "pl_boot: downloaded script has returned" done verbose-message "pl_boot: automatic boot process canceled by user"