-
-
Save nochristrequired/ad031944c11538af453e932741c73695 to your computer and use it in GitHub Desktop.
Script to fetch the default TFTP configuration from MAAS and fetch the cloud-config URL.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -e | |
TMPDIR="$(mktemp -d)" | |
function cleanup() { | |
rm -rf "$TMPDIR" | |
} | |
trap cleanup EXIT | |
server=${1:-localhost} | |
PXE_CFG_URL="tftp://$server/pxelinux.cfg/default-amd64-generic" | |
curl -s "$PXE_CFG_URL" > "$TMPDIR/pxe-config" | |
echo "" | |
echo "===== BEGIN PXE CONFIG =====" | |
cat "$TMPDIR/pxe-config" | |
echo "===== END PXE CONFIG =====" | |
GRUB_CFG_URL="tftp://$server/grub/grub.cfg-default-amd64-generic" | |
curl -s "$GRUB_CFG_URL" > "$TMPDIR/grub-config" | |
echo "" | |
echo "===== BEGIN GRUB CONFIG =====" | |
cat "$TMPDIR/grub-config" | |
echo "===== END GRUB CONFIG =====" | |
CONFIG_URL=$(cat "$TMPDIR/pxe-config" \ | |
| grep ' APPEND.*cloud-config-url' \ | |
| tr ' ' '\n' \ | |
| grep cloud-config-url \ | |
| cut -f2- -d=) | |
echo "" | |
echo "Found cloud-config-url: $CONFIG_URL" | |
curl -s "$CONFIG_URL" > "$TMPDIR/enlist-config" | |
echo "" | |
echo "===== BEGIN ENLISTMENT CLOUD-CONFIG =====" | |
cat "$TMPDIR/enlist-config" | |
echo "===== END ENLISTMENT CLOUD-CONFIG =====" | |
METADATA_URL=$(cat "$TMPDIR/enlist-config" \ | |
| grep 'metadata_url: ' \ | |
| awk '{ print $2 }') | |
echo "" | |
echo "Found metadata URL: $METADATA_URL" | |
LOADERS=" | |
tftp://$server/pxelinux.0 | |
tftp://$server/chain.c32 | |
tftp://$server/ifcpu64.c32 | |
tftp://$server/ldlinux.c32 | |
tftp://$server/libcom32.c32 | |
tftp://$server/libutil.c32 | |
tftp://$server/bootx64.efi | |
tftp://$server/grubx64.efi | |
tftp://$server/grubaa64.efi | |
tftp://$server/bootppc64.bin | |
" | |
set -o pipefail | |
echo "" | |
echo "===== BEGIN BOOT LOADER SHA256 SUMS =====" | |
for loader in $LOADERS; do | |
loader_sha256=$(curl -sqf "$loader" | sha256sum | awk '{ print $1 }' || touch $TMPDIR/not-found) | |
if [ -f $TMPDIR/not-found ]; then | |
loader_sha256="[WARNING: file not found]" | |
rm $TMPDIR/not-found | |
fi | |
printf "%40s\n%10s%s\n\n" "$loader" "" "$loader_sha256" | |
done | |
echo "===== END BOOT LOADER SHA256 SUMS =====" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment