|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +set -e |
| 4 | +set -x |
| 5 | + |
| 6 | +function print_usage() { |
| 7 | + echo "Usage $0: [MONGO_VERSION] [CONFIGSVR_TYPE (CSRS or SCCC)] [mongodb-consistent-backup EXTRA FLAGS...]" |
| 8 | +} |
| 9 | + |
| 10 | +MONGO_VERSION=${1:-3.2} |
| 11 | +CONFIGSVR_TYPE=${2:-CSRS} |
| 12 | +MCB_EXTRA="${@:3}" |
| 13 | + |
| 14 | +pushd $(dirname $0) |
| 15 | + source $PWD/func.sh |
| 16 | + |
| 17 | + export MONGO_VERSION=${MONGO_VERSION} |
| 18 | + export DATA_MONGOD_FLAGS="--shardsvr" |
| 19 | + export MCB_EXTRA=${MCB_EXTRA} |
| 20 | + |
| 21 | + CONFIGSVR_REPLSET=csReplSet |
| 22 | + if [ "${CONFIGSVR_TYPE}" == "CSRS" ]; then |
| 23 | + export CONFIGSVR_FLAGS="--replSet=${CONFIGSVR_REPLSET}" |
| 24 | + export MONGOS_CONFIGDB="${CONFIGSVR_REPLSET}/mongo-cs-1:27017,mongo-cs-2:27017,mongo-cs-3:27017" |
| 25 | + echo "# Using CSRS-based config servers: '${MONGOS_CONFIGDB}'" |
| 26 | + elif [ "${CONFIGSVR_TYPE}" == "SCCC" ]; then |
| 27 | + export CONFIGSVR_FLAGS= |
| 28 | + export MONGOS_CONFIGDB="mongo-cs-1:27017,mongo-cs-2:27017" |
| 29 | + echo "# Using SCCC-based config servers: '${MONGOS_CONFIGDB}'" |
| 30 | + else |
| 31 | + echo "Unsupported CONFIGSVR_TYPE field: '${CONFIGSVR_TYPE}'! Supported: CSRS (default) or SCCC" |
| 32 | + print_usage |
| 33 | + exit 1 |
| 34 | + fi |
| 35 | + |
| 36 | + # start mongo-mongos service (which starts the whole cluster) |
| 37 | + echo "# Starting instances with docker-compose" |
| 38 | + docker-compose up -d mongo-mongos |
| 39 | + |
| 40 | + echo "# Waiting 10 seconds" |
| 41 | + sleep 10 |
| 42 | + |
| 43 | + if [ "${CONFIGSVR_TYPE}" == "CSRS" ]; then |
| 44 | + echo "# Initiating csReplSet (config server replica set)" |
| 45 | + doMongo mongo-mongos mongo-cs-1:27017 'rs.initiate({ |
| 46 | + _id: "csReplSet", |
| 47 | + configsvr: true, |
| 48 | + members: [ |
| 49 | + { _id: 0, host: "mongo-cs-1:27017" }, |
| 50 | + { _id: 1, host: "mongo-cs-2:27017" }, |
| 51 | + { _id: 2, host: "mongo-cs-3:27017" } |
| 52 | + ] |
| 53 | + })' |
| 54 | + fi |
| 55 | + |
| 56 | + echo "# Initiating rs0" |
| 57 | + doMongo mongo-mongos mongo-rs0-1:27017 'rs.initiate({ |
| 58 | + _id: "rs0", |
| 59 | + members: [ |
| 60 | + { _id: 0, host: "mongo-rs0-1:27017" }, |
| 61 | + { _id: 1, host: "mongo-rs0-2:27017" }, |
| 62 | + { _id: 2, host: "mongo-rs0-3:27017", priority: 0 } |
| 63 | + ] |
| 64 | + })' |
| 65 | + |
| 66 | + echo "# Waiting 10 seconds" |
| 67 | + sleep 10 |
| 68 | + |
| 69 | + echo "# Adding shard rs0" |
| 70 | + doMongo mongo-mongos mongo-mongos:27017 'sh.addShard("rs0/mongo-rs0-1:27017,mongo-rs0-2:27017,mongo-rs0-3:27017")' |
| 71 | + |
| 72 | + echo "# Starting mongodb_consistent_backup, cluster mode (in docker)" |
| 73 | + docker-compose up --abort-on-container-exit backup-cluster |
| 74 | + |
| 75 | + echo "# Stopping instances with docker-compose" |
| 76 | + docker-compose down |
| 77 | +popd |
0 commit comments