diff options
23 files changed, 861 insertions, 88 deletions
| diff --git a/Services/dockerhub_run.sh b/Services/dockerhub_run.sh index 18c47a2..3b3d06d 100755 --- a/Services/dockerhub_run.sh +++ b/Services/dockerhub_run.sh @@ -6,4 +6,5 @@ docker run -d -p 27017:27017 --name="mongo" startx/sv-mongo  docker run -d -p 8000:8000 --name="nodejs" startx/sv-nodejs  docker run -d -p 82:80 --name="php" startx/sv-php  docker run -d -p 5432:5432 --name="postgres" startx/sv-postgres +docker run -d -p 2002:2002 --name="ooconv" startx/sv-ooconv  docker run -d -p 22022:22 --name="ssh" startx/sv-ssh
\ No newline at end of file diff --git a/Services/local_build.sh b/Services/local_build.sh index 47d1df6..a87ccb1 100755 --- a/Services/local_build.sh +++ b/Services/local_build.sh @@ -6,4 +6,5 @@ docker build -t sv-mongo Services/mongo/  docker build -t sv-nodejs Services/nodejs/  docker build -t sv-php Services/php/  docker build -t sv-postgres Services/postgres/ +docker build -t sv-ooconv Services/ooconv/  docker build -t sv-ssh Services/ssh/
\ No newline at end of file diff --git a/Services/local_run.sh b/Services/local_run.sh index 8c4a027..8381c59 100755 --- a/Services/local_run.sh +++ b/Services/local_run.sh @@ -6,4 +6,6 @@ docker run -d -p 27018:27017 --name="lbmongo" sv-mongo  docker run -d -p 8001:8000 --name="lbnodejs" sv-nodejs  docker run -d -p 83:80 --name="lbphp" sv-php  docker run -d -p 5433:5432 --name="lbpostgres" sv-postgres -docker run -d -p 22023:22 --name="lbssh" sv-ssh
\ No newline at end of file +docker run -d -p 2002:2002 --name="lbooconv" sv-ooconv +docker run -d -p 22023:22 --name="lbssh" sv-ssh + diff --git a/Services/memcache/Dockerfile b/Services/memcache/Dockerfile index 1038c60..b71fb6f 100644 --- a/Services/memcache/Dockerfile +++ b/Services/memcache/Dockerfile @@ -1,13 +1,10 @@  FROM startx/fedora  MAINTAINER Christophe LARUE <dev@startx.fr> -COPY memcache_run.sh /bin/ -RUN yum -y install memcached \ -    && yum clean all \ -    && chmod ug+rx /bin/memcache_* +RUN yum -y install memcached memcached-selinux && yum clean all  +COPY sx/* /sx/ +RUN chmod ug+rx /sx/memcache*   EXPOSE 11211 -#CMD ["memcached" , "-u" ," "daemon"] -CMD ["/bin/memcache_run.sh"] -ONBUILD CMD ["/bin/memcache_run.sh"]
\ No newline at end of file +CMD ["/sx/memcache_run.sh"]
\ No newline at end of file diff --git a/Services/memcache/README.md b/Services/memcache/README.md index b463346..a1c1fc7 100644 --- a/Services/memcache/README.md +++ b/Services/memcache/README.md @@ -16,6 +16,8 @@ Copy sources in your docker host  	cd startx-docker-images;  	git clone https://github.com/startxfr/docker-images.git . +Change configuration and personalize your base image. See sx/memcache_run.sh to perform some usefull when configuring or every time you run a container. +  Build the container  	docker build -t sv-memcache Services/memcache/ @@ -27,7 +29,7 @@ Build the container  ## Accessing server  access to the container itself -	docker exec -it memcache bash +	docker exec -it memcache /bin/bash  ## Related Resources  * [Sources files](https://github.com/startxfr/docker-images/tree/master/Services/memcache) diff --git a/Services/memcache/memcache_run.sh b/Services/memcache/memcache_run.sh deleted file mode 100644 index f41aae1..0000000 --- a/Services/memcache/memcache_run.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec memcached -u daemon
\ No newline at end of file diff --git a/Services/memcache/sx/memcache.sh b/Services/memcache/sx/memcache.sh new file mode 100644 index 0000000..d963a29 --- /dev/null +++ b/Services/memcache/sx/memcache.sh @@ -0,0 +1,41 @@ +#!/bin/bash +export TERM=dumb + +# Begin configuration before starting daemonized process +# and start generating host keys +function begin_config { +    echo "=> Begin memcached configuration for host $HOSTNAME" +} + +# End configuration process just before starting daemon +function end_config { +    stop_server +    echo "=> End memcached configuration ..." +} + +# Start the memcached server in background. Used to perform config +# against the database structure such as user creation +function start_server { +    echo "===> Starting memcached server ..." +    memcached -u daemon -d & +    sleep 8 +} + +# Stop the memcached server running in background.  +function stop_server { +    echo "===> Stopping memcached server ..." +    killall memcached +    sleep 8 +} + +# Start the memcached server as a deamon and execute it inside  +# the running shell +function start_daemon { +    echo "=> Starting memcached daemon ..." +    exec memcached -u daemon +} + + +if [[ "$0" == *"memcached.sh" && ! $1 = "" ]];then +    eval "$@";  +fi
\ No newline at end of file diff --git a/Services/memcache/sx/memcache_run.sh b/Services/memcache/sx/memcache_run.sh new file mode 100644 index 0000000..8108386 --- /dev/null +++ b/Services/memcache/sx/memcache_run.sh @@ -0,0 +1,7 @@ +#!/bin/bash +source /sx/memcache.sh + +begin_config +end_config + +start_daemon
\ No newline at end of file diff --git a/Services/nodejs/Dockerfile b/Services/nodejs/Dockerfile index 0dac7de..872648a 100644 --- a/Services/nodejs/Dockerfile +++ b/Services/nodejs/Dockerfile @@ -1,18 +1,17 @@  FROM startx/fedora  MAINTAINER Christophe LARUE <dev@startx.fr> -COPY nodejs_run.sh /bin/  RUN yum -y install nodejs npm \      && yum clean all \ -    && mkdir -p /var/www/html \ -    && mkdir -p /var/log/httpd \ -    && chmod ug+rx /bin/nodejs_* - -WORKDIR /src -COPY app.js /src/app.js +    && mkdir -p /var/nodejs /var/nodejs/app \ +    && chmod ug+rx /var/nodejs/app  +COPY sx/* /sx/ +COPY app/* /var/nodejs/app/ +RUN chmod ug+rx /sx/nodejs*   EXPOSE 8000 +VOLUME ["/var/nodejs/app"] + +ENV MAIN_APP /var/nodejs/app/app.js -#CMD ["node", "/src/app.js"] -CMD ["/bin/nodejs_run.sh"] -ONBUILD CMD ["/bin/nodejs_run.sh"]
\ No newline at end of file +CMD ["/sx/nodejs_run.sh"]
\ No newline at end of file diff --git a/Services/nodejs/README.md b/Services/nodejs/README.md index e3961df..30c37c0 100644 --- a/Services/nodejs/README.md +++ b/Services/nodejs/README.md @@ -28,7 +28,7 @@ access to the running webserver  access to the container itself -	docker exec -it nodejs bash +	docker exec -it nodejs /bin/bash  ## Related Resources  * [Sources files](https://github.com/startxfr/docker-images/tree/master/Services/nodejs) diff --git a/Services/nodejs/app.js b/Services/nodejs/app/app.js index 1dd5446..1dd5446 100644 --- a/Services/nodejs/app.js +++ b/Services/nodejs/app/app.js diff --git a/Services/nodejs/nodejs_run.sh b/Services/nodejs/nodejs_run.sh deleted file mode 100644 index b63a40c..0000000 --- a/Services/nodejs/nodejs_run.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec node /src/app.js
\ No newline at end of file diff --git a/Services/nodejs/sx/nodejs.sh b/Services/nodejs/sx/nodejs.sh new file mode 100644 index 0000000..fcf3ebb --- /dev/null +++ b/Services/nodejs/sx/nodejs.sh @@ -0,0 +1,40 @@ +#!/bin/bash +export TERM=dumb + +# Begin configuration before starting daemonized process +# and start generating host keys +function begin_config { +    echo "=> Begin nodejs configuration for host $HOSTNAME" +} + +# End configuration process just before starting daemon +function end_config { +    echo "=> End nodejs configuration ..." +} + +# Start the nodejs server in background. Used to perform config +# against the database structure such as user creation +function start_server { +    echo "===> Starting nodejs server ..." +    node $MAIN_APP & +    sleep 4 +} + +# Stop the nodejs server running in background.  +function stop_server { +    echo "===> Stopping nodejs server ..." +    killall node +    sleep 4 +} + +# Start the nodejs server as a deamon and execute it inside  +# the running shell +function start_daemon { +    echo "=> Starting nodejs daemon ..." +    exec node $MAIN_APP +} + + +if [[ "$0" == *"nodejs.sh" && ! $1 = "" ]];then +    eval "$@";  +fi
\ No newline at end of file diff --git a/Services/nodejs/sx/nodejs_run.sh b/Services/nodejs/sx/nodejs_run.sh new file mode 100644 index 0000000..875dea2 --- /dev/null +++ b/Services/nodejs/sx/nodejs_run.sh @@ -0,0 +1,7 @@ +#!/bin/bash +source /sx/nodejs.sh + +begin_config +end_config + +start_daemon
\ No newline at end of file diff --git a/Services/ooconv/Dockerfile b/Services/ooconv/Dockerfile index 0a50a0a..699f6de 100644 --- a/Services/ooconv/Dockerfile +++ b/Services/ooconv/Dockerfile @@ -1,12 +1,16 @@ +FROM startx/fedora +MAINTAINER Christophe LARUE <dev@startx.fr> +USER root +# Install packages and set up unoconv +RUN yum -y install unoconv libreoffice-headless libreoffice-writer libreoffice-calc pdftk gs \ +    && yum clean all \ +    && mkdir -p /tmp/ootmp  +# Copy startx toolkit +COPY sx/* /sx/ +RUN chmod ug+rx /sx/ooconv* -FROM       centos:latest -MAINTAINER startx dev@startx.fr +EXPOSE 2002 +VOLUME ["/tmp/ootmp"] -CMD rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm -CMD yum install --skip-broken -y --enablerepo=rpmforge unoconv libreoffice-headless libreoffice-writer libreoffice-calc -COPY unoconv /unoconv - -EXPOSE [2002] - -CMD ./unoconv --listener +CMD ["/sx/ooconv_run.sh"]
\ No newline at end of file diff --git a/Services/ooconv/sx/ooconv.sh b/Services/ooconv/sx/ooconv.sh new file mode 100644 index 0000000..b41447c --- /dev/null +++ b/Services/ooconv/sx/ooconv.sh @@ -0,0 +1,40 @@ +#!/bin/bash +export TERM=dumb + +# Begin configuration before starting daemonized process +# and start generating host keys +function begin_config { +    echo "=> Begin ooconv configuration for host $HOSTNAME" +} + +# End configuration process just before starting daemon +function end_config { +    echo "=> End ooconv configuration ..." +} + +# Start the ooconv server in background. Used to perform config +# against the database structure such as user creation +function start_server { +    echo "===> Starting ooconv server ..." +    unoconv --listener & +    sleep 4 +} + +# Stop the ooconv server running in background.  +function stop_server { +    echo "===> Stopping ooconv server ..." +    killall unoconv  +    killall soffice.bin  +} + +# Start the ooconv server as a deamon and execute it inside  +# the running shell +function start_daemon { +    echo "=> Starting ooconv daemon ..." +    exec unoconv --listener +} + + +if [[ "$0" == *"ooconv.sh" && ! $1 = "" ]];then +    eval "$@";  +fi
\ No newline at end of file diff --git a/Services/ooconv/sx/ooconv_run.sh b/Services/ooconv/sx/ooconv_run.sh new file mode 100644 index 0000000..fadc29c --- /dev/null +++ b/Services/ooconv/sx/ooconv_run.sh @@ -0,0 +1,7 @@ +#!/bin/bash +source /sx/ooconv.sh + +begin_config +end_config + +start_daemon
\ No newline at end of file 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 | 
