#!/bin/sh
+. /tmp/planet.cnf
+
# Run gpg once to create default options
GNUPGHOME=/root
export GNUPGHOME
while : ; do
if [[ -f $CANCEL_BOOT_FLAG ]]; then
- echo "pl_boot: got request to cancel boot, exiting"
- exit 0
+ echo $(date "+%H:%M:%S") " pl_boot: got request to cancel boot, exiting"
+ exit 0
fi
if [[ $contact_count -ge $ATTEMPTS_BEFORE_BACKUP ]]; then
- contact_count=0
+ contact_count=0
- if [[ $on_backup_server == 1 ]]; then
- echo "pl_boot: failed to contact backup server, trying primary."
+ if [[ $on_backup_server == 1 ]]; then
+ echo $(date "+%H:%M:%S") " pl_boot: failed to contact backup server, trying primary $BOOT_SERVER"
- on_backup_server=0
+ on_backup_server=0
- CONNECT_BOOT_SERVER=$BOOT_SERVER
- CONNECT_BOOT_SERVER_PORT=$BOOT_SERVER_PORT
- CONNECT_BOOT_SERVER_PATH=$BOOT_SERVER_PATH
- CONNECT_BOOT_SERVER_GPG_KEYRING=$BOOT_SERVER_GPG_KEYRING
- CONNECT_BOOT_SERVER_CACERT=$BOOT_SERVER_CACERT
- else
- echo "pl_boot: failed to contact primary server, trying backup."
+ CONNECT_BOOT_SERVER=$BOOT_SERVER
+ CONNECT_BOOT_SERVER_PORT=$BOOT_SERVER_PORT
+ CONNECT_BOOT_SERVER_PATH=$BOOT_SERVER_PATH
+ 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"
- on_backup_server=1
+ on_backup_server=1
- CONNECT_BOOT_SERVER=$BACKUP_BOOT_SERVER
- CONNECT_BOOT_SERVER_PORT=$BACKUP_BOOT_SERVER_PORT
- CONNECT_BOOT_SERVER_PATH=$BACKUP_BOOT_SERVER_PATH
- CONNECT_BOOT_SERVER_GPG_KEYRING=$BACKUP_BOOT_SERVER_GPG_KEYRING
- CONNECT_BOOT_SERVER_CACERT=$BACKUP_BOOT_SERVER_CACERT
- fi
+ CONNECT_BOOT_SERVER=$BACKUP_BOOT_SERVER
+ CONNECT_BOOT_SERVER_PORT=$BACKUP_BOOT_SERVER_PORT
+ CONNECT_BOOT_SERVER_PATH=$BACKUP_BOOT_SERVER_PATH
+ CONNECT_BOOT_SERVER_GPG_KEYRING=$BACKUP_BOOT_SERVER_GPG_KEYRING
+ CONNECT_BOOT_SERVER_CACERT=$BACKUP_BOOT_SERVER_CACERT
+ fi
fi
if [[ $contact_count != 0 ]]; then
- if [[ $on_backup_server == 1 ]]; then
- echo "pl_boot: attempting to fetch script from backup server in 30s"
- else
- echo "pl_boot: attempting to fetch script from primary server in 30s"
- fi
+ if [[ $on_backup_server == 1 ]]; then
+ echo $(date "+%H:%M:%S") " pl_boot: attempting to fetch script from backup server in 30s"
+ else
+ echo $(date "+%H:%M:%S") " pl_boot: attempting to fetch script from primary server in 30s"
+ fi
/bin/sleep 30
fi
--always-trust \
--decrypt $UNVERIFIED_SCRIPT"
- echo "pl_boot: generating new nonce"
+ echo $(date "+%H:%M:%S") " pl_boot: generating new nonce"
/usr/bin/head --bytes=32 /dev/urandom | \
- /usr/bin/od -tx1 -An --width=32 | \
- /bin/sed 's/ //g' > /tmp/nonce
+ /usr/bin/od -tx1 -An --width=32 | \
+ /bin/sed 's/ //g' > /tmp/nonce
- echo "pl_boot: fetching script from boot server $CONNECT_BOOT_SERVER"
+ echo $(date "+%H:%M:%S") " 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 "pl_boot: curl request failed with error $curl_err:"
- cat /tmp/curl_errors
- echo
- continue
+ echo $(date "+%H:%M:%S") " 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
+ 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
- echo "pl_boot: verifying downloaded script"
+ echo $(date "+%H:%M:%S") " pl_boot: verifying downloaded script"
rm -f $VERIFIED_SCRIPT
$GPG_CMD 2> /tmp/gpg_errors
if [ $? -ne 0 ]; then
- echo "pl_boot: failed to verify file:"
- cat /tmp/gpg_errors
- echo
- continue
+ echo $(date "+%H:%M:%S") " pl_boot: failed to verify file:"
+ cat /tmp/gpg_errors
+ echo
+ continue
fi
- echo "pl_boot: decrypted and verified script succesfully"
+ echo $(date "+%H:%M:%S") " pl_boot: decrypted and verified script succesfully"
- echo "pl_boot: handing control to download script"
+ echo $(date "+%H:%M:%S") " pl_boot: handing control to download script"
rm -f $UNVERIFIED_SCRIPT
chmod +x $VERIFIED_SCRIPT
$VERIFIED_SCRIPT
- echo "pl_boot: downloaded script has returned"
+ echo $(date "+%H:%M:%S") " pl_boot: downloaded script has returned"
done
-echo "pl_boot: automatic boot process canceled by user"
+echo $(date "+%H:%M:%S") " pl_boot: automatic boot process canceled by user"