Skip to content

Instantly share code, notes, and snippets.

@ycyr
Last active October 26, 2016 21:35
Show Gist options
  • Save ycyr/b0cfbc00c52669d5dbb759eaf1c03370 to your computer and use it in GitHub Desktop.
Save ycyr/b0cfbc00c52669d5dbb759eaf1c03370 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -e
# export DOTOKEN=XXXXXXXXX
DOREGION=nyc1
#export DOSSHKEY=XXXXXXXX
DOPRIVATE=true
DOOPTIONS=" --digitalocean-region=$DOREGION --digitalocean-private-networking=$DOPRIVATE --digitalocean-ssh-key-fingerprint=$DOSSHKEY"
MANAGERS=1
WORKERS=3
i=1
while [ $i -le $MANAGERS ]
do
docker-machine create --driver digitalocean --digitalocean-access-token=$DOTOKEN $DOOPTIONS do-manager-$i
i=$[$i+1]
done
PIP_MANAGER_1=$(docker-machine ssh do-manager-1 ifconfig eth1 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
i=1
while [ $i -le $WORKERS ]
do
docker-machine create --driver digitalocean --digitalocean-access-token=$DOTOKEN $DOOPTIONS do-worker-$i
i=$[$i+1]
done
eval $(docker-machine env do-manager-1)
docker swarm init \
--advertise-addr $PIP_MANAGER_1 \
--listen-addr $PIP_MANAGER_1:2377
TOKEN_MANAGER=$(docker swarm join-token -q manager)
TOKEN_WORKER=$(docker swarm join-token -q worker)
if [ $MANAGERS > 1 ] ; then
m=2
while [ $m -le $MANAGERS ]; do
eval $(docker-machine env do-manager-$m)
docker swarm join --token $TOKEN_MANAGER $PIP_MANAGER_1:2377
m=$[$m+1]
done
fi
if [ $WORKERS > 0 ] ; then
w=1
while [ $w -le $WORKERS ]; do
eval $(docker-machine env do-worker-$w)
docker swarm join --token $TOKEN_WORKER $PIP_MANAGER_1:2377
w=$[$w+1]
done
fi
eval $(docker-machine env do-manager-1)
docker node ls
## echo "$PIP_MANAGER_1 do-manager-1" >> /etc/hosts
### echo "{ \"insecure-registries\":[\"do-manager-1:5000\"] }" > /etc/docker/daemon.json
#### docker node update --availability drain do-manager-1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment