mirror of
https://github.com/rancher/os.git
synced 2025-06-25 22:41:36 +00:00
53 lines
1.5 KiB
Bash
Executable File
53 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# This script will make a shell script that can be used as a cloud-init style user data script
|
|
# or run as root from a debian/ubuntu DigitalOcean VM to replace that distribution with
|
|
# RancherOS
|
|
#
|
|
# Its intended to be used for development, but can easily be modified to be more generally
|
|
# useful - make a Pull Request :)
|
|
#
|
|
# Note: this script will run caddy in your os/dist/artifacts/ directory, so don't leave it
|
|
# running unsupervised.
|
|
|
|
DIST="../../../dist/artifacts"
|
|
command -v caddy >/dev/null 2>&1 || { echo >&2 "I require caddy but it's not installed, see https://github.com/mholt/caddy#quick-start . Aborting."; exit 1; }
|
|
|
|
if [[ -e "dist/artifacts" ]]; then
|
|
cd scripts/hosting/digitalocean
|
|
fi
|
|
|
|
if [[ ! -e "$DIST" ]]; then
|
|
echo "Need to 'make release' so that there are files to serve. Aborting."
|
|
exit 1
|
|
fi
|
|
|
|
source ${DIST}/../../scripts/version
|
|
VMLINUX=$(ls -1 ${DIST}/ | grep "^vmlinuz-" | head -n1)
|
|
INITRD="initrd-${VERSION}"
|
|
|
|
IP=$(curl ipinfo.io/ip)
|
|
PORT=2115
|
|
|
|
#SOURCECONFIG="cloud-config.yml"
|
|
SOURCECONFIG="fedora-symbiote.yml"
|
|
CLOUDCONFIG="digitalocean.sh"
|
|
|
|
cat ${SOURCECONFIG} \
|
|
| sed "s|^URL_BASE.*$|URL_BASE=http://${IP}:${PORT}|g" \
|
|
| sed "s|^VMLINUX.*$|VMLINUX=${VMLINUX}|g" \
|
|
| sed "s|^INITRD.*$|INITRD=${INITRD}|g" \
|
|
> ${DIST}/${CLOUDCONFIG}
|
|
|
|
echo "Hosting a cloud-config script at http://${IP}:${PORT}/${CLOUDCONFIG}"
|
|
echo "Usage:"
|
|
echo
|
|
echo "#include"
|
|
echo "http://${IP}:${PORT}/${CLOUDCONFIG}"
|
|
echo
|
|
echo
|
|
|
|
cd ${DIST}
|
|
caddy -log stdout -port ${PORT}
|