Last active
April 10, 2019 05:04
-
-
Save DovAmir/410e97f35f3b78530fe92d2793c859e3 to your computer and use it in GitHub Desktop.
Hybrid cloud swarm cluster
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
echo "" | |
echo "stopping cluster" | |
echo "================" | |
docker swarm leave --force # localhost leaves swarm | |
ssh aws1 docker swarm leave --force # aws1 leaves swarm | |
ssh azure3 docker swarm leave --force # azure3 leaves swarm | |
sleep 10 | |
ssh azure2 docker service rm mongo | |
#ssh azure2 docker service rm visualizer | |
ssh azure2 docker swarm leave --force # azure2 (manager) leaves swarm | |
echo "" | |
echo "creating new swarm cluster manager" | |
echo "==================================" | |
sleep 3 | |
export managerip=xxxxxxx # azure2 (manager) public ip | |
ssh azure2 docker swarm init --advertise-addr $managerip:2377 # init swarm cluster in azure2 | |
export token=$(ssh azure2 docker swarm join-token -q worker) # get token for joining cluster | |
sleep 3 | |
echo "" | |
echo "running docker swarm visualizer as service in swarm" | |
echo "===================================================" | |
ssh azure2 docker service create --name=visualizer --publish=2378:8080/tcp --constraint=node.role==manager --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock dockersamples/visualizer >/dev/null | |
echo "docker swarm visualizer is up and running on http://$managerip:2378/" | |
echo "" | |
echo "joining servers to cluster" | |
echo "===============================" | |
ssh azure3 docker swarm join --token $token $managerip:2377 # azure server join cluster | |
ssh aws1 docker swarm join --token $token $managerip:2377 # aws server join cluster | |
docker swarm join --token $token $managerip:2377 # local server join cluster | |
echo "" | |
echo "running mongodb containers as service" | |
echo "=====================================" | |
ssh azure2 docker service create --with-registry-auth --restart-condition on-failure --restart-delay 5s --name mongo mongo:3.5.6 > /dev/null & # run mongodb service | |
sleep 5 | |
echo "" | |
echo "scaling mongo to 5" | |
echo "==================" | |
ssh azure2 docker service scale mongo=5 > /dev/null & # scale mongodb to 5 instances | |
echo "" | |
echo "list docker servers in swarm" | |
echo "============================" | |
ssh azure2 docker node ls | |
echo "" | |
echo "list docker containers in swarm" | |
echo "===============================" | |
ssh azure2 docker service ls | |
echo "" | |
echo "finsished deploying swarm cluster" | |
echo "" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment