120 lines
4.7 KiB
Bash
120 lines
4.7 KiB
Bash
#!/bin/bash
|
|
# Ver: 1.1 by Endial Fang (endial@126.com)
|
|
#
|
|
# 应用环境变量定义及初始化
|
|
|
|
# 通用设置
|
|
export ENV_DEBUG=${ENV_DEBUG:-false}
|
|
export ALLOW_ANONYMOUS_LOGIN="${ALLOW_ANONYMOUS_LOGIN:-no}"
|
|
|
|
# 通过读取变量名对应的 *_FILE 文件,获取变量值;如果对应文件存在,则通过传入参数设置的变量值会被文件中对应的值覆盖
|
|
# 变量优先级: *_FILE > 传入变量 > 默认值
|
|
app_env_file_lists=(
|
|
PG_POSTGRES_PASSWORD
|
|
PG_PASSWORD
|
|
PG_REPLICATION_PASSWORD
|
|
PG_LDAP_BIND_PASSWORD
|
|
)
|
|
for env_var in "${app_env_file_lists[@]}"; do
|
|
file_env_var="${env_var}_FILE"
|
|
if [[ -n "${!file_env_var:-}" ]]; then
|
|
export "${env_var}=$(< "${!file_env_var}")"
|
|
unset "${file_env_var}"
|
|
fi
|
|
done
|
|
unset app_env_file_lists
|
|
|
|
# 应用路径参数
|
|
export APP_HOME_DIR="/usr/local/${APP_NAME}"
|
|
export APP_DEF_DIR="/etc/${APP_NAME}"
|
|
export APP_CONF_DIR="/srv/conf/${APP_NAME}"
|
|
export APP_DATA_DIR="/srv/data/${APP_NAME}"
|
|
export APP_DATA_LOG_DIR="/srv/datalog/${APP_NAME}"
|
|
export APP_CACHE_DIR="/var/cache/${APP_NAME}"
|
|
export APP_RUN_DIR="/var/run/${APP_NAME}"
|
|
export APP_LOG_DIR="/var/log/${APP_NAME}"
|
|
export APP_CERT_DIR="/srv/cert/${APP_NAME}"
|
|
|
|
export PG_DATA_DIR="${APP_DATA_DIR}/data"
|
|
|
|
export PG_CONF_FILE="${APP_CONF_DIR}/postgresql.conf"
|
|
export PG_HBA_FILE="${APP_CONF_DIR}/pg_hba.conf"
|
|
export PG_RECOVERY_FILE="${PG_DATA_DIR}/recovery.conf"
|
|
export PG_IDENT_FILE="${PG_DATA_DIR}/pg_ident.conf"
|
|
export PG_EXT_PID_FILE="${APP_RUN_DIR}/postgresql.pid"
|
|
export PG_LOG_FILE="${APP_LOG_DIR}/postgresql.log"
|
|
|
|
# 应用配置参数
|
|
export PG_CLUSTER_APP_NAME=${PG_CLUSTER_APP_NAME:-cvcluster}
|
|
export PG_REPLICATION_MODE="${PG_REPLICATION_MODE:-primary}"
|
|
export PG_PRIMARY_HOST="${PG_PRIMARY_HOST:-}"
|
|
export PG_PRIMARY_PORT="${PG_PRIMARY_PORT:-5432}"
|
|
export PG_NUM_SYNCHRONOUS_REPLICAS="${PG_NUM_SYNCHRONOUS_REPLICAS:-0}"
|
|
export PG_REPLICATION_USER="${PG_REPLICATION_USER:-}"
|
|
export PG_REPLICATION_PASSWORD="${PG_REPLICATION_PASSWORD:-}"
|
|
export PG_SYNCHRONOUS_COMMIT_MODE="${PG_SYNCHRONOUS_COMMIT_MODE:-on}"
|
|
export PG_FSYNC="${PG_FSYNC:-on}"
|
|
export PG_INIT_MAX_TIMEOUT=${PG_INIT_MAX_TIMEOUT:-60}
|
|
export PG_INITDB_ARGS="${PG_INITDB_ARGS:-}"
|
|
export PG_INITDB_WAL_DIR="${PG_INITDB_WAL_DIR:-}"
|
|
export PG_PORT_NUMBER="${PG_PORT_NUMBER:-5432}"
|
|
export PG_SHARED_PRELOAD_LIBRARIES="${PG_SHARED_PRELOAD_LIBRARIES:-}"
|
|
export PG_USERNAME_CONNECTION_LIMIT="${PG_USERNAME_CONNECTION_LIMIT:-}"
|
|
export PG_POSTGRES_CONNECTION_LIMIT="${PG_POSTGRES_CONNECTION_LIMIT:-}"
|
|
|
|
export PG_ENABLE_LDAP="${PG_ENABLE_LDAP:-no}"
|
|
export PG_LDAP_URL="${PG_LDAP_URL:-}"
|
|
export PG_LDAP_PREFIX="${PG_LDAP_PREFIX:-}"
|
|
export PG_LDAP_SUFFIX="${PG_LDAP_SUFFIX:-}"
|
|
export PG_LDAP_SERVER="${PG_LDAP_SERVER:-}"
|
|
export PG_LDAP_PORT="${PG_LDAP_PORT:-}"
|
|
export PG_LDAP_SCHEME="${PG_LDAP_SCHEME:-}"
|
|
export PG_LDAP_TLS="${PG_LDAP_TLS:-}"
|
|
export PG_LDAP_BASE_DN="${PG_LDAP_BASE_DN:-}"
|
|
export PG_LDAP_BIND_DN="${PG_LDAP_BIND_DN:-}"
|
|
export PG_LDAP_BIND_PASSWORD="${PG_LDAP_BIND_PASSWORD:-}"
|
|
export PG_LDAP_SEARCH_ATTR="${PG_LDAP_SEARCH_ATTR:-}"
|
|
export PG_LDAP_SEARCH_FILTER="${PG_LDAP_SEARCH_FILTER:-}"
|
|
|
|
export PG_ENABLE_TLS="${PG_ENABLE_TLS:-no}"
|
|
export PG_TLS_CERT_FILE="${PG_TLS_CERT_FILE:-}"
|
|
export PG_TLS_KEY_FILE="${PG_TLS_KEY_FILE:-}"
|
|
export PG_TLS_CA_FILE="${PG_TLS_CA_FILE:-}"
|
|
export PG_TLS_CRL_FILE="${PG_TLS_CRL_FILE:-}"
|
|
export PG_TLS_PREFER_SERVER_CIPHERS="${PG_TLS_PREFER_SERVER_CIPHERS:-yes}"
|
|
|
|
export PG_PGAUDIT_LOG="${PG_PGAUDIT_LOG:-}"
|
|
export PG_PGAUDIT_LOG_CATALOG="${PG_PGAUDIT_LOG_CATALOG:-}"
|
|
export PG_LOG_CONNECTIONS="${PG_LOG_CONNECTIONS:-}"
|
|
export PG_LOG_DISCONNECTIONS="${PG_LOG_DISCONNECTIONS:-}"
|
|
export PG_LOG_HOSTNAME="${PG_LOG_HOSTNAME:-}"
|
|
export PG_CLIENT_MIN_MESSAGES="${PG_CLIENT_MIN_MESSAGES:-error}"
|
|
export PG_LOG_LINE_PREFIX="${PG_LOG_LINE_PREFIX:-}"
|
|
export PG_LOG_TIMEZONE="${PG_LOG_TIMEZONE:-}"
|
|
|
|
export PG_MAX_CONNECTIONS="${PG_MAX_CONNECTIONS:-}"
|
|
export PG_TCP_KEEPALIVES_IDLE="${PG_TCP_KEEPALIVES_IDLE:-}"
|
|
export PG_TCP_KEEPALIVES_INTERVAL="${PG_TCP_KEEPALIVES_INTERVAL:-}"
|
|
export PG_TCP_KEEPALIVES_COUNT="${PG_TCP_KEEPALIVES_COUNT:-}"
|
|
export PG_STATEMENT_TIMEOUT="${PG_STATEMENT_TIMEOUT:-}"
|
|
|
|
export PG_USERNAME="${PG_USERNAME:-postgres}"
|
|
export PG_PASSWORD="${PG_PASSWORD:-}"
|
|
export PG_DATABASE="${PG_DATABASE:-postgres}"
|
|
# 使用自定义用户名(非"postgres")时的管理员密码
|
|
[[ "${PG_USERNAME}" = "postgres" ]] && PG_POSTGRES_PASSWORD="${PG_PASSWORD}"
|
|
export PG_POSTGRES_PASSWORD="${PG_POSTGRES_PASSWORD:-}"
|
|
export PG_INITSCRIPTS_USERNAME="${PG_INITSCRIPTS_USERNAME:-${PG_USERNAME}}"
|
|
export PG_INITSCRIPTS_PASSWORD="${PG_INITSCRIPTS_PASSWORD:-${PG_PASSWORD}}"
|
|
|
|
export PGCONNECT_TIMEOUT="${PGCONNECT_TIMEOUT:-10}"
|
|
|
|
# 内部变量
|
|
export PG_FIRST_BOOT="yes"
|
|
|
|
export APP_DAEMON_USER="${APP_NAME}"
|
|
export APP_DAEMON_GROUP="${APP_NAME}"
|
|
|
|
# 个性化变量
|
|
|