diff options
Diffstat (limited to 'Services/postgres/sx')
| -rw-r--r-- | Services/postgres/sx/postgresql.sh | 66 | ||||
| -rw-r--r-- | Services/postgres/sx/postgresql_run.sh | 7 | 
2 files changed, 73 insertions, 0 deletions
diff --git a/Services/postgres/sx/postgresql.sh b/Services/postgres/sx/postgresql.sh new file mode 100644 index 0000000..7b57905 --- /dev/null +++ b/Services/postgres/sx/postgresql.sh @@ -0,0 +1,66 @@ +#!/bin/bash +export TERM=dumb + +# Begin configuration before starting daemonized process +# and start generating host keys +function begin_config { +    echo "=> Begin postgresql configuration for host $HOSTNAME" +    postgresql-setup initdb +    postgresql-setup upgrade +    start_server +    update_rootuser +} + +# End configuration process just before starting daemon +function end_config { +    stop_server +    echo "=> End postgresql configuration ..." +} + +# Start the postgresql server in background. Used to perform config +# against the database structure such as user creation +function start_server { +    echo "===> Starting postgresql server ..." +    /usr/bin/postgres +} + +# Stop the postgresql server running in background.  +function stop_server { +    echo "===> Stopping postgresql server ..." +    killall postgres +} + +# Set new root password and grant permissions to all databases +function update_rootuser { +    if [ "$pgsql_newadminpwd" = "" ]; then +       export pgsql_newadminpwd=$(pwgen 13 1); +    fi +    local n=$pgsql_newadminpwd; +    echo "===> Update root user password and permission" +    sudo -u postgres psql -U postgres -d postgres -c "alter user postgres with password '$pgsql_newadminpwd';" +    unset pgsql_newadminpwd; +    export PGSQL_ROOTPWD=$n; +    echo "========================================================================"; +    echo "You can now connect to this PostgresQL Server using the following credentials:"; +    echo " "; +    echo "        user type : administrator"; +    echo "        username  : postgres"; +    echo "        password  : $n"; +    echo " "; +    echo "        psql -h <host> -p <port> --username=postgres; $n"; +    echo "========================================================================"; +    echo " "; +    return 0 +} + +# Start the postgresql server as a deamon and execute it inside  +# the running shell +function start_daemon { +    echo "=> Starting postgresql daemon ..." +    exec /usr/bin/postgres -D /var/lib/pgsql/data -c config_file=/var/lib/pgsql/postgresql.conf  +} + + +if [[ "$0" == *"postgresql.sh" && ! $1 = "" ]];then +    eval "$@";  +fi
\ No newline at end of file diff --git a/Services/postgres/sx/postgresql_run.sh b/Services/postgres/sx/postgresql_run.sh new file mode 100644 index 0000000..9504ff5 --- /dev/null +++ b/Services/postgres/sx/postgresql_run.sh @@ -0,0 +1,7 @@ +#!/bin/bash +source /sx/postgresql.sh + +begin_config +end_config + +start_daemon
\ No newline at end of file  | 
