diff options
Diffstat (limited to 'Services/postgres')
| -rw-r--r-- | Services/postgres/Dockerfile | 29 | ||||
| -rw-r--r-- | Services/postgres/postgres_modify_pass.sh | 24 | ||||
| -rw-r--r-- | Services/postgres/postgres_run.sh | 14 | ||||
| -rw-r--r-- | Services/postgres/postgresql.conf | 599 | ||||
| -rw-r--r-- | Services/postgres/sx/postgresql.sh | 66 | ||||
| -rw-r--r-- | Services/postgres/sx/postgresql_run.sh | 7 | 
6 files changed, 684 insertions, 55 deletions
diff --git a/Services/postgres/Dockerfile b/Services/postgres/Dockerfile index e863a45..0f2a617 100644 --- a/Services/postgres/Dockerfile +++ b/Services/postgres/Dockerfile @@ -1,24 +1,19 @@  FROM startx/fedora  MAINTAINER Christophe LARUE <dev@startx.fr> -COPY postgres_run.sh postgres_modify_pass.sh /bin/ -RUN yum -y install \ -    mariadb-galera-common \ -    mariadb-galera-server \ -    mariadb-libs \ -    mariadb-server \ -    mariadb \ +RUN yum -y install postgresql postgresql-libs postgresql-server \      && yum clean all \ -    && mkdir -p /var/log/mysql \ -    && touch /var/log/mysql/.keep /var/lib/mysql/.keep \ -    && chown -R mysql:mysql /var/log/mysql /var/lib/mysql \ -    && chmod ug+rx /bin/postgres_* - -VOLUME	["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] -USER postgresql +    && mkdir -p /var/log/pgsql /var/lib/pgsql \ +    && touch /var/log/pgsql/.keep /var/lib/pgsql/.keep \ +    && chown -R postgres:postgres /var/log/pgsql /var/lib/pgsql +# Copy startx toolkit +COPY sx/* /sx/ +COPY postgresql.conf /var/lib/pgsql/postgresql.conf +RUN chmod ug+rx /sx/postgres* \ +    && chown -R postgres:postgres /sx/postgresql* +USER postgres  EXPOSE 5432 +VOLUME	["/var/log/pgsql", "/var/lib/pgsql"] -#CMD ["/usr/libexec/pgsqld"] -CMD ["/bin/postgres_run.sh"] -ONBUILD CMD ["/bin/postgres_run.sh"]
\ No newline at end of file +CMD ["/sx/postgresql_run.sh"]
\ No newline at end of file diff --git a/Services/postgres/postgres_modify_pass.sh b/Services/postgres/postgres_modify_pass.sh deleted file mode 100644 index d76e189..0000000 --- a/Services/postgres/postgres_modify_pass.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -if [ -f /.postgres_pass_modified ]; then -    echo "PostgreSQL 'postgres' user pass already modified!" -    exit 0 -fi - -#generate pasword -PASS=${POSTGRES_PASS:-$(pwgen -s 12 1)} -_word=$( [ ${POSTGRES_PASS} ] && echo "preset" || echo "random" ) - -echo "=> Modifying 'postgres' user with a ${_word} password in PostgreSQL" -sudo -u postgres psql -U postgres -d postgres -c "alter user postgres with password '$PASS';" -echo "=> Done!" -touch /.postgres_pass_modified - -echo "========================================================================" -echo "You can now connect to this PostgreSQL Server using:" -echo "" -echo "    psql -h <host> -p <port> --username=postgres" -echo "and enter the password '$PASS' when prompted" -echo "" -echo "Please remember to change the above password as soon as possible!" -echo "========================================================================"
\ No newline at end of file diff --git a/Services/postgres/postgres_run.sh b/Services/postgres/postgres_run.sh deleted file mode 100644 index dfbc232..0000000 --- a/Services/postgres/postgres_run.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -#change the password -service postgresql start >/dev/null 2>&1 -if [ ! -f /.postgres_pass_modified ]; then -	/postgres_modify_pass.sh -fi -service postgresql stop >/dev/null 2>&1 - -#start PostgreSQL  -sudo -u postgres /usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file=/etc/postgresql/9.3/main/postgresql.conf  - - -exec /usr/libexec/mysqld
\ No newline at end of file diff --git a/Services/postgres/postgresql.conf b/Services/postgres/postgresql.conf new file mode 100644 index 0000000..d297e47 --- /dev/null +++ b/Services/postgres/postgresql.conf @@ -0,0 +1,599 @@ +# ----------------------------- +# PostgreSQL configuration file +# ----------------------------- +# +# This file consists of lines of the form: +# +#   name = value +# +# (The "=" is optional.)  Whitespace may be used.  Comments are introduced with +# "#" anywhere on a line.  The complete list of parameter names and allowed +# values can be found in the PostgreSQL documentation. +# +# The commented-out settings shown in this file represent the default values. +# Re-commenting a setting is NOT sufficient to revert it to the default value; +# you need to reload the server. +# +# This file is read on server startup and when the server receives a SIGHUP +# signal.  If you edit the file on a running system, you have to SIGHUP the +# server for the changes to take effect, or use "pg_ctl reload".  Some +# parameters, which are marked below, require a server shutdown and restart to +# take effect. +# +# Any parameter can also be given as a command-line option to the server, e.g., +# "postgres -c log_connections=on".  Some parameters can be changed at run time +# with the "SET" SQL command. +# +# Memory units:  kB = kilobytes        Time units:  ms  = milliseconds +#                MB = megabytes                     s   = seconds +#                GB = gigabytes                     min = minutes +#                                                   h   = hours +#                                                   d   = days + + +#------------------------------------------------------------------------------ +# FILE LOCATIONS +#------------------------------------------------------------------------------ + +# The default values of these variables are driven from the -D command-line +# option or PGDATA environment variable, represented here as ConfigDir. + +#data_directory = 'ConfigDir'		# use data in another directory +					# (change requires restart) +#hba_file = 'ConfigDir/pg_hba.conf'	# host-based authentication file +					# (change requires restart) +#ident_file = 'ConfigDir/pg_ident.conf'	# ident configuration file +					# (change requires restart) + +# If external_pid_file is not explicitly set, no extra PID file is written. +#external_pid_file = ''			# write an extra PID file +					# (change requires restart) + + +#------------------------------------------------------------------------------ +# CONNECTIONS AND AUTHENTICATION +#------------------------------------------------------------------------------ + +# - Connection Settings - + +listen_addresses = '*' +#listen_addresses = 'localhost'		# what IP address(es) to listen on; +					# comma-separated list of addresses; +					# defaults to 'localhost'; use '*' for all +					# (change requires restart) +#port = 5432				# (change requires restart) +# Note: In RHEL/Fedora installations, you can't set the port number here; +# adjust it in the service file instead. +#max_connections = 100			# (change requires restart) +# Note:  Increasing max_connections costs ~400 bytes of shared memory per +# connection slot, plus lock space (see max_locks_per_transaction). +#superuser_reserved_connections = 3	# (change requires restart) +#unix_socket_directories = '/tmp'	# comma-separated list of directories +					# (change requires restart) +#unix_socket_group = ''			# (change requires restart) +#unix_socket_permissions = 0777		# begin with 0 to use octal notation +					# (change requires restart) +#bonjour = off				# advertise server via Bonjour +					# (change requires restart) +#bonjour_name = ''			# defaults to the computer name +					# (change requires restart) + +# - Security and Authentication - + +#authentication_timeout = 1min		# 1s-600s +#ssl = off				# (change requires restart) +#ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH'	# allowed SSL ciphers +					# (change requires restart) +#ssl_renegotiation_limit = 512MB	# amount of data between renegotiations +#ssl_cert_file = 'server.crt'		# (change requires restart) +#ssl_key_file = 'server.key'		# (change requires restart) +#ssl_ca_file = ''			# (change requires restart) +#ssl_crl_file = ''			# (change requires restart) +#password_encryption = on +#db_user_namespace = off + +# Kerberos and GSSAPI +#krb_server_keyfile = '' +#krb_srvname = 'postgres'		# (Kerberos only) +#krb_caseins_users = off + +# - TCP Keepalives - +# see "man 7 tcp" for details + +#tcp_keepalives_idle = 0		# TCP_KEEPIDLE, in seconds; +					# 0 selects the system default +#tcp_keepalives_interval = 0		# TCP_KEEPINTVL, in seconds; +					# 0 selects the system default +#tcp_keepalives_count = 0		# TCP_KEEPCNT; +					# 0 selects the system default + + +#------------------------------------------------------------------------------ +# RESOURCE USAGE (except WAL) +#------------------------------------------------------------------------------ + +# - Memory - + +#shared_buffers = 32MB			# min 128kB +					# (change requires restart) +#temp_buffers = 8MB			# min 800kB +#max_prepared_transactions = 0		# zero disables the feature +					# (change requires restart) +# Note:  Increasing max_prepared_transactions costs ~600 bytes of shared memory +# per transaction slot, plus lock space (see max_locks_per_transaction). +# It is not advisable to set max_prepared_transactions nonzero unless you +# actively intend to use prepared transactions. +#work_mem = 1MB				# min 64kB +#maintenance_work_mem = 16MB		# min 1MB +#max_stack_depth = 2MB			# min 100kB + +# - Disk - + +#temp_file_limit = -1			# limits per-session temp file space +					# in kB, or -1 for no limit + +# - Kernel Resource Usage - + +#max_files_per_process = 1000		# min 25 +					# (change requires restart) +#shared_preload_libraries = ''		# (change requires restart) + +# - Cost-Based Vacuum Delay - + +#vacuum_cost_delay = 0			# 0-100 milliseconds +#vacuum_cost_page_hit = 1		# 0-10000 credits +#vacuum_cost_page_miss = 10		# 0-10000 credits +#vacuum_cost_page_dirty = 20		# 0-10000 credits +#vacuum_cost_limit = 200		# 1-10000 credits + +# - Background Writer - + +#bgwriter_delay = 200ms			# 10-10000ms between rounds +#bgwriter_lru_maxpages = 100		# 0-1000 max buffers written/round +#bgwriter_lru_multiplier = 2.0		# 0-10.0 multipler on buffers scanned/round + +# - Asynchronous Behavior - + +#effective_io_concurrency = 1		# 1-1000; 0 disables prefetching + + +#------------------------------------------------------------------------------ +# WRITE AHEAD LOG +#------------------------------------------------------------------------------ + +# - Settings - + +#wal_level = minimal			# minimal, archive, or hot_standby +					# (change requires restart) +#fsync = on				# turns forced synchronization on or off +#synchronous_commit = on		# synchronization level; +					# off, local, remote_write, or on +#wal_sync_method = fsync		# the default is the first option +					# supported by the operating system: +					#   open_datasync +					#   fdatasync (default on Linux) +					#   fsync +					#   fsync_writethrough +					#   open_sync +#full_page_writes = on			# recover from partial page writes +#wal_buffers = -1			# min 32kB, -1 sets based on shared_buffers +					# (change requires restart) +#wal_writer_delay = 200ms		# 1-10000 milliseconds + +#commit_delay = 0			# range 0-100000, in microseconds +#commit_siblings = 5			# range 1-1000 + +# - Checkpoints - + +#checkpoint_segments = 3		# in logfile segments, min 1, 16MB each +#checkpoint_timeout = 5min		# range 30s-1h +#checkpoint_completion_target = 0.5	# checkpoint target duration, 0.0 - 1.0 +#checkpoint_warning = 30s		# 0 disables + +# - Archiving - + +#archive_mode = off		# allows archiving to be done +				# (change requires restart) +#archive_command = ''		# command to use to archive a logfile segment +				# placeholders: %p = path of file to archive +				#               %f = file name only +				# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f' +#archive_timeout = 0		# force a logfile segment switch after this +				# number of seconds; 0 disables + + +#------------------------------------------------------------------------------ +# REPLICATION +#------------------------------------------------------------------------------ + +# - Sending Server(s) - + +# Set these on the master and on any standby that will send replication data. + +#max_wal_senders = 0		# max number of walsender processes +				# (change requires restart) +#wal_keep_segments = 0		# in logfile segments, 16MB each; 0 disables +#wal_sender_timeout = 60s	# in milliseconds; 0 disables + +# - Master Server - + +# These settings are ignored on a standby server. + +#synchronous_standby_names = ''	# standby servers that provide sync rep +				# comma-separated list of application_name +				# from standby(s); '*' = all +#vacuum_defer_cleanup_age = 0	# number of xacts by which cleanup is delayed + +# - Standby Servers - + +# These settings are ignored on a master server. + +#hot_standby = off			# "on" allows queries during recovery +					# (change requires restart) +#max_standby_archive_delay = 30s	# max delay before canceling queries +					# when reading WAL from archive; +					# -1 allows indefinite delay +#max_standby_streaming_delay = 30s	# max delay before canceling queries +					# when reading streaming WAL; +					# -1 allows indefinite delay +#wal_receiver_status_interval = 10s	# send replies at least this often +					# 0 disables +#hot_standby_feedback = off		# send info from standby to prevent +					# query conflicts +#wal_receiver_timeout = 60s		# time that receiver waits for +					# communication from master +					# in milliseconds; 0 disables + + +#------------------------------------------------------------------------------ +# QUERY TUNING +#------------------------------------------------------------------------------ + +# - Planner Method Configuration - + +#enable_bitmapscan = on +#enable_hashagg = on +#enable_hashjoin = on +#enable_indexscan = on +#enable_indexonlyscan = on +#enable_material = on +#enable_mergejoin = on +#enable_nestloop = on +#enable_seqscan = on +#enable_sort = on +#enable_tidscan = on + +# - Planner Cost Constants - + +#seq_page_cost = 1.0			# measured on an arbitrary scale +#random_page_cost = 4.0			# same scale as above +#cpu_tuple_cost = 0.01			# same scale as above +#cpu_index_tuple_cost = 0.005		# same scale as above +#cpu_operator_cost = 0.0025		# same scale as above +#effective_cache_size = 128MB + +# - Genetic Query Optimizer - + +#geqo = on +#geqo_threshold = 12 +#geqo_effort = 5			# range 1-10 +#geqo_pool_size = 0			# selects default based on effort +#geqo_generations = 0			# selects default based on effort +#geqo_selection_bias = 2.0		# range 1.5-2.0 +#geqo_seed = 0.0			# range 0.0-1.0 + +# - Other Planner Options - + +#default_statistics_target = 100	# range 1-10000 +#constraint_exclusion = partition	# on, off, or partition +#cursor_tuple_fraction = 0.1		# range 0.0-1.0 +#from_collapse_limit = 8 +#join_collapse_limit = 8		# 1 disables collapsing of explicit +					# JOIN clauses + + +#------------------------------------------------------------------------------ +# ERROR REPORTING AND LOGGING +#------------------------------------------------------------------------------ + +# - Where to Log - + +#log_destination = 'stderr'		# Valid values are combinations of +					# stderr, csvlog, syslog, and eventlog, +					# depending on platform.  csvlog +					# requires logging_collector to be on. + +# This is used when logging to stderr: +logging_collector = on			# Enable capturing of stderr and csvlog +					# into log files. Required to be on for +					# csvlogs. +					# (change requires restart) + +# These are only used if logging_collector is on: +#log_directory = 'pg_log'		# directory where log files are written, +					# can be absolute or relative to PGDATA +log_filename = 'postgresql-%a.log'	# log file name pattern, +					# can include strftime() escapes +#log_file_mode = 0600			# creation mode for log files, +					# begin with 0 to use octal notation +log_truncate_on_rotation = on		# If on, an existing log file with the +					# same name as the new log file will be +					# truncated rather than appended to. +					# But such truncation only occurs on +					# time-driven rotation, not on restarts +					# or size-driven rotation.  Default is +					# off, meaning append to existing files +					# in all cases. +log_rotation_age = 1d			# Automatic rotation of logfiles will +					# happen after that time.  0 disables. +log_rotation_size = 0			# Automatic rotation of logfiles will +					# happen after that much log output. +					# 0 disables. + +# These are relevant when logging to syslog: +#syslog_facility = 'LOCAL0' +#syslog_ident = 'postgres' + +# This is only relevant when logging to eventlog (win32): +#event_source = 'PostgreSQL' + +# - When to Log - + +#client_min_messages = notice		# values in order of decreasing detail: +					#   debug5 +					#   debug4 +					#   debug3 +					#   debug2 +					#   debug1 +					#   log +					#   notice +					#   warning +					#   error + +#log_min_messages = warning		# values in order of decreasing detail: +					#   debug5 +					#   debug4 +					#   debug3 +					#   debug2 +					#   debug1 +					#   info +					#   notice +					#   warning +					#   error +					#   log +					#   fatal +					#   panic + +#log_min_error_statement = error	# values in order of decreasing detail: +					#   debug5 +					#   debug4 +					#   debug3 +					#   debug2 +					#   debug1 +					#   info +					#   notice +					#   warning +					#   error +					#   log +					#   fatal +					#   panic (effectively off) + +#log_min_duration_statement = -1	# -1 is disabled, 0 logs all statements +					# and their durations, > 0 logs only +					# statements running at least this number +					# of milliseconds + + +# - What to Log - + +#debug_print_parse = off +#debug_print_rewritten = off +#debug_print_plan = off +#debug_pretty_print = on +#log_checkpoints = off +#log_connections = off +#log_disconnections = off +#log_duration = off +#log_error_verbosity = default		# terse, default, or verbose messages +#log_hostname = off +#log_line_prefix = ''			# special values: +					#   %a = application name +					#   %u = user name +					#   %d = database name +					#   %r = remote host and port +					#   %h = remote host +					#   %p = process ID +					#   %t = timestamp without milliseconds +					#   %m = timestamp with milliseconds +					#   %i = command tag +					#   %e = SQL state +					#   %c = session ID +					#   %l = session line number +					#   %s = session start timestamp +					#   %v = virtual transaction ID +					#   %x = transaction ID (0 if none) +					#   %q = stop here in non-session +					#        processes +					#   %% = '%' +					# e.g. '<%u%%%d> ' +#log_lock_waits = off			# log lock waits >= deadlock_timeout +#log_statement = 'none'			# none, ddl, mod, all +#log_temp_files = -1			# log temporary files equal or larger +					# than the specified size in kilobytes; +					# -1 disables, 0 logs all temp files +#log_timezone = 'GMT' + + +#------------------------------------------------------------------------------ +# RUNTIME STATISTICS +#------------------------------------------------------------------------------ + +# - Query/Index Statistics Collector - + +#track_activities = on +#track_counts = on +#track_io_timing = off +#track_functions = none			# none, pl, all +#track_activity_query_size = 1024	# (change requires restart) +#update_process_title = on +#stats_temp_directory = 'pg_stat_tmp' + + +# - Statistics Monitoring - + +#log_parser_stats = off +#log_planner_stats = off +#log_executor_stats = off +#log_statement_stats = off + + +#------------------------------------------------------------------------------ +# AUTOVACUUM PARAMETERS +#------------------------------------------------------------------------------ + +#autovacuum = on			# Enable autovacuum subprocess?  'on' +					# requires track_counts to also be on. +#log_autovacuum_min_duration = -1	# -1 disables, 0 logs all actions and +					# their durations, > 0 logs only +					# actions running at least this number +					# of milliseconds. +#autovacuum_max_workers = 3		# max number of autovacuum subprocesses +					# (change requires restart) +#autovacuum_naptime = 1min		# time between autovacuum runs +#autovacuum_vacuum_threshold = 50	# min number of row updates before +					# vacuum +#autovacuum_analyze_threshold = 50	# min number of row updates before +					# analyze +#autovacuum_vacuum_scale_factor = 0.2	# fraction of table size before vacuum +#autovacuum_analyze_scale_factor = 0.1	# fraction of table size before analyze +#autovacuum_freeze_max_age = 200000000	# maximum XID age before forced vacuum +					# (change requires restart) +#autovacuum_multixact_freeze_max_age = 400000000	# maximum Multixact age +					# before forced vacuum +					# (change requires restart) +#autovacuum_vacuum_cost_delay = 20ms	# default vacuum cost delay for +					# autovacuum, in milliseconds; +					# -1 means use vacuum_cost_delay +#autovacuum_vacuum_cost_limit = -1	# default vacuum cost limit for +					# autovacuum, -1 means use +					# vacuum_cost_limit + + +#------------------------------------------------------------------------------ +# CLIENT CONNECTION DEFAULTS +#------------------------------------------------------------------------------ + +# - Statement Behavior - + +#search_path = '"$user",public'		# schema names +#default_tablespace = ''		# a tablespace name, '' uses the default +#temp_tablespaces = ''			# a list of tablespace names, '' uses +					# only default tablespace +#check_function_bodies = on +#default_transaction_isolation = 'read committed' +#default_transaction_read_only = off +#default_transaction_deferrable = off +#session_replication_role = 'origin' +#statement_timeout = 0			# in milliseconds, 0 is disabled +#lock_timeout = 0			# in milliseconds, 0 is disabled +#vacuum_freeze_min_age = 50000000 +#vacuum_freeze_table_age = 150000000 +#vacuum_multixact_freeze_min_age = 5000000 +#vacuum_multixact_freeze_table_age = 150000000 +#bytea_output = 'hex'			# hex, escape +#xmlbinary = 'base64' +#xmloption = 'content' + +# - Locale and Formatting - + +#datestyle = 'iso, mdy' +#intervalstyle = 'postgres' +#timezone = 'GMT' +#timezone_abbreviations = 'Default'     # Select the set of available time zone +					# abbreviations.  Currently, there are +					#   Default +					#   Australia +					#   India +					# You can create your own file in +					# share/timezonesets/. +#extra_float_digits = 0			# min -15, max 3 +#client_encoding = sql_ascii		# actually, defaults to database +					# encoding + +# These settings are initialized by initdb, but they can be changed. +#lc_messages = 'C'			# locale for system error message +					# strings +#lc_monetary = 'C'			# locale for monetary formatting +#lc_numeric = 'C'			# locale for number formatting +#lc_time = 'C'				# locale for time formatting + +# default configuration for text search +#default_text_search_config = 'pg_catalog.simple' + +# - Other Defaults - + +#dynamic_library_path = '$libdir' +#local_preload_libraries = '' + + +#------------------------------------------------------------------------------ +# LOCK MANAGEMENT +#------------------------------------------------------------------------------ + +#deadlock_timeout = 1s +#max_locks_per_transaction = 64		# min 10 +					# (change requires restart) +# Note:  Each lock table slot uses ~270 bytes of shared memory, and there are +# max_locks_per_transaction * (max_connections + max_prepared_transactions) +# lock table slots. +#max_pred_locks_per_transaction = 64	# min 10 +					# (change requires restart) + + +#------------------------------------------------------------------------------ +# VERSION/PLATFORM COMPATIBILITY +#------------------------------------------------------------------------------ + +# - Previous PostgreSQL Versions - + +#array_nulls = on +#backslash_quote = safe_encoding	# on, off, or safe_encoding +#default_with_oids = off +#escape_string_warning = on +#lo_compat_privileges = off +#quote_all_identifiers = off +#sql_inheritance = on +#standard_conforming_strings = on +#synchronize_seqscans = on + +# - Other Platforms and Clients - + +#transform_null_equals = off + + +#------------------------------------------------------------------------------ +# ERROR HANDLING +#------------------------------------------------------------------------------ + +#exit_on_error = off			# terminate session on any error? +#restart_after_crash = on		# reinitialize after backend crash? + + +#------------------------------------------------------------------------------ +# CONFIG FILE INCLUDES +#------------------------------------------------------------------------------ + +# These options allow settings to be loaded from files other than the +# default postgresql.conf. + +#include_dir = 'conf.d'			# include files ending in '.conf' from +					# directory 'conf.d' +#include_if_exists = 'exists.conf'	# include file only if it exists +#include = 'special.conf'		# include file + + +#------------------------------------------------------------------------------ +# CUSTOMIZED OPTIONS +#------------------------------------------------------------------------------ + +# Add settings for extensions here 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  | 
