Skip to content

Instantly share code, notes, and snippets.

@sierra-tango-echo
Last active October 2, 2019 13:00
Show Gist options
  • Save sierra-tango-echo/c6c1c0aa81f87636f47a4dbf9b87a903 to your computer and use it in GitHub Desktop.
Save sierra-tango-echo/c6c1c0aa81f87636f47a4dbf9b87a903 to your computer and use it in GitHub Desktop.
#!/bin/bash -e
RAMDISKNAME=base-1309191049
IMAGEFILE=${RAMDISKNAME}_live.squash
IMAGEURL=https://flight-images.s3.eu-west-2.amazonaws.com/${IMAGEFILE}
SUPPORTPACKFILE=${RAMDISKNAME}_live.supportpack
SUPPORTPACKURL=https://flight-images.s3.eu-west-2.amazonaws.com/${SUPPORTPACKFILE}
DEPLOYMENTDIR=/opt/flight/deployment/ramdisk
IMAGEDIR=${DEPLOYMENTDIR}/${RAMDISKNAME}
HTTPDIR=/deployment/ramdisk/${RAMDISKNAME}
PXEBOOT=/var/lib/tftpboot/boot/
PXEDEFAULT=/var/lib/tftpboot/pxelinux.cfg/default
if ! [ -d ${IMAGEDIR} ]; then
mkdir -p ${IMAGEDIR}
else
echo "An image by the name of '${RAMDISKNAME}' already exists" >&2
exit 1
fi
echo "Fetching Image.."
curl ${IMAGEURL} > ${IMAGEDIR}/${IMAGEFILE}
echo "Fetching Support Pack.."
curl ${SUPPORTPACKURL} > ${IMAGEDIR}/${SUPPORTPACKFILE}
echo "Installing boot files.."
tar -zxvf ${IMAGEDIR}/${SUPPORTPACKFILE} -C ${PXEBOOT}
echo "Creating login key.."
ssh-keygen -t rsa -N '' -f ${IMAGEDIR}/sshkey
echo "Creating default metadata.."
cat << EOF > ${IMAGEDIR}/meta-data
instance-id: iid-local01
dsmode: local
local-hostname: flightlive
hostname: flightlive
fqdn: flightlive.privatecluster.alces.network
public-keys:
- `cat ${IMAGEDIR}/sshkey.pub`
EOF
cat << EOF > ${IMAGEDIR}/user-data
#cloud-config
disable_root: 0
ssh_pwauth: 1
chpasswd:
list: |
root:0p3nflight
system_info:
default_user:
name: flightadmin
lock_passwd: true
gecos: Local Administrator
groups: [wheel, adm, systemd-journal]
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
shell: /bin/bash
EOF
echo "Adding entry to pxedefault.."
cat << EOF >> ${PXEDEFAULT}
LABEL flightdiskless-${RAMDISKNAME}
MENU LABEL flightdiskless-${RAMDISKNAME}
KERNEL boot/kernel-${RAMDISKNAME}
APPEND initrd=boot/initramfs-${RAMDISKNAME} root=live:http://10.10.0.1/${HTTPDIR}/${IMAGEFILE} rd.writable.fsimg=1 rw selinux=0 ds=nocloud-net;s=http://10.10.0.1/${HTTPDIR}/
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment