61 lines
1.1 KiB
Bash
61 lines
1.1 KiB
Bash
![]() |
#!/bin/sh
|
||
|
|
||
|
|
||
|
if [ -z "$1" ]
|
||
|
then
|
||
|
echo "Usage: create-machines.sh [local|aws]"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
case $1 in
|
||
|
local)
|
||
|
DRIVER=virtualbox
|
||
|
;;
|
||
|
aws)
|
||
|
DRIVER=amazonec2
|
||
|
;;
|
||
|
*)
|
||
|
echo "Unknown option"
|
||
|
exit 1
|
||
|
esac
|
||
|
|
||
|
for MACHINE in master worker-1 worker-2
|
||
|
do
|
||
|
echo "Creating $MACHINE"
|
||
|
if [ "$DRIVER" = "aws" ]
|
||
|
then
|
||
|
docker-machine create \
|
||
|
--driver $DRIVER \
|
||
|
--amazonec2-instance-type "t2.medium" \
|
||
|
$MACHINE
|
||
|
else
|
||
|
docker-machine create \
|
||
|
--driver $DRIVER \
|
||
|
$MACHINE
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
sleep 3
|
||
|
echo " "
|
||
|
echo "Machines created"
|
||
|
echo "Configuring Swarm"
|
||
|
|
||
|
MASTER_IP=$(docker-machine ip master)
|
||
|
|
||
|
# create the swarm master
|
||
|
# connect local docker command to master machine
|
||
|
echo "Creating master"
|
||
|
eval $(docker-machine env master)
|
||
|
JOIN_CMD=$(docker swarm init --advertise-addr "$MASTER_IP" | awk '/^[ \t]+/{print $0}' -)
|
||
|
|
||
|
for MACHINE in $(docker-machine ls -q | fgrep worker)
|
||
|
do
|
||
|
echo "joining from $MACHINE"
|
||
|
eval $(docker-machine env $MACHINE)
|
||
|
$JOIN_CMD
|
||
|
done
|
||
|
|
||
|
echo " "
|
||
|
echo "Swarm is ready"
|
||
|
|