diff options
Diffstat (limited to 'script')
-rwxr-xr-x | script/dev-bucket.sh | 16 | ||||
-rwxr-xr-x | script/dev-cluster.sh | 54 | ||||
-rwxr-xr-x | script/dev-configure.sh | 15 | ||||
-rwxr-xr-x | script/dev-env.sh | 18 |
4 files changed, 103 insertions, 0 deletions
diff --git a/script/dev-bucket.sh b/script/dev-bucket.sh new file mode 100755 index 00000000..f07263f5 --- /dev/null +++ b/script/dev-bucket.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +SCRIPT_FOLDER="`dirname \"$0\"`" +REPO_FOLDER="${SCRIPT_FOLDER}/../" +GARAGE_DEBUG="${REPO_FOLDER}/target/debug/" +GARAGE_RELEASE="${REPO_FOLDER}/target/release/" +PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH" + +garage bucket create éprouvette +KEY_INFO=`garage key new --name opérateur` +ACCESS_KEY=`echo $KEY_INFO|grep -Po 'GK[a-f0-9]+'` +SECRET_KEY=`echo $KEY_INFO|grep -Po 'secret_key: "[a-f0-9]+'|grep -Po '[a-f0-9]+$'` +garage bucket allow éprouvette --read --write --key $ACCESS_KEY +echo "$ACCESS_KEY $SECRET_KEY" > /tmp/garage.s3 + +echo "Bucket s3://éprouvette created. Credentials stored in /tmp/garage.s3." diff --git a/script/dev-cluster.sh b/script/dev-cluster.sh new file mode 100755 index 00000000..756af234 --- /dev/null +++ b/script/dev-cluster.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +set -e + +SCRIPT_FOLDER="`dirname \"$0\"`" +REPO_FOLDER="${SCRIPT_FOLDER}/../" +GARAGE_DEBUG="${REPO_FOLDER}/target/debug/" +GARAGE_RELEASE="${REPO_FOLDER}/target/release/" +PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH" +FANCYCOLORS=("41m" "42m" "44m" "45m" "100m" "104m") + +export RUST_BACKTRACE=1 +export RUST_LOG=garage=info +MAIN_LABEL="\e[${FANCYCOLORS[0]}[main]\e[49m" + +for count in $(seq 1 3); do +CONF_PATH="/tmp/config.$count.toml" +LABEL="\e[${FANCYCOLORS[$count]}[$count]\e[49m" + +cat > $CONF_PATH <<EOF +block_size = 1048576 # objects are split in blocks of maximum this number of bytes +metadata_dir = "/tmp/garage-meta-$count" +data_dir = "/tmp/garage-data-$count" +rpc_bind_addr = "127.0.0.$count:3901" # the port other Garage nodes will use to talk to this node +bootstrap_peers = [ + "127.0.0.1:3901", + "127.0.0.2:3901", + "127.0.0.3:3901" +] +max_concurrent_rpc_requests = 12 +data_replication_factor = 3 +meta_replication_factor = 3 +meta_epidemic_fanout = 3 + +[s3_api] +api_bind_addr = "127.0.0.$count:3900" # the S3 API port, HTTP without TLS. Add a reverse proxy for the TLS part. +s3_region = "garage" # set this to anything. S3 API calls will fail if they are not made against the region set here. + +[s3_web] +bind_addr = "127.0.0.$count:3902" +EOF + +echo -en "$LABEL configuration written to $CONF_PATH\n" + +(garage server -c /tmp/config.$count.toml 2>&1|while read r; do echo -en "$LABEL $r\n"; done) & +done + +until garage status 2>&1|grep -q Healthy ; do + echo -en "${MAIN_LABEL} cluster starting...\n" + sleep 1 +done +echo -en "${MAIN_LABEL} cluster started\n" + +wait diff --git a/script/dev-configure.sh b/script/dev-configure.sh new file mode 100755 index 00000000..8b7392c6 --- /dev/null +++ b/script/dev-configure.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +SCRIPT_FOLDER="`dirname \"$0\"`" +REPO_FOLDER="${SCRIPT_FOLDER}/../" +GARAGE_DEBUG="${REPO_FOLDER}/target/debug/" +GARAGE_RELEASE="${REPO_FOLDER}/target/release/" +PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH" + +garage status \ + | grep UNCONFIGURED \ + | grep -Po '^[0-9a-f]+' \ + | while read id; do + garage node configure -d dc1 -n 100 $id + done + diff --git a/script/dev-env.sh b/script/dev-env.sh new file mode 100755 index 00000000..15cb965a --- /dev/null +++ b/script/dev-env.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +SCRIPT_FOLDER="`dirname \"$0\"`" +REPO_FOLDER="${SCRIPT_FOLDER}/../" +GARAGE_DEBUG="${REPO_FOLDER}/target/debug/" +GARAGE_RELEASE="${REPO_FOLDER}/target/release/" +PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH" + +ACCESS_KEY=`cat /tmp/garage.s3 |cut -d' ' -f1` +SECRET_KEY=`cat /tmp/garage.s3 |cut -d' ' -f2` + +alias s3grg="s3cmd \ + --host 127.0.0.1:3900 \ + --access_key=$ACCESS_KEY \ + --secret_key=$SECRET_KEY \ + --region=garage \ + --no-ssl" + |