123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #/bin/sh
- set -e
- usage()
- {
- cat << EOF
- NAME:
- machines - Create Test Environments for Docker Networking
- VERSION:
- 0.1
- USAGE:
- $0 <command> [command_options] [arguments...]
- COMMANDS:
- help
- Help and usage
- up <kv-store> <scale>
- Create environment with given KV store
- zookeeper | etcd | consul (default)
- Create N nodes, default = 2
- destroy
- Destroy Environment
- EOF
- }
- step() {
- printf "\033[0;36m-----> $@\033[0m\n"
- }
- up()
- {
- step "Creating KV Store Machine"
- docker-machine create \
- -d virtualbox \
- mh-kv
- step "KV Store is $1"
- step "Starting KV Container"
- case "$1" in
- etcd)
- cluster_store="cluster-store=etcd://$(docker-machine ip mh-kv):2379"
- docker $(docker-machine config mh-kv) run -d \
- -p "2379:2379" \
- -h "etcd" \
- --name "etcd" \
- quay.io/coreos/etcd:v2.2.1 \
- --listen-client-urls="http://0.0.0.0:2379" \
- --advertise-client-urls="http://$(docker-machine ip mh-kv):2379"
- ;;
- zookeeper)
- cluster_store="cluster-store=zk://$(docker-machine ip mh-kv):2181"
- docker $(docker-machine config mh-kv) run -d \
- -p "2181:2181" \
- -h "zookeeper" \
- --name "zookeeper" \
- tianon/zookeeper
- ;;
- *)
- cluster_store="cluster-store=consul://$(docker-machine ip mh-kv):8500"
- docker $(docker-machine config mh-kv) run -d \
- -p "8500:8500" \
- -h "consul" \
- --name "consul" \
- progrium/consul -server -bootstrap-expect 1
- ;;
- esac
- machines=$2
- if [ -z machines ]; then
- machines=2
- fi
- step "Creating $machines Machines"
-
- for i in $(seq $machines); do
- step "Creating machine $i"
- docker-machine create \
- -d virtualbox \
- --engine-opt="cluster-advertise=eth1:2376" \
- --engine-opt="$cluster_store" \
- mh-$i
- done
- }
- destroy()
- {
- for x in $(docker-machine ls | grep mh- | awk '{ print $1 }'); do
- docker-machine rm $x
- done
- }
- case "$1" in
- up)
- shift
- up $@
- ;;
- destroy)
- destroy $@
- ;;
- help)
- usage
- ;;
- *)
- usage
- ;;
- esac
|