自动化部署postgresql脚本

[root@bfd01 shell]# cat install_postgresql.sh 
#!/bin/bash

#postgresql安装包名
POSTGRESQL_VERSION='postgresql-9.6.3'

#postgresql安装的位置
POSTGRESQL_INSTALL_PATH='/opt/postgresql'

#存放二进制包的路径
SOFTWARE_PATH='/opt/software'

#普通用户,用来启动postgresql数据库
PSQL_USER='postgres'

#1 步骤输出 紫色
#2 正确输出 绿色
#3 错误输出 红色
#4 提示输出 蓝色
#5 警告输出 黄色
function echo_fun(){
  if [ $# -ge 2 ];then
     params_num=$1
     shift 1
     params_mes=$@
  else
    echo_fun 3 请至少输入两个参数 echo_fun ..
    exit
  fi
  case $params_num in
        1)
        echo -e "\033[35;40;1m  ***************************** ${params_mes} *****************************\033[0m\r\n"
        ;;
        2)
        echo -e "\033[32;40;1m ${params_mes}\033[0m\r\n"
        ;;
        3)
        echo -e "\033[31;40;1m ${params_mes}\033[0m\r\n"
        ;;
        4)
        echo -e "\033[36;40;1m ${params_mes}\033[0m\r\n"
        ;;
        5)
        echo -e "\033[33;40;1m ${params_mes} \033[0m\r\n"
        ;;
        *)
        echo_fun 3 参数异常第一个参数应为1,2,3,4,5
        ;;
   esac
}


#部署
echo_fun 1 postgresql部署安装

#postgresql源码编译
echo_fun 4 编译安装,等待时间较长. . .
cd $SOFTWARE_PATH
tar -xf ${POSTGRESQL_VERSION}.tar.gz
cd ${POSTGRESQL_VERSION}

#编译的时候可能需要解决下面2个依赖
yum install -y readline-devel
yum install zlib-devel;

#编译
./configure --prefix=${POSTGRESQL_INSTALL_PATH}
sleep 15s
make && make install
sleep 15s


#配置环境变量和指定PGDATA位置
echo_fun 4 配置环境变量和指定PGDATA位置
echo -e 'export POSTGRESQL_HOME='${POSTGRESQL_INSTALL_PATH}'\nexport PATH=${POSTGRESQL_HOME}/bin:$PATH\nexport PGDATA='${POSTGRESQL_INSTALL_PATH}'/data\n'>> /etc/profile
source /etc/profile


#创建用户,用来启动postgresql
echo_fun 4 创建用户,用来启动postgresql
useradd  ${PSQL_USER}
cd ${POSTGRESQL_INSTALL_PATH}/../
chown -R ${PSQL_USER}:${PSQL_USER}  ${POSTGRESQL_INSTALL_PATH}



#初始化postgresql数据库
echo_fun 4 初始化postgresql数据库
su - ${PSQL_USER} <<EOF
initdb
sleep 10s
EOF


#修改postgresql的配置文件
echo_fun 4 修改postgresql的配置文件
cd ${POSTGRESQL_INSTALL_PATH}/data
sed -i 's/127.0.0.1\/32            trust/0.0.0.0\/0               md5/g' pg_hba.conf
sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" postgresql.conf
sed -i 's/#port = 5432/port = 5432/g' postgresql.conf


#启动postgresql
echo_fun 4 启动postgresql
su - ${PSQL_USER} <<EOF
pg_ctl -D ${POSTGRESQL_INSTALL_PATH}/data -l logfile start
EOF

#检查postgresql启动进程
psql_pid_num=`ps -ef |grep /opt/postgresql/data|grep -v grep|wc -l`
if [ $psql_pid_num -eq 1 ];then
  echo_fun 2 安装成功,并已经启动postgresql服务
else
  echo_fun 3 安装失败
fi

这里写图片描述
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/wyl9527/article/details/78823300
今日推荐