I am trying to setup HA solution for PostgreSQL. For that, I am running pgpool service.In that service, it calls a script whenever my primary node fails by calling it like this: /etc/pgpool-II-94/failover.sh %d %H'where %d is my node id and %H is the hostname for the new server. Think of them simply as two parameters.My Failover script is below:#!/bin/shfailed_node=$1new_master=$2(dateecho Failed node: $failed_nodeset -x/usr/bin/ssh -T -l postgres $new_master /usr/pgsql-9.4/bin/repmgr -f /var/lib/pgsql/repmgr/repmgr.conf standby promote 2>/dev/null 1>/dev/null <&-exit 0;) 2>&1 | tee -a /tmp/pgpool_failover.logThe problem I am facing here is that when this script gets executed, it gets executed as root and hence I cannot authenticate it for postgres user for other server.How to run my pgpool service as postgres user itself so that my authentication get passed?Right now I am using:systemctl start pgpool-II-94from postgres to postgres in all the servers I have setup passwordless ssh so that would not be an issue. For example: when I run through postgres user-bash-4.2$ /usr/bin/ssh -T -l postgres lbdevsecondary 'echo $HOSTNAME'lbdevsecondaryBut when I run through root user, it asks for password/usr/bin/ssh -T -l postgres lbdevsecondary 'echo $HOSTNAME'postgres@lbdevsecondary's password:lbdevsecondaryOr please tell me a way to rewrite the above statement in the way that I first logged in as postgres user and then run the commands from my scripts.I am using CentOS 7 and fairly new to Linux.
How to run pgpool(or any service) through postgres(any specific) user
shell script;rhel;postgresql