add: s3 setup scripts
This commit is contained in:
114
setup-cloudflare-r2.sh
Executable file
114
setup-cloudflare-r2.sh
Executable file
@@ -0,0 +1,114 @@
|
||||
#! /bin/sh
|
||||
|
||||
#
|
||||
# Connect to a Cloudflare's R2 storage using mochoa/s3fs
|
||||
#
|
||||
# Run this script on the Docker HOST to bind buckets using "linode-bucket"
|
||||
# -- Or any alias you give with "--alias" option -- driver name.
|
||||
# Please refer to https://hub.docker.com/r/mochoa/s3fs-volume-plugin.
|
||||
# You may bind to different buckets using different aliases.
|
||||
#
|
||||
|
||||
# parse args
|
||||
while test $# -ne 0; do
|
||||
if test -n "$(echo $1 | grep "=")"; then
|
||||
key=${1%=*};
|
||||
value=${1#*=};
|
||||
else
|
||||
key=$1;
|
||||
value=$2
|
||||
shift
|
||||
fi
|
||||
if test "${key}" = "-k" || test "${key}" = "--key"; then
|
||||
ACCESS_KEY="${value}";
|
||||
elif test "${key}" = "-s" || test "${key}" = "--secret"; then
|
||||
ACCESS_SECRET="${value}";
|
||||
elif test "${key}" = "-l" || test "${key}" = "--location"; then
|
||||
ACCOUNT_ID="${value}";
|
||||
elif test "${key}" = "-i" || test "${key}" = "--account-id"; then
|
||||
ACCOUNT_ID="${value}";
|
||||
elif test "${key}" = "-a" || test "${key}" = "--alias"; then
|
||||
PLUGIN_ALIAS="${value}";
|
||||
elif test "${key}" = "-u" || test "${key}" = "--user"; then
|
||||
if id "${value}" > /dev/null 2>&1; then
|
||||
USER_ID="$(id -u "${value}")";
|
||||
else
|
||||
USER_ID="$(id -u)";
|
||||
fi
|
||||
elif test "${key}" = "-g" || test "${key}" = "--group"; then
|
||||
if id "${value}" > /dev/null 2>&1; then
|
||||
GROUP_ID="$(id -g "${value}")";
|
||||
else
|
||||
GROUP_ID="$(id -g)";
|
||||
fi
|
||||
else
|
||||
echo "Invalid \"${key}\" option";
|
||||
exit 1;
|
||||
fi
|
||||
shift
|
||||
done;
|
||||
|
||||
if test -z "${PLUGIN_ALIAS}"; then
|
||||
PLUGIN_ALIAS='r2storage';
|
||||
fi
|
||||
|
||||
if test -z "${ACCOUNT_ID}" || test -z "${ACCOUNT_ID}"; then
|
||||
echo "You must provide the \"--account-id\" of the R2 bucket";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if test -z "${ACCESS_KEY}" || test -z "${ACCESS_SECRET}"; then
|
||||
echo "You must provide both \"--key\" and \"--secret\" options";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# test plugin
|
||||
PLUGIN_ALIAS="${PLUGIN_ALIAS}";
|
||||
PLUGIN_STATUS="$(docker plugin list \
|
||||
| grep "${PLUGIN_ALIAS}" \
|
||||
| rev \
|
||||
| cut -d " " -f 1 \
|
||||
| rev \
|
||||
)";
|
||||
|
||||
# install s3fs-volume-plugin if not installed and disable it
|
||||
if test -z "${PLUGIN_STATUS}"; then
|
||||
docker plugin install \
|
||||
mochoa/s3fs-volume-plugin \
|
||||
--alias "${PLUGIN_ALIAS}" \
|
||||
--grant-all-permissions \
|
||||
--disable;
|
||||
fi
|
||||
|
||||
# disable plugin to allow update settings
|
||||
docker volume ls | while read volume_info; do
|
||||
volume_driver="$(echo "${volume_info}" | xargs | cut -d " " -f 1)"
|
||||
volume_name="$(echo "${volume_info}" | xargs | cut -d " " -f 2)"
|
||||
if test -n "$(echo $volume_driver | grep "${PLUGIN_ALIAS}")"; then
|
||||
docker volume rm "${volume_name}" > /dev/null;
|
||||
fi
|
||||
done
|
||||
if test "${PLUGIN_STATUS}" = "true"; then
|
||||
docker plugin disable "${PLUGIN_ALIAS}" \
|
||||
> /dev/null \
|
||||
|| exit 1;
|
||||
fi
|
||||
|
||||
# set service
|
||||
SERVICE_DOMAIN="${SERVICE_DOMAIN:-r2.cloudflarestorage.com}";
|
||||
URL="https://${ACCOUNT_ID}.${SERVICE_DOMAIN}";
|
||||
DEFAULT_S3FSOPTS="url=${URL}/";
|
||||
|
||||
# set credentials
|
||||
docker plugin set \
|
||||
"${PLUGIN_ALIAS}" AWSACCESSKEYID="${ACCESS_KEY}";
|
||||
docker plugin set \
|
||||
"${PLUGIN_ALIAS}" AWSSECRETACCESSKEY="${ACCESS_SECRET}";
|
||||
|
||||
# set permissions
|
||||
DEFAULT_S3FSOPTS="uid=33,gid=33,allow_other,${DEFAULT_S3FSOPTS}";
|
||||
|
||||
docker plugin set "${PLUGIN_ALIAS}" DEFAULT_S3FSOPTS="${DEFAULT_S3FSOPTS}";
|
||||
|
||||
# enable plugin
|
||||
docker plugin enable "${PLUGIN_ALIAS}";
|
||||
108
setup-linode-objects.sh
Executable file
108
setup-linode-objects.sh
Executable file
@@ -0,0 +1,108 @@
|
||||
#! /bin/sh
|
||||
|
||||
#
|
||||
# Connect to a linode bucket using mochoa/s3fs
|
||||
#
|
||||
# Run this script on the Docker HOST to bind buckets using "linode-bucket"
|
||||
# -- Or any alias you give with "--alias" option -- driver name.
|
||||
# Please refer to https://hub.docker.com/r/mochoa/s3fs-volume-plugin.
|
||||
# You may bind to different buckets using different aliases.
|
||||
#
|
||||
|
||||
# parse args
|
||||
while test $# -ne 0; do
|
||||
if test -n "$(echo $1 | grep "=")"; then
|
||||
key=${1%=*};
|
||||
value=${1#*=};
|
||||
else
|
||||
key=$1;
|
||||
value=$2
|
||||
shift
|
||||
fi
|
||||
if test "${key}" = "-k" || test "${key}" = "--key"; then
|
||||
ACCESS_KEY="${value}";
|
||||
elif test "${key}" = "-s" || test "${key}" = "--secret"; then
|
||||
ACCESS_SECRET="${value}";
|
||||
elif test "${key}" = "-l" || test "${key}" = "--location"; then
|
||||
BUCKET_LOCATION="${value}";
|
||||
elif test "${key}" = "-a" || test "${key}" = "--alias"; then
|
||||
PLUGIN_ALIAS="${value}";
|
||||
elif test "${key}" = "-u" || test "${key}" = "--user"; then
|
||||
if id "${value}" > /dev/null 2>&1; then
|
||||
USER_ID="$(id -u "${value}")";
|
||||
else
|
||||
USER_ID="$(id -u)";
|
||||
fi
|
||||
elif test "${key}" = "-g" || test "${key}" = "--group"; then
|
||||
if id "${value}" > /dev/null 2>&1; then
|
||||
GROUP_ID="$(id -g "${value}")";
|
||||
else
|
||||
GROUP_ID="$(id -g)";
|
||||
fi
|
||||
else
|
||||
echo "Invalid \"${key}\" option";
|
||||
exit 1;
|
||||
fi
|
||||
shift
|
||||
done;
|
||||
|
||||
if test -z "${PLUGIN_ALIAS}"; then
|
||||
PLUGIN_ALIAS='linodeobjects';
|
||||
fi
|
||||
|
||||
if test -z "${ACCESS_KEY}" || test -z "${ACCESS_SECRET}"; then
|
||||
echo "You must provide both \"--key\" and \"--secret\" options";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# test plugin
|
||||
PLUGIN_ALIAS="${PLUGIN_ALIAS}";
|
||||
PLUGIN_STATUS="$(docker plugin list \
|
||||
| grep "${PLUGIN_ALIAS}" \
|
||||
| rev \
|
||||
| cut -d " " -f 1 \
|
||||
| rev \
|
||||
)";
|
||||
|
||||
# install s3fs-volume-plugin if not installed and disable it
|
||||
if test -z "${PLUGIN_STATUS}"; then
|
||||
docker plugin install \
|
||||
mochoa/s3fs-volume-plugin \
|
||||
--alias "${PLUGIN_ALIAS}" \
|
||||
--grant-all-permissions \
|
||||
--disable;
|
||||
fi
|
||||
|
||||
# disable plugin to allow update settings
|
||||
docker volume ls | while read volume_info; do
|
||||
volume_driver="$(echo "${volume_info}" | xargs | cut -d " " -f 1)"
|
||||
volume_name="$(echo "${volume_info}" | xargs | cut -d " " -f 2)"
|
||||
if test -n "$(echo $volume_driver | grep "${PLUGIN_ALIAS}")"; then
|
||||
docker volume rm "${volume_name}" > /dev/null;
|
||||
fi
|
||||
done
|
||||
if test "${PLUGIN_STATUS}" = "true"; then
|
||||
docker plugin disable "${PLUGIN_ALIAS}" \
|
||||
> /dev/null \
|
||||
|| exit 1;
|
||||
fi
|
||||
|
||||
# set service
|
||||
BUCKET_LOCATION="${BUCKET_LOCATION:-us-southeast-1}";
|
||||
SERVICE_DOMAIN="${SERVICE_DOMAIN:-linodeobjects.com}";
|
||||
URL="https://${BUCKET_LOCATION}.${SERVICE_DOMAIN}";
|
||||
DEFAULT_S3FSOPTS="url=${URL}/";
|
||||
|
||||
# set credentials
|
||||
docker plugin set \
|
||||
"${PLUGIN_ALIAS}" AWSACCESSKEYID="${ACCESS_KEY}";
|
||||
docker plugin set \
|
||||
"${PLUGIN_ALIAS}" AWSSECRETACCESSKEY="${ACCESS_SECRET}";
|
||||
|
||||
# set permissions
|
||||
DEFAULT_S3FSOPTS="uid=33,gid=33,allow_other,${DEFAULT_S3FSOPTS}";
|
||||
|
||||
docker plugin set "${PLUGIN_ALIAS}" DEFAULT_S3FSOPTS="${DEFAULT_S3FSOPTS}";
|
||||
|
||||
# enable plugin
|
||||
docker plugin enable "${PLUGIN_ALIAS}";
|
||||
Reference in New Issue
Block a user