mirror of
https://github.com/apache/incubator-kie-kogito-examples.git
synced 2025-09-20 04:15:49 +08:00
90 lines
2.5 KiB
Bash
90 lines
2.5 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
|
|
|
|
set -euxo pipefail
|
|
|
|
HOSTNAME=`hostname`
|
|
|
|
OPTS=`getopt -o h: --long hostname: -n 'parse-options' -- "$@"`
|
|
if [ $? != 0 ] ; then echo "Failed parsing options." >&2 ; exit 1 ; fi
|
|
|
|
echo "$OPTS"
|
|
eval set -- "$OPTS"
|
|
|
|
while true; do
|
|
case "$1" in
|
|
-h | --hostname ) HOSTNAME=$2; shift; shift ;;
|
|
-- ) shift; break ;;
|
|
* ) break ;;
|
|
esac
|
|
done
|
|
echo "Using HOSTNAME='$HOSTNAME'"
|
|
|
|
until mongo --eval "print(\"waited for connection\")"
|
|
do
|
|
echo "Wait for connection"
|
|
sleep .5
|
|
done
|
|
|
|
mongo localhost:27017/kogito <<-EOF
|
|
rs.initiate({
|
|
_id: "rs0",
|
|
members: [ { _id: 0, host: "${HOSTNAME}:27017" } ]
|
|
});
|
|
EOF
|
|
|
|
echo "Initiated replica set"
|
|
|
|
mongo localhost:27017/admin <<-EOF
|
|
db.createUser({ user: 'admin', pwd: 'admin', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
|
|
EOF
|
|
|
|
mongo -u admin -p admin localhost:27017/admin <<-EOF
|
|
db.runCommand({
|
|
createRole: "listDatabases",
|
|
privileges: [
|
|
{ resource: { cluster : true }, actions: ["listDatabases"]}
|
|
],
|
|
roles: []
|
|
});
|
|
|
|
db.runCommand({
|
|
createRole: "readChangeStream",
|
|
privileges: [
|
|
{ resource: { db: "", collection: ""}, actions: [ "find", "changeStream" ] }
|
|
],
|
|
roles: []
|
|
});
|
|
|
|
db.createUser({
|
|
user: "$MONGODB_USER",
|
|
pwd: "$MONGODB_PASSWORD",
|
|
roles: [
|
|
{ role: "readWrite", db: "kogito" },
|
|
{ role: "read", db: "local" },
|
|
{ role: "listDatabases", db: "admin" },
|
|
{ role: "readChangeStream", db: "admin" },
|
|
{ role: "read", db: "config" },
|
|
{ role: "read", db: "admin" }
|
|
]
|
|
});
|
|
EOF
|
|
echo "MongoDB initialized" |