Skip to content

Instantly share code, notes, and snippets.

@lvaylet
Last active January 1, 2018 17:19
Show Gist options
  • Save lvaylet/0906b3c647369eb0664d2493c6b1f665 to your computer and use it in GitHub Desktop.
Save lvaylet/0906b3c647369eb0664d2493c6b1f665 to your computer and use it in GitHub Desktop.
Install script for single node Flynn Cluster on Ubuntu 16.04 box
#!/bin/bash
# This script sets up a single node Flynn Cluster on your linux box.
# Fresh Flynn install with domain provided by the xip.io service.
#
# @date 1 Jan 2018
# @author Laurent Vaylet <laurent.vaylet@gmail.com>
#
# References:
# https://flynn.io/docs/installation/manual#bootstrap-flynn (Flynn documentation)
# https://gist.github.com/eduwass/c8c15b73329a0e9699c4 (original script)
# https://github.com/flynn/flynn/issues/1179 (explanations why bootstrap is stuck on wait postgres-wait)
# https://www.philiplb.de/flynn/2016/04/19/flynn-ufw/ (fix for wait postgres-wait issue)
echo '---- START SETUP ----'
echo '======================================'
echo '1. Install Flynn:'
echo '======================================'
curl -fsSL -o /tmp/install-flynn https://dl.flynn.io/install-flynn
sudo bash /tmp/install-flynn --clean # use --clean flag to start from scratch
echo '======================================'
echo '2. Init discovery service:'
echo '======================================'
DISCOVERY="$(sudo flynn-host init --init-discovery)"
echo $DISCOVERY
echo '======================================'
echo '3. Open ports in ufw:'
echo '======================================'
sudo ufw disable
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw allow 3000:3500/tcp
sudo ufw --force enable # auto confirm ssh prompt
echo '======================================'
echo '4. Start flynn-host service:'
echo '======================================'
sudo systemctl start flynn-host
sudo systemctl status flynn-host
echo '======================================'
echo '5. Allow new network interfaces:'
echo '======================================'
sudo ufw allow in on flynnbr0
sudo ufw allow in on flannel.1
sudo ufw allow in on veth*
echo '======================================'
echo '6. Change ufw forward policy:'
echo '======================================'
sudo sed -i 's/DEFAULT_FORWARD_POLICY=.*/DEFAULT_FORWARD_POLICY="ACCEPT"/' /etc/default/ufw
sudo ufw reload
echo '======================================'
echo '6. Boostrap Flynn'
echo '======================================'
IPADDR="$(curl -fsSL http://ipecho.net/plain)"
sudo \
CLUSTER_DOMAIN=${IPADDR}.xip.io \
flynn-host bootstrap \
--discovery ${DISCOVERY}
echo '---- FINISHED ----'
echo '*(Make a copy the output info - local client setup & dashboard login)*'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment