Enable replicaset on local MongoDB only (#10010)
This commit is contained in:
parent
fab552cafa
commit
2d8e7fee0d
|
|
@ -63,7 +63,31 @@ unset_unused_variables() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
check_initialized_db() {
|
check_mongodb_uri() {
|
||||||
|
echo "Check mongodb uri host"
|
||||||
|
isUriLocal=1
|
||||||
|
if [[ $APPSMITH_MONGODB_URI == *"localhost"* || $APPSMITH_MONGODB_URI == *"127.0.0.1"* ]]; then
|
||||||
|
echo "Use local MongoDB"
|
||||||
|
isUriLocal=0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
init_mongodb() {
|
||||||
|
if [[ $isUriLocal -eq 0 ]]; then
|
||||||
|
echo "Init database"
|
||||||
|
MONGO_DB_PATH="/appsmith-stacks/data/mongodb"
|
||||||
|
MONGO_LOG_PATH="$MONGO_DB_PATH/log"
|
||||||
|
MONGO_DB_KEY="$MONGO_DB_PATH/key"
|
||||||
|
mkdir -p "$MONGO_DB_PATH"
|
||||||
|
touch "$MONGO_LOG_PATH"
|
||||||
|
|
||||||
|
if [[ -f "$MONGO_DB_KEY" ]]; then
|
||||||
|
chmod-mongodb-key "$MONGO_DB_KEY"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
init_replica_set() {
|
||||||
echo 'Check initialized database'
|
echo 'Check initialized database'
|
||||||
shouldPerformInitdb=1
|
shouldPerformInitdb=1
|
||||||
for path in \
|
for path in \
|
||||||
|
|
@ -73,39 +97,23 @@ check_initialized_db() {
|
||||||
"$MONGO_DB_PATH/storage.bson"; do
|
"$MONGO_DB_PATH/storage.bson"; do
|
||||||
if [ -e "$path" ]; then
|
if [ -e "$path" ]; then
|
||||||
shouldPerformInitdb=0
|
shouldPerformInitdb=0
|
||||||
return
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
echo "Should initialize database"
|
|
||||||
}
|
if [[ $shouldPerformInitdb -gt 0 && $isUriLocal -eq 0 ]]; then
|
||||||
|
echo 'Init replica set local'
|
||||||
init_mongodb() {
|
|
||||||
echo "Init database"
|
|
||||||
MONGO_DB_PATH="/appsmith-stacks/data/mongodb"
|
|
||||||
MONGO_LOG_PATH="$MONGO_DB_PATH/log"
|
|
||||||
MONGO_DB_KEY="$MONGO_DB_PATH/key"
|
|
||||||
mkdir -p "$MONGO_DB_PATH"
|
|
||||||
touch "$MONGO_LOG_PATH"
|
|
||||||
|
|
||||||
check_initialized_db
|
|
||||||
|
|
||||||
if [[ -f "$MONGO_DB_KEY" ]]; then
|
|
||||||
chmod-mongodb-key "$MONGO_DB_KEY"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $shouldPerformInitdb -gt 0 ]]; then
|
|
||||||
# Start installed MongoDB service - Dependencies Layer
|
# Start installed MongoDB service - Dependencies Layer
|
||||||
mongod --fork --port 27017 --dbpath "$MONGO_DB_PATH" --logpath "$MONGO_LOG_PATH"
|
mongod --fork --port 27017 --dbpath "$MONGO_DB_PATH" --logpath "$MONGO_LOG_PATH"
|
||||||
echo "Waiting 10s for mongodb init"
|
echo "Waiting 10s for mongodb init"
|
||||||
sleep 10
|
sleep 10
|
||||||
bash "/opt/appsmith/templates/mongo-init.js.sh" "$MONGO_INITDB_ROOT_USERNAME" "$MONGO_INITDB_ROOT_PASSWORD" >"/appsmith-stacks/configuration/mongo-init.js"
|
bash "/opt/appsmith/templates/mongo-init.js.sh" "appsmith" "$AUTO_GEN_MONGO_PASSWORD" > "/appsmith-stacks/configuration/mongo-init.js"
|
||||||
mongo "127.0.0.1/${MONGO_INITDB_DATABASE}" /appsmith-stacks/configuration/mongo-init.js
|
mongo "127.0.0.1/appsmith" /appsmith-stacks/configuration/mongo-init.js
|
||||||
echo "Seeding db done"
|
echo "Seeding db done"
|
||||||
|
|
||||||
echo "Enable replica set"
|
echo "Enable replica set"
|
||||||
mongod --dbpath "$MONGO_DB_PATH" --shutdown || true
|
mongod --dbpath "$MONGO_DB_PATH" --shutdown || true
|
||||||
echo "Fork process"
|
echo "Fork process"
|
||||||
openssl rand -base64 756 >"$MONGO_DB_KEY"
|
openssl rand -base64 756 > "$MONGO_DB_KEY"
|
||||||
chmod-mongodb-key "$MONGO_DB_KEY"
|
chmod-mongodb-key "$MONGO_DB_KEY"
|
||||||
mongod --fork --port 27017 --dbpath "$MONGO_DB_PATH" --logpath "$MONGO_LOG_PATH" --replSet mr1 --keyFile "$MONGO_DB_KEY" --bind_ip localhost
|
mongod --fork --port 27017 --dbpath "$MONGO_DB_PATH" --logpath "$MONGO_LOG_PATH" --replSet mr1 --keyFile "$MONGO_DB_KEY" --bind_ip localhost
|
||||||
echo "Waiting 10s for mongodb init with replica set"
|
echo "Waiting 10s for mongodb init with replica set"
|
||||||
|
|
@ -113,6 +121,23 @@ init_mongodb() {
|
||||||
mongo "$APPSMITH_MONGODB_URI" --eval 'rs.initiate()'
|
mongo "$APPSMITH_MONGODB_URI" --eval 'rs.initiate()'
|
||||||
mongod --dbpath "$MONGO_DB_PATH" --shutdown || true
|
mongod --dbpath "$MONGO_DB_PATH" --shutdown || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ $isUriLocal -gt 0 ]]; then
|
||||||
|
# Check mongodb cloud replica set
|
||||||
|
echo "Check mongodb cloud replica set"
|
||||||
|
responseStatus=$(mongo "$APPSMITH_MONGODB_URI" --eval "rs.status()" | grep ok | xargs)
|
||||||
|
okString="ok : 1"
|
||||||
|
|
||||||
|
if [[ $responseStatus == *$okString* ]]; then
|
||||||
|
echo "Mongodb cloud replica set is enabled"
|
||||||
|
mongo "$APPSMITH_MONGODB_URI" --eval 'rs.initiate()'
|
||||||
|
else
|
||||||
|
echo -e "\033[0;31m********************************************************************\033[0m"
|
||||||
|
echo -e "\033[0;31m* Mongodb cloud replica set is not enabled *\033[0m"
|
||||||
|
echo -e "\033[0;31m********************************************************************\033[0m"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
chmod-mongodb-key() {
|
chmod-mongodb-key() {
|
||||||
|
|
@ -136,7 +161,7 @@ configure_supervisord() {
|
||||||
cp -f "$SUPERVISORD_CONF_PATH/application_process/"*.conf /etc/supervisor/conf.d
|
cp -f "$SUPERVISORD_CONF_PATH/application_process/"*.conf /etc/supervisor/conf.d
|
||||||
|
|
||||||
# Disable services based on configuration
|
# Disable services based on configuration
|
||||||
if [[ "$APPSMITH_MONGODB_URI" = "mongodb://appsmith:$MONGO_INITDB_ROOT_PASSWORD@localhost/appsmith" ]]; then
|
if [[ $isUriLocal -eq 0 ]]; then
|
||||||
cp "$SUPERVISORD_CONF_PATH/mongodb.conf" /etc/supervisor/conf.d/
|
cp "$SUPERVISORD_CONF_PATH/mongodb.conf" /etc/supervisor/conf.d/
|
||||||
fi
|
fi
|
||||||
if [[ "$APPSMITH_REDIS_URL" = "redis://127.0.0.1:6379" ]]; then
|
if [[ "$APPSMITH_REDIS_URL" = "redis://127.0.0.1:6379" ]]; then
|
||||||
|
|
@ -152,7 +177,9 @@ configure_supervisord() {
|
||||||
# Main Section
|
# Main Section
|
||||||
init_env_file
|
init_env_file
|
||||||
unset_unused_variables
|
unset_unused_variables
|
||||||
|
check_mongodb_uri
|
||||||
init_mongodb
|
init_mongodb
|
||||||
|
init_replica_set
|
||||||
mount_letsencrypt_directory
|
mount_letsencrypt_directory
|
||||||
configure_supervisord
|
configure_supervisord
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,12 +67,8 @@ APPSMITH_RECAPTCHA_SITE_KEY=
|
||||||
APPSMITH_RECAPTCHA_SECRET_KEY=
|
APPSMITH_RECAPTCHA_SECRET_KEY=
|
||||||
APPSMITH_RECAPTCHA_ENABLED=
|
APPSMITH_RECAPTCHA_ENABLED=
|
||||||
|
|
||||||
MONGO_INITDB_ROOT_USERNAME=appsmith
|
APPSMITH_MONGODB_URI=mongodb://appsmith:$MONGO_PASSWORD@localhost:27017/appsmith
|
||||||
MONGO_INITDB_ROOT_PASSWORD=$MONGO_PASSWORD
|
APPSMITH_API_BASE_URL=http://localhost:8080/api/v1
|
||||||
MONGO_INITDB_DATABASE=appsmith
|
|
||||||
APPSMITH_MONGO_HOST=localhost:27017
|
|
||||||
APPSMITH_MONGODB_URI=mongodb://appsmith:$MONGO_PASSWORD@localhost/appsmith
|
|
||||||
APPSMITH_API_BASE_URL=http://localhost:8080
|
|
||||||
|
|
||||||
APPSMITH_REDIS_URL=redis://127.0.0.1:6379
|
APPSMITH_REDIS_URL=redis://127.0.0.1:6379
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user