/usr/lib/maas/maas-test-enlistment is in maas-rack-controller 2.4.0~beta2-6865-gec43e47e6-0ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #!/bin/bash -e
# Copyright 2017 Canonical Ltd. This software is licensed under the
# GNU Affero General Public License version 3 (see the file LICENSE).
# This script tests enlistment by requesting boot loader configuration from
# MAAS, then parsing it to look for cloud-config and metadata server URLs.
# This allows the user to sanity-check that enlisting nodes will be able
# to reach the MAAS server. In addition, validates that required boot loader
# binaries exist, and prints their sha256 sums.
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 ====="
|