Updated the sample scripts to allow ssh login user and ssh key file to be set using...
authorBo Peng <pengbo@sraoss.co.jp>
Mon, 30 May 2022 16:10:06 +0000 (01:10 +0900)
committerBo Peng <pengbo@sraoss.co.jp>
Mon, 30 May 2022 16:10:06 +0000 (01:10 +0900)
src/sample/scripts/failover.sh.sample
src/sample/scripts/follow_primary.sh.sample
src/sample/scripts/pgpool_remote_start.sample
src/sample/scripts/recovery_1st_stage.sample
src/sample/scripts/replication_mode_recovery_1st_stage.sample
src/sample/scripts/replication_mode_recovery_2nd_stage.sample

index 44b55444c0e49129e28ea5c9f0eeb8be8c502a02..713992d3c24a4b0c0566bd331c9bbb6aa2ea1289 100755 (executable)
@@ -33,6 +33,8 @@ OLD_PRIMARY_NODE_PORT="${12}"
 
 PGHOME=/usr/pgsql-14
 REPL_SLOT_NAME=${FAILED_NODE_HOST//[-.]/_}
+POSTGRESQL_STARTUP_USER=postgres
+SSH_KEY_FILE=id_rsa_pgpool
 
 
 echo failover.sh: start: failed_node_id=$FAILED_NODE_ID failed_host=$FAILED_NODE_HOST \
@@ -45,10 +47,10 @@ if [ $NEW_MAIN_NODE_ID -lt 0 ]; then
 fi
 
 ## Test passwordless SSH
-ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@${NEW_MAIN_NODE_HOST} -i ~/.ssh/id_rsa_pgpool ls /tmp > /dev/null
+ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@${NEW_MAIN_NODE_HOST} -i ~/.ssh/${SSH_KEY_FILE} ls /tmp > /dev/null
 
 if [ $? -ne 0 ]; then
-    echo failover.sh: passwordless SSH to postgres@${NEW_MAIN_NODE_HOST} failed. Please setup passwordless SSH.
+    echo failover.sh: passwordless SSH to ${POSTGRESQL_STARTUP_USER}@${NEW_MAIN_NODE_HOST} failed. Please setup passwordless SSH.
     exit 1
 fi
 
@@ -71,7 +73,7 @@ fi
 echo failover.sh: primary node is down, promote new_main_node_id=$NEW_MAIN_NODE_ID on ${NEW_MAIN_NODE_HOST}.
 
 ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
-    postgres@${NEW_MAIN_NODE_HOST} -i ~/.ssh/id_rsa_pgpool ${PGHOME}/bin/pg_ctl -D ${NEW_MAIN_NODE_PGDATA} -w promote
+    ${POSTGRESQL_STARTUP_USER}@${NEW_MAIN_NODE_HOST} -i ~/.ssh/${SSH_KEY_FILE} ${PGHOME}/bin/pg_ctl -D ${NEW_MAIN_NODE_PGDATA} -w promote
 
 if [ $? -ne 0 ]; then
     echo ERROR: failover.sh: end: failover failed
index 519aa79932fda4ce02975a70571a7f19d12452aa..8be4348ae8face78d782c0ba5f717f3b404cd36b 100755 (executable)
@@ -37,6 +37,8 @@ PCP_USER=pgpool
 PGPOOL_PATH=/usr/bin
 PCP_PORT=9898
 REPL_SLOT_NAME=${NODE_HOST//[-.]/_}
+POSTGRESQL_STARTUP_USER=postgres
+SSH_KEY_FILE=id_rsa_pgpool
 
 echo follow_primary.sh: start: Standby node ${NODE_ID}
 
@@ -49,10 +51,10 @@ if [ $? -ne 0 ]; then
 fi
 
 # Test passwordless SSH
-ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@${NEW_PRIMARY_NODE_HOST} -i ~/.ssh/id_rsa_pgpool ls /tmp > /dev/null
+ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@${NEW_PRIMARY_NODE_HOST} -i ~/.ssh/${SSH_KEY_FILE} ls /tmp > /dev/null
 
 if [ $? -ne 0 ]; then
-    echo follow_main.sh: passwordless SSH to postgres@${NEW_PRIMARY_NODE_HOST} failed. Please setup passwordless SSH.
+    echo follow_main.sh: passwordless SSH to ${POSTGRESQL_STARTUP_USER}@${NEW_PRIMARY_NODE_HOST} failed. Please setup passwordless SSH.
     exit 1
 fi
 
@@ -76,7 +78,7 @@ if [ $? -ne 0 ]; then
     echo follow_primary.sh: create replication slot \"${REPL_SLOT_NAME}\" failed. You may need to create replication slot manually.
 fi
 
-ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@${NODE_HOST} -i ~/.ssh/id_rsa_pgpool "
+ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@${NODE_HOST} -i ~/.ssh/${SSH_KEY_FILE} "
 
     set -o errexit
 
@@ -109,7 +111,7 @@ EOT
 if [ $? -ne 0 ]; then
     echo follow_primary.sh: end: pg_rewind failed. Try pg_basebackup.
 
-    ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@${NODE_HOST} -i ~/.ssh/id_rsa_pgpool "
+    ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@${NODE_HOST} -i ~/.ssh/${SSH_KEY_FILE} "
 
         set -o errexit
 
@@ -149,7 +151,7 @@ EOT
 
     # start Standby node on ${NODE_HOST}
     ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
-        postgres@${NODE_HOST} -i ~/.ssh/id_rsa_pgpool $PGHOME/bin/pg_ctl -l /dev/null -w -D ${NODE_PGDATA} start
+        ${POSTGRESQL_STARTUP_USER}@${NODE_HOST} -i ~/.ssh/${SSH_KEY_FILE} $PGHOME/bin/pg_ctl -l /dev/null -w -D ${NODE_PGDATA} start
 
 fi
 
index 345185d4f3ca038dd5306e7320fb008bf3439367..dc1424f6fc54d4531ddd5879034ef2e90985ca18 100755 (executable)
@@ -7,19 +7,21 @@ DEST_NODE_HOST="$1"
 DEST_NODE_PGDATA="$2"
 
 PGHOME=/usr/pgsql-14
+POSTGRESQL_STARTUP_USER=postgres
+SSH_KEY_FILE=id_rsa_pgpool
 
 echo pgpool_remote_start: start: remote start Standby node $DEST_NODE_HOST
 
 ## Test passwordless SSH
-ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@${DEST_NODE_HOST} -i ~/.ssh/id_rsa_pgpool ls /tmp > /dev/null
+ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@${DEST_NODE_HOST} -i ~/.ssh/${SSH_KEY_FILE} ls /tmp > /dev/null
 
 if [ $? -ne 0 ]; then
-    echo ERROR: pgpool_remote_start: passwordless SSH to postgres@${DEST_NODE_HOST} failed. Please setup passwordless SSH.
+    echo ERROR: pgpool_remote_start: passwordless SSH to ${POSTGRESQL_STARTUP_USER}@${DEST_NODE_HOST} failed. Please setup passwordless SSH.
     exit 1
 fi
 
 ## Start Standby node
-ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@${DEST_NODE_HOST} -i ~/.ssh/id_rsa_pgpool "
+ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@${DEST_NODE_HOST} -i ~/.ssh/${SSH_KEY_FILE} "
     $PGHOME/bin/pg_ctl -l /dev/null -w -D ${DEST_NODE_PGDATA} status
 
     if [ \$? -eq 0 ]; then
index c93fdb47e00644dd103df2f23da569b119c0096f..f178f492d2e5853f1e59ba36ca89492e83c06d2c 100755 (executable)
@@ -15,14 +15,16 @@ PGHOME=/usr/pgsql-14
 ARCHIVEDIR=/var/lib/pgsql/archivedir
 REPLUSER=repl
 REPL_SLOT_NAME=${DEST_NODE_HOST//[-.]/_}
+POSTGRESQL_STARTUP_USER=postgres
+SSH_KEY_FILE=id_rsa_pgpool
 
 echo recovery_1st_stage: start: pg_basebackup for Standby node $DEST_NODE_ID
 
 ## Test passwordless SSH
-ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@${DEST_NODE_HOST} -i ~/.ssh/id_rsa_pgpool ls /tmp > /dev/null
+ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@${DEST_NODE_HOST} -i ~/.ssh/${SSH_KEY_FILE} ls /tmp > /dev/null
 
 if [ $? -ne 0 ]; then
-    echo recovery_1st_stage: passwordless SSH to postgres@${DEST_NODE_HOST} failed. Please setup passwordless SSH.
+    echo recovery_1st_stage: passwordless SSH to ${POSTGRESQL_STARTUP_USER}@${DEST_NODE_HOST} failed. Please setup passwordless SSH.
     exit 1
 fi
 
@@ -43,7 +45,7 @@ if [ $? -ne 0 ]; then
 fi
 
 ## Execute pg_basebackup to recovery Standby node
-ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@$DEST_NODE_HOST -i ~/.ssh/id_rsa_pgpool "
+ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@$DEST_NODE_HOST -i ~/.ssh/${SSH_KEY_FILE} "
 
     set -o errexit
 
index c5b3953212d563a1f8f86dd3889464ea8575e614..7bcd5f3affb253cf3023e7f076fa74904bc98d61 100755 (executable)
@@ -15,14 +15,16 @@ PGHOME=/usr/pgsql-14
 ARCHIVEDIR=/var/lib/pgsql/archivedir
 REPLUSER=repl
 MAX_DURATION=60
+POSTGRESQL_STARTUP_USER=postgres
+SSH_KEY_FILE=id_rsa_pgpool
 
 echo recovery_1st_stage: start: pg_basebackup for Standby node $DEST_NODE_ID
 
 ## Test passwordless SSH
-ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@${DEST_NODE_HOST} -i ~/.ssh/id_rsa_pgpool ls /tmp > /dev/null
+ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@${DEST_NODE_HOST} -i ~/.ssh/${SSH_KEY_FILE} ls /tmp > /dev/null
 
 if [ $? -ne 0 ]; then
-    echo recovery_1st_stage: passwordless SSH to postgres@${DEST_NODE_HOST} failed. Please setup passwordless SSH.
+    echo recovery_1st_stage: passwordless SSH to ${POSTGRESQL_STARTUP_USER}@${DEST_NODE_HOST} failed. Please setup passwordless SSH.
     exit 1
 fi
 
@@ -35,7 +37,7 @@ else
 fi
 
 ## Execute pg_basebackup to recovery Standby node
-ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@${DEST_NODE_HOST} -i ~/.ssh/id_rsa_pgpool "
+ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@${DEST_NODE_HOST} -i ~/.ssh/${SSH_KEY_FILE} "
 
     set -o errexit
 
@@ -68,7 +70,7 @@ if [ $? -ne 0 ]; then
 fi
 
 # start target server as a streaming replication standby server
-ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@$DEST_NODE_HOST -i ~/.ssh/id_rsa_pgpool "
+ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@$DEST_NODE_HOST -i ~/.ssh/${SSH_KEY_FILE} "
        $PGHOME/bin/pg_ctl -l /dev/null -w -D $DEST_NODE_PGDATA start
 "
 
index 1f91aeea7215425d1bc4a95db48ddf1020426236..63936feb228abcc51ebccb41b4351ec2c5e89650 100755 (executable)
@@ -10,6 +10,8 @@ MAIN_NODE_PORT="$4"                 # PostgreSQL port number
 
 PGHOME=/usr/pgsql-14
 ARCHIVEDIR=/var/lib/pgsql/archivedir  # archive log directory
+POSTGRESQL_STARTUP_USER=postgres
+SSH_KEY_FILE=id_rsa_pgpool
 
 # Force to flush current value of sequences to xlog
 ${PGHOME}/bin/psql -p $PORT -t -c 'SELECT datname FROM pg_database WHERE NOT datistemplate AND datallowconn' template1|
@@ -23,6 +25,6 @@ done
 psql -p $PORT -c "SELECT pgpool_switch_xlog('$ARCHIVEDIR')" template1
 
 # start target server as a streaming replication standby server
-ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@$DEST_NODE_HOST -i ~/.ssh/id_rsa_pgpool "
+ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${POSTGRESQL_STARTUP_USER}@$DEST_NODE_HOST -i ~/.ssh/${SSH_KEY_FILE} "
         $PGHOME/bin/pg_ctl -l /dev/null -w -D $DEST_NODE_PGDATA promote
 "