1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/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}
|