51 lines
954 B
Bash
Executable file
51 lines
954 B
Bash
Executable file
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
HOST="${1}"
|
|
DATABASE="${2}"
|
|
USERNAME="${3}"
|
|
|
|
function usage() {
|
|
echo "Usage: ${0} <hostname> <database> <username>"
|
|
echo "Example: ${0} db-1.example.com database_name username"
|
|
exit 1
|
|
}
|
|
if [ -z "${HOST}" ]; then
|
|
usage
|
|
fi
|
|
|
|
if [ -z "${DATABASE}" ]; then
|
|
usage
|
|
fi
|
|
|
|
if [ -z "${USERNAME}" ]; then
|
|
usage
|
|
fi
|
|
|
|
PASSWORD=$(openssl rand 32 | base64)
|
|
|
|
|
|
SQL="CREATE DATABASE ${DATABASE}; CREATE USER '${USERNAME}'@'%' IDENTIFIED BY '${PASSWORD}'; GRANT ALL PRIVILEGES ON ${DATABASE}.* TO '${USERNAME}'@'%';"
|
|
|
|
echo "Execute the following command on ${HOST} [Y/n]?"
|
|
echo "$SQL"
|
|
|
|
read -r x
|
|
case $x in
|
|
y|Y|"")
|
|
true
|
|
;;
|
|
*)
|
|
echo "script aborted"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
ssh -t "${HOST}" "docker exec -ti mariadb-db-1 mariadb -u root -p\$(puppet lookup --render-as s mariadb_root_password 2> /dev/null) -e \"${SQL}\""
|
|
|
|
|
|
echo "Command successful"
|
|
echo "Database: ${DATABASE}"
|
|
echo "Username: ${USERNAME}"
|
|
echo "Password: ${PASSWORD}"
|