Skip to content

Instantly share code, notes, and snippets.

@ajeetraina
Last active November 2, 2017 02:40
Show Gist options
  • Save ajeetraina/63707038eb3276f374aa1dde07280f15 to your computer and use it in GitHub Desktop.
Save ajeetraina/63707038eb3276f374aa1dde07280f15 to your computer and use it in GitHub Desktop.
Scripted Installation of M-node Master Node and N-node worker nodes on Apple macOS Sierra
#!/bin/bash
#Script to setup M-node master node and N-node Worker Node running Docker 1.13.1 on Apple Mac Virtualbox
echo "--Setting up Docker Machine---"
curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine && \
chmod +x /usr/local/bin/docker-machine
echo "--Verifying Docker Machine Installation--"
docker-machine version
echo "---Create manager-1"
docker-machine create -d virtualbox manager-1
manager_ip=$(docker-machine ip manager-1)
echo "---Swarm Init"
docker-machine ssh manager-1 docker swarm init --listen-addr ${manager_ip} --advertise-addr ${manager_ip}
printf "\n---Get Tokens\n"
manager_token=$(docker-machine ssh manager-1 docker swarm join-token -q manager)
worker_token=$(docker-machine ssh manager-1 docker swarm join-token -q worker)
echo ${manager_token}
echo ${worker_token}
for n in {2..3} ; do
printf "\n---Create manager-${n}\n"
docker-machine create -d virtualbox manager-${n}
ip=$(docker-machine ip manager-${n})
echo "--- Swarm Manager Join"
docker-machine ssh manager-${n} docker swarm join --listen-addr ${ip} --advertise-addr ${ip} --token ${manager_token} ${manager_ip}:2377
done
for n in {1..3} ; do
printf "\n---Create worker-${n}\n"
docker-machine create -d virtualbox worker-${n}
ip=$(docker-machine ip worker-${n})
echo "--- Swarm Worker Join"
docker-machine ssh worker-${n} docker swarm join --listen-addr ${ip} --advertise-addr ${ip} --token ${worker_token} ${manager_ip}:2377
done
printf "\n---Launching Visualizer\n"
docker-machine ssh manager-1 docker run -it -d -p 8080:8080 -e HOST=${manager_ip} -e PORT=8080 -v /var/run/docker.sock:/var/run/docker.sock manomarks/visualizer
printf "\n\n------------------------------------\n"
echo "To connect to your cluster..."
echo 'eval $(docker-machine env manager-1)'
echo "To visualize your cluster..."
echo "Open a browser to http://${manager_ip}:8080/"
@broxio
Copy link

broxio commented Mar 31, 2017

Thank you , deploy script working well Apple macOS Sierra

only minor typo change from "manager1" to "manager-1"

@ajeetraina
Copy link
Author

Thanks. I have fixed it.

@embano1
Copy link

embano1 commented May 16, 2017

Nice! How much resources should one account for this setup?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment