You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.5 KiB

#!/bin/bash
#https://gitee.com/inrgihc/greenplum_docker/tree/main
PASSWORD=gpadmin
ERROR_MSG="[ERROR] "
INFO_MSG="[INFO] "
function log() {
TIME=$(date +"%Y-%m-%d %H:%M:%S")
echo "$TIME $1"
}
function package_install() {
log "$INFO_MSG check command package : [ $1 ]"
if ! rpm -qa | grep -q "^$1"; then
yum install -y $1
package_check_ok
else
log "$INFO_MSG command [ $1 ] already installed."
fi
}
function package_check_ok() {
ret=$?
if [ $ret != 0 ]; then
log "$ERROR_MSG Install failed, error code is $ret, Check the error log."
exit 1
fi
}
function gpdb_install() {
log "$INFO_MSG Start to install greenplum for single node."
package=(epel-release wget)
for p in ${package[@]}; do
package_install $p
done
/usr/sbin/groupadd gpadmin
/usr/sbin/useradd gpadmin -g gpadmin
usermod -G gpadmin gpadmin
echo "${PASSWORD}" | passwd --stdin gpadmin
sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed -i -r 's/^.*StrictHostKeyChecking\s+\w+/StrictHostKeyChecking no/' /etc/ssh/ssh_config
sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
systemctl restart sshd
su gpadmin -l -c "ssh-keygen -t rsa -f ~/.ssh/id_rsa -q -P \"\""
su gpadmin -l -c "cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys"
su gpadmin -l -c "chmod 600 ~/.ssh/authorized_keys" &&
su gpadmin -l -c "ssh-keyscan -H localhost 2>/dev/null | grep rsa | awk '{print \"localhost \" \$2 \" \" \$3 }' >> ~/.ssh/known_hosts"
#wget "https://github.com.cnpmjs.org/greenplum-db/gpdb/releases/download/$GPDBVER/open-source-greenplum-db-$GPDBVER-rhel7-x86_64.rpm"
yum install -y "/open-source-greenplum-db-$GPDBVER-rhel7-x86_64.rpm"
rm -rf "/open-source-greenplum-db-$GPDBVER-rhel7-x86_64.rpm"
rm -f /home/gpadmin/gpinitsystem_config_singlenode
cat >/home/gpadmin/gpinitsystem_config_singlenode <<EOF
ARRAY_NAME="Greenplum Data Platform"
SEG_PREFIX=gpseg
PORT_BASE=6000
declare -a DATA_DIRECTORY=($DATADIR/primary $DATADIR/primary $DATADIR/primary $DATADIR/primary)
MASTER_HOSTNAME=localhost
MASTER_DIRECTORY=$DATADIR/master
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
EOF
cat >/home/gpadmin/gp_hosts_list <<EOF
localhost
EOF
cat >/home/gpadmin/initdb_gpdb.sql <<EOF
ALTER ROLE "gpadmin" WITH PASSWORD '$PASSWORD';
EOF
chown -R gpadmin:gpadmin /home/gpadmin
log "$INFO_MSG Install single node Greenplum cluster success!"
}
gpdb_install